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 14 lines. |
!!Spring 2004 |
* Implement Charles' [persistent cookie strategy|http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice]. |
**<strong>Status:</strong> [Done|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iii_remember] |
* Migrate to Ant 1.6 and Tomcat 5.x as primary testing targets, but don't go to JSP 2.0 (yet). |
**__Status:__ Done |
* Tie Managers to ManagerImpls using [Spring|http://springframework.org]. Possibly use Spring for some Hibernate enhancements and to tie DAOs to Impls as well. |
**__Status:__ [Done|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_ii_spring] |
* Re-arrange directory structure to be more inline with a 3-tiered architecture. [Read Ideas...|http://www.raibledesigns.com/page/rd?anchor=a_few_thoughts_on_appfuse] |
**__Status:__ [Done|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_i_changing] |
* Add support for [iBatis|http://ibatis.com] as a database layer choice. |
**__Status:__ [Done|http://raibledesigns.com/page/rd?anchor=appfuse_refactorings_part_iv_replacing] |
* Updated Tutorials to reflect all of the above changes. |
**__Status:__ Hope to complete in early March. |
* %%(color: blue)MILESTONE: Release 1.4 - [Done|http://raibledesigns.com/wiki/Wiki.jsp?page=Downloads#2004.03.01].%% |
!!AppFuse 2.0 - late 2006 |
At line 18 changed 2 lines. |
* Add [Spring|http://springframework.org] as a web framework choice. |
* %%(color: blue)MILESTONE: Release 1.5 - hopefully by end of March.%% |
!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 21 changed 3 lines. |
* Modify Cactus to create <runcontainer> tasks for all supported containers. __Status:__ Not Started, <a href="http://www.mail-archive.com/cactus-user%40jakarta.apache.org/msg05019.html">here is the thread</a> for implementing this. |
* Figure out how to use MockStrutsTestCase to run ActionTests out-of-container. In-container is too slow. ''{Lance: Try mockrunner.sf.net - check out the BookmarksActionTest in Roller (baby steps). I never did get MockStrutsTestCase to work.}'' |
* Add Configuration object that talks to a database table for application configuration. Create a dynamic UI (JSP) to handle updating. |
!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 25 changed 8 lines. |
__''Various Ideas - don't know if I'll use them''__ |
%%(font-style: italic) |
* Use JMeter 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/000025.html]. |
* Create tutorial on how to integrate Quartz. |
* Create tutorial on how to integrate Lucene for searching users. |
* Use Spring for Quartz, JavaMail and Velocity. |
* Integrate <a href="http://tuckey.org/urlrewrite/">UrlRewriteFilter</a> for prettier URLs. |
%% |
!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 |
At line 34 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). |
!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 ;-) |
At line 41 changed 2 lines. |
!!How? |
__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. |
!!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) |
At line 44 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. |
!!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 |
At line 46 changed 1 line. |
__Implemented Solution:__ I'm adding all ''extra'' modules (i.e. iBATIS, WW, etc.) to the main CVS tree. Right now they're in the {{contrib}} folder, but I might move them to {{tools}}. For iBATIS (and the soon-to-come others), you just navigate to the {{contrib/ibatis}} directory (from the command line) and type "ant" to see your installation options. |
!!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. |
%% |