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. |
!!June/July 2004 |
* Add [WebWork|http://www.opensymphony.com/webwork/] as a web framework choice. Replace Tiles with Sitemesh as part of this process. |
* Enhance IDE integration, particularly with Eclipse and hot deploying. Attempt to get AppFuse working with [MyEclipse|http://www.myeclipseide.com]. |
* Remove seldom used components (i.e. Clickstream, PMD, Checkstyle) and add documentation on how to add them back in. |
* Modify Cactus to create a <runcontainer> task for all supported containers. The idea here is to make AppFuse so it can be easily run with Resin or Tomcat, by only changing a few Ant properties. __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. |
* [[Low Priority] 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.}'' |
* [[Low Priority] Add Configuration object that talks to a database table for application configuration. Create a dynamic UI (JSP) to handle updating. |
!!AppFuse 2.0 - late 2006 |
At line 11 changed 10 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. |
* Integrate <a href="http://jdbforms.sourceforge.net/"">jDbForms</a> for database CRUD operations. |
;:''IP Address "217.22.96.73" - why should I use jDfForms? Do you have a compelling argument for them? ~ [Matt|MattRaible]'' |
%% |
!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 22 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 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 29 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. |
!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 32 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. |
!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 34 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. |
!!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. |
%% |