At line 1 changed 1 line. |
This page is designed to document the things [I|MattRaible] want to do with AppFuse in 2004. Feel free to add suggestions as you see fit. |
This page is designed to document what's on the roadmap for future versions of AppFuse. Feel free to add suggestions as you see fit. For a more detailed report of where we are on the roadmap, see the [roadmap in JIRA|http://issues.appfuse.org/browse/APF?report=com.atlassian.jira.plugin.system.project:roadmap-panel]. |
At line 3 changed 7 lines. |
Spring 2004 |
* <span style="text-decoration: line-through">Implement Charle's [persistent cookie strategy|http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice]</span> |
* <span style="text-decoration: line-through">Migrate to Ant 1.6 and Tomcat 5.x as primary testing targets, but don't go to JSP 2.0 (yet).</span> |
* <span style="text-decoration: line-through">Tie Managers to ManagerImpls using [Spring|http://springframework.org]. Possibly use Spring for some Hibernate enhancements and to tie DAOs to Impls as well.</span> [Read how I did it|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring]. |
* <span style="text-decoration: line-through">Re-arrange directory structure to be more inline with a 3-tiered architecture. [Read More...|http://www.raibledesigns.com/page/rd?anchor=a_few_thoughts_on_appfuse]</span> [Read how I did it|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing]. |
* Add support for [iBatis|http://ibatis.com] as a database layer choice. |
* Add [Spring|http://springframework.org] as a web framework choice. |
!!AppFuse 2.0 - late 2006 |
At line 11 changed 6 lines. |
Summer/Fall 2004 |
* Add [WebWork|http://www.opensymphony.com/webwork/] as a web framework choice. |
* Add [Tapestry|http://jakarta.apache.org/tapestry/] as a web framework choice. |
* Figure out how to use Mocks to create faster unit tests, rather than just integrations tests (which is what exists now). |
* (Possibly) Add [JSF|http://java.sun.com/j2ee/javaserverfaces/] as a web framework choice. |
* (Possibly) Add a Swing client that can talk to at least one of the above frameworks (if not all). |
!Milestone 1 |
* <span style="text-decoration: line-through">Maven 2 integration</span> |
* <span style="text-decoration: line-through">Migrate from CVS to Subversion</span> |
* <span style="text-decoration: line-through">Remove XDoclet, putting generated files into source tree</span> |
* <span style="text-decoration: line-through">Get all flavors (WARs) deployed and running on Tomcat and Jetty Maven Plugin</span> |
* <span style="text-decoration: line-through">Spring 2.0: Upgrade XML to XSDs, annotations where appropriate</span> |
* <span style="text-decoration: line-through">Upgrade WebWork to Struts 2</span> |
* Documentation - move to new Confluence or DocBook-based system for 2.0 documentation |
At line 18 changed 1 line. |
__Thinking Out Loud:__ The hard part about adding "choices" for the user is that the CVS checkout becomes bloated and there are two many decisions. I'd like to figure out a way (hopefully using CVS) to allow a "default" version of AppFuse and then an AppFuse-WW, AppFuse-iBatis, etc. That's going to be tough to do because a lot of classpath's are going to change based on the implementation. It might be easier to simply start a new branch, but there's probably going to be a LOT of duplication between build files libraries. Maybe I can just split off the "lib" directory into another branch, and allow that to be download separately based on dependencies needed. Who knows. Is this something that Maven could make easier? I'd hate to get away from Ant, especially since I'm very comfortable with how everything works now. |
!Milestone 2 |
* <span style="text-decoration: line-through">[JDK 5, Annotations and JSP 2.0|http://raibledesigns.com/page/rd?anchor=appfuse_2_0_jdk_5]</span> |
* Archetypes for creating new AppFuse projects |
* Documentation, including screencasts for tutorials |
At line 20 changed 1 line. |
__Proposed Solution:__ I think the easiest way to handle the various "options" is to have them as a separate download and CVS module. Then I'll use ant in these modules to rip out and replace the core stuff with the module-specific stuff. |
!Milestone 3 |
* Integrate XFire by default (for existing classes and generated classes) |
* Code Generation/AppGen - hopefully with the [AppFuse Maven Plugin|http://mojo.codehaus.org/appfuse-maven-plugin/] |
* Documentation |
|
!2.0 Nice to haves |
* TestNG replacing JUnit |
* Hibernate Validation Annotations (hard part is hooking it into the web frameworks) |
* Tomcat Plugin for Maven (that operates like Jetty's plugin) (Looks like there is a [Maven 2 Tomcat Plugin|http://mojo.codehaus.org/tomcat-maven-plugin/introduction.html] that supports [tomcat:run|http://jira.codehaus.org/browse/MOJO-384] and [tomcat:run-war|http://jira.codehaus.org/browse/MOJO-567] (pending)) |
* JPA Support |
* Support for JDK 1.4 using something like [Retroweaver|http://retroweaver.sourceforge.net/] |
* Support for using Ant to build/test/deploy AppFuse-based projects |
* Someone to do all the documentation ;-) |
|
!!AppFuse 2.1 - early 2007 |
* Search using [Compass|http://www.opensymphony.com/compass/], tutorials already existing for [Spring MVC|http://www.nabble.com/search---integrate-compass-%28lucene%29-and-appfuse-p5022176s2369.html] and [JSF|http://www.nabble.com/RE%3A-search---integrate-compass-%28lucene%29-and-appfuse-p5222253s2369.html] |
* Pageable lists that only fetch a specified number of records (i.e. 10 at a time) |
* Ajax Goodies (TBD) |
|
!!AppFuse 2.2 |
* Convention over configuration, no XML modifications needed when adding new files |
* Plugin API so all "features" can be added/removed via plugins |
* Add Wicket and Stripes as supported web frameworks |
|
!!Future |
* (Possibly) Add a Swing/RCP, Laszlo and/or J2ME front-end |
* Change from using Canoo WebTest to using [Selenium|http://openqa.org/selenium/] for UI testing ([Maven + Selenium HowTo|http://docs.codehaus.org/display/MAVENUSER/Maven+and+Selenium]) |
* [What others would like to see|http://raibledesigns.com/page/rd/Weblog/if_you_could_add_another] |
|
!!Various Ideas - don't know if we'll use them |
%%(font-style: italic) |
* Use JMeter, Grinder or Microsoft's Web Application Testing tool to configure load testing scripts for inclusion in the distribution. Motivated by [this post|http://blog.rossmason.com/archives/2004/02/jmeter_measures_up.html]. |
* <span style="text-decoration: line-through">Create tutorial on how to integrate Quartz (using Spring).</span> See Luciano Fiandesio's <a href="http://www.lucianofiandesio.com/javatales/qtzfuse.html">AppFuse and Quartz: an integration tutorial</a>. |
* Add Configuration object that talks to a database table for application configuration. Create a dynamic UI (JSP) to handle updating. |
%% |