At line 7 added 31 lines. |
|
!I feel this release deserves the big __1.0__ designation because it is an up-to-date representation of my learnings and my perceived |
best practices in building web applications. Of course, as I learn more, I will continue to push out new releases. |
|
In this release, I did a lot of refactoring and enhancements to existing features. The DAO and Manager interfaces are no longer tied |
to Struts or Hibernate. Hibernate's Session object is now passed as an argument into Manager and DAO constructors, rather than |
method signatures. The DAOFactory was refactored by <a href="http://www.coyotesong.com/">Bear Giles</a> to use reflection to |
instantiate Hibernate DAO's. Now, if you add a new DAO, you don't have to edit DAOFactory and DAOFactoryHibernate. To insantiate a |
new DAO, the code is now: |
{{{ |
LookupDAO dao = (LookupDAO) DAOFactory.getInstance(conn, LookupDAO.class); |
}}} |
|
...where __conn__ is a connection object retrieved from ServiceLocator or ActionFilter. When you add new POJOs, you still have to add them to ServiceLocator (for JUnit tests) and hibernate.cfg.xml, which is kindof a pain. I'd like to figure out a way to tell Hibernate to just look in appfuse-ejb.jar. |
|
<tangent>\\ |
I still don't have a Factory for Managers, and I don't know that there's a need for one, but it's something I might add in the future. Managers are still creating using: {{LookupManager mgr = new LookupManagerImpl(ActionFilter.getConnection());}}. One thing I've been thinking about is the ability to switch webapp frameworks - kindof like you can do with Persistence Frameworks and the DAO Pattern. It'd be cool to add a way to switch (at build time) to use WebWork or Tapestry. Maybe by replacing values for the controller in web.xml. It'd probably be a pain since I'd probably have to create new JSPs for the new frameworks - but it would probably be a great learning experience. |
</tangent> |
|
The Remember Me feature has been refactored so the username and password cookies are only available under |
the /appfuse/security url-pattern. I also changed the posting to "j_security_check" in LoginServlet from response.sendRedirect to |
an HTTP POST, using Jakarta Common's HttpClient. The reason I have a LoginServlet vs. just using action="j_security_check" in my <form> is to encrypt passwords. |
|
I've developed 3 different applications using AppFuse ([struts-resume|StrutsResume] is one of them), and I have found that it's a pain to |
upgrade to new versions of AppFuse. Because of this, I don't recommend upgrading unless you really need to. I will be upgrading |
struts-resume to AppFuse 1.0, but I doubt I'll upgrade it to any future AppFuse releases - it's just too much work for not much reward. |
|
* [Download|http://sourceforge.net/project/showfiles.php?group_id=49385&release_id=200891] (~11.5 MB for src, ~3.9 MB for bin) |
* [Release Notes|http://sourceforge.net/project/shownotes.php?release_id=200891] |
* [API Documentation and Source|http://raibledesigns.com/downloads/appfuse/api/] |
* [Mailing List|http://sourceforge.net/mailarchive/forum.php?forum_id=18761] |