[ANN] AppFuse Light 1.0 - a.k.a. Equinox
For those of you looking for an AppFuse Light, I have good news for you. I've actually been sitting on it for several months now, but now I'm prepared to release it. It's name is Equinox and it's much, much simpler than AppFuse. Equinox has only one build-time dependency (CATALINA_HOME being set for the servlet-api.jar). There's no code generation and no features - not even security. However, it supports building, testing and deploying from Ant, and even has support for managing Tomcat out-of-the-box.
To get started with Equinox, you can download the QuickStart Chapter from Spring Live. This chapter shows you how to develop a simple webapp using Struts, Spring and Hibernate - which talks to an HSQL database. Struts and Spring are integrated using the ContextLoaderPlugin and all tests are designed to be run out-of-container using JUnit and StrutsTestCase. Equinox ships with project files for both Eclipse and IDEA so you can develop and run the tests in either of these top-notch IDEs. There's also a demo available. Thanks to Boér Attila for the kick-ass CSS.
If you like what you see in the QuickStart Chapter, there's much more in the other ERP chapters of Spring Live - now available for download. Too see what's in the other chapters, checkout the Chapter Summaries.
This is a nice milestone - feels good to have made it this far. Have a good weekend!
Posted by Tieying on July 10, 2004 at 12:31 AM MDT #
Posted by Matt Raible on July 10, 2004 at 01:19 AM MDT #
Posted by Lars Fischer on July 10, 2004 at 11:24 AM MDT #
Posted by Lars Fischer on July 10, 2004 at 11:31 AM MDT #
As far as WebWork and AppFuse - you bet - that's planned for the next release.
Posted by Matt Raible on July 10, 2004 at 12:19 PM MDT #
Posted by Lars Fischer on July 10, 2004 at 05:41 PM MDT #
Posted by Harold Neiper on July 10, 2004 at 08:21 PM MDT #
Posted by gerryg on July 12, 2004 at 06:24 PM MDT #
Posted by Thomas Lockney on July 13, 2004 at 02:32 PM MDT #
Thanks Tom - should be fixed in CVS.
Posted by Matt Raible on July 13, 2004 at 02:56 PM MDT #
-Right now, this is incomplete. The programmer is expected to 'finish' the installation by completing the steps in the book. This is cool for new users, but as a project template, like AppFuse, its not so cool. Any interest in maintaining multiple versions or a script you can run to do the changes automatically?
Posted by Paul Kilroy on July 13, 2004 at 03:18 PM MDT #
You're exactly right, there probably needs to be more "meat" to make Equinox a worthwhile starter project. What I plan to do is finishing writing 1.0 of the book and from that gain a lot of options. For instance, Hibernate, iBATIS, JDO, JDBC and (possibly) OJB for persistence options. On the web side, I'll create Struts, Spring MVC, WebWork, Tapestry and JSF options.
From there, I'd like to come up with a standard set of features for the baseline Equinox and maybe have a master build file that produces the different options. I don't know - lots of options there. I'd like to keep as simple as possible though - lightweight and easy to use (like Spring ;-).
BTW, Spring Live has links to download the different versions as you progress. These are currently branches in a CVS tree at SourceBeat. There's probably an easier way to manage these - I'm open to suggestions.
Posted by Matt Raible on July 13, 2004 at 11:22 PM MDT #
Posted by Akar on July 16, 2004 at 07:51 AM MDT #
If you use getHibernateTemplate().get() instead of getHibernateTemplate().load() - it will return null if no record is found. On the other hand, getHibernateTemplate().load() will throw an exception if nothing is found. In Chapter 5, I change this to throw a DataAccessException which is a bit cleaner.
Page 25 should be fixed, but I'll make sure. To solve the last problem, start Tomcat from the "myusers" source folder, then the unit tests and Tomcat will create the database in the same location. There was no easy way to do the in-memory database thing w/o putting HSQLDB code specifically in the project. I didn't want to require HSQL and I didn't want to make users install a database - so this seemed like the easiest solution.
Posted by Matt Raible on July 18, 2004 at 03:49 AM MDT #
Equinox(myusers) doesn't have a Base*Test class for web pacakge, so i create this as practice following BaseDaoTest, some differences is on the Log object that created in this base class can be used on all its subcalsses and as well as ctx to become static .
<p/> best regardsPosted by Akar on July 18, 2004 at 04:04 AM MDT #
Posted by ron on July 28, 2004 at 09:14 PM MDT #
Posted by JMi on August 08, 2004 at 10:44 AM MDT #
Posted by JMi on August 08, 2004 at 09:56 PM MDT #
Posted by Cliff on August 13, 2004 at 07:47 PM MDT #
Ron - you'll have to change a few things to get it working under Tomcat 4.1.x. Equinox uses a Servlet 2.4 web.xml and JSP 2.0 - so you'll need to revert to a different DTD in web.xml and change all ${...} to <c:out value="${...}"/>.
Cliff - if you're still having issues, shoot me an e-mail: mattr [at] sourcebeat.com.
Posted by Matt Raible on August 25, 2004 at 03:37 AM MDT #
Can`t get over page 32 of spring live tutorial - running 'ant test' fails with following error: [junit] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'userDAO' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,transactionManager]; Root of BeanFactory hierarchy. (most important part of long error message).
The problem ocures when ctx.getBean("userDAO"); is called in UserDAOTest.java file. In my applicationContext.xml file is that bean with id="userDAO" defined according to tutorial. Any suggestion why i can`t get those tests running? (ant 1.6.2, tomcat 5.0, jdk 1.4.2).
The whole concept of java webbased development is new for me and so is java (a bit :). I don`t know what i am doing, but i thought this tutorial will help me start (hence i`ll get through this error).
Posted by Roman on August 27, 2004 at 03:46 PM MDT #
Posted by Pierre Raoul on September 01, 2004 at 10:52 AM MDT #
Posted by Pierre Raoul on September 01, 2004 at 10:58 AM MDT #
Posted by Pierre Raoul on September 01, 2004 at 11:09 AM MDT #
Posted by Pierre Raoul on September 01, 2004 at 11:30 AM MDT #
Posted by Pierre Raoul on September 01, 2004 at 05:28 PM MDT #
Posted by Hugh Ross on February 14, 2005 at 02:50 PM MST #
Posted by Sarah on March 25, 2005 at 05:17 PM MST #
Posted by Daniel on July 10, 2006 at 02:11 PM MDT #
Posted by Mickey on January 03, 2007 at 05:18 AM MST #
Posted by Matt Raible on January 03, 2007 at 05:22 AM MST #
Posted by Mickey on January 03, 2007 at 07:49 AM MST #
Posted by bob on January 08, 2007 at 08:35 AM MST #
Posted by vikram bethu on March 22, 2008 at 08:42 PM MDT #