Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
AppFuse
AppFuse_it
AppFuse_jp
AppFuse_ko
AppFuse_zh




JSPWiki v2.2.33

[RSS]


Hide Menu

AppFuseRoadmap


Difference between version 117 and version 25:

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 18 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.
* MILESTONE: Release 1.4 - hopefully by mid-March.
* Add [Spring|http://springframework.org] as a web framework choice. __Status:__ Hope to complete by end of March.
* Modify Cactus to create &lt;runcontainer&gt; 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.
* 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 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 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 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 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 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.
!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 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.
!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.
%%

Back to AppFuseRoadmap, or to the Page History.