AppFuse 2.0: JDK 5, Annotations and JSP 2.0
For the most part, I haven't used JDK 5 on any of my recent projects. You can compile and run AppFuse with JDK 5, but it doesn't use any JDK 5 features. After doing a code review at Bouvet last week and seeing how much cleaner their code is with Generics, Varargs and the Enhanced for Loop, I think it's time to dig in. I don't know how soon we'll start, but I think it's time to start creating a branch for AppFuse 2.0 - which will use these features. For AppFuse 2.0, I'd like to go whole hog, bleeding-edge and use all the stuff that's out there to make developer's lives easier. This includes JSP 2.0, Annotations (especially for Hibernate and Spring, as well as Tapestry) and all the JDK 5 features that seem useful.
Since most developers won't be able to deploy on a JDK 5-compliant server for quite some time, we'll continue to maintain the 1.x branch as JDK 1.4-compliant. I expect to release AppFuse 1.8.1 later this week (with mostly bug fixes + latest releases of Hibernate/Spring) and 1.9 in the next month or so. From there, we'll likely do 1.9.x releases with bug fixes and do all the major upgrades (i.e. Tapestry 4.0.x) in the new branch. Working with new features in JDK 5 should be a lot of fun.
I'm hopeful that we can get rid of XDoclet and we may even give Maven 2 a run for its money. Last week in Norway, I found that most Java developers were using Maven on their projects and I also discovered that many of the core Maven 2 developers are getting paid to work on it full time. There were even claims that Maven 2 is going to be twice as fast as Ant - which definitely intrigues me.
Later: I just realized the hardest part of this migration is going to be replacing AppGen. It currenly uses XDoclet templates for all the class templates - and we'll need a new solution based on annotations. Oh well, it's kind of ugly anyway, but it'll likely be difficult to figure out a new solution. Hopefully we can create some sort of tool that involves easy-to-customize templates and a GUI to drive it all.
Posted by Eelco on May 30, 2005 at 02:55 PM MDT #
Posted by Eelco on May 30, 2005 at 03:01 PM MDT #
Posted by Vui Lo on May 30, 2005 at 04:15 PM MDT #
This is an interesting idea. I think there would be some merit to permanently maintaining two versions actually - the bleeding edge, and the mainstream using what the average developer has available to them. As features become more mainstream they could be ported/merged into the main tree This would allow you to easily see what difference a tech. change might have on practices. I would have found this all useful when I used to do web dev :)
On Maven 2... I'm curious what you mean by giving "Maven 2 a run for its money"? :)
So you must have met Trygve :) Glad to hear you had a good time in Norway - I'd love to get there myself one day.
We haven't done a great deal of benchmarking, but some simple tests (included in SVN) do show Maven2 to be consistently faster than Ant for the same tasks. While this is true of the core, you'd be hard pressed to get 2x improvements for anything other than a compile + JAR because the execution of tests and other such things beyond Maven or Ant's control will quickly dwarf the amount of time spent on the rest.
I also wanted to congratulate you on your new venture. They seem like some good guys to work with, and a great opportunity.
Posted by Brett Porter on May 30, 2005 at 04:43 PM MDT #
Posted by 188.8.131.52 on May 30, 2005 at 09:39 PM MDT #
I love the idea of a GUI, it should be moved higher in priorities (I guess), especially that it could aid more novice developers to adopt Appfuse with its best-practice design, tools and methodologies.
One more thing, as was requested by Nathan's Comment, a category other than "quick-start-web-app-framework-directory-structure-build-file" could help explaining Appfuse to managers :-)
Keep up the good work and thanks Matt.
Posted by Tamer Salama on May 30, 2005 at 09:55 PM MDT #
Posted by Caoilte O'Connor on May 31, 2005 at 12:19 AM MDT #
Posted by -FoX- on May 31, 2005 at 03:48 AM MDT #
Posted by Chris Nelson on May 31, 2005 at 06:59 AM MDT #
Chris - we'll definitely look at (and hopefully use) Trails for the Tapestry version, but it won't help us with the Struts, Spring, WebWork or JSF versions. Hopefully we can come up with a similar meta-driven solution like Trails for the other frameworks.
Posted by Matt Raible on May 31, 2005 at 07:13 AM MDT #
Posted by Chris Nelson on May 31, 2005 at 01:14 PM MDT #
Posted by Eelco on May 31, 2005 at 01:31 PM MDT #
Posted by Phillip Hershkowitz on June 01, 2005 at 10:09 AM MDT #
Posted by Emm lopez on June 01, 2005 at 02:08 PM MDT #
Posted by Daniel Frey on June 02, 2005 at 05:01 AM MDT #
As far as portals, I don't have any plans for this, but mostly because I haven't seen good (and easy to use) open-source portlet containers yet. Also, I haven't had a need for using a portlet container in any of my projects. Of course, if this changes, it's likely I'll create a portlet quickstart app.
The open source training will be using some things from Spring Live, but it'll also be going into more depth (if the client so desires). I've already created most of the course content, now I'm just refining it and getting input from other Virtuas Practice Leaders. As far as a virtual classroom - I believe we're planning on offering that, but probably not until 2006.
Posted by Matt Raible on June 02, 2005 at 08:04 AM MDT #
Posted by Matt Raible on June 02, 2005 at 08:08 AM MDT #
Posted by Emmanuel Lopez on June 02, 2005 at 09:19 AM MDT #
Posted by anjan bacchu on June 02, 2005 at 11:04 PM MDT #
Posted by Mats Henricson on June 06, 2005 at 10:01 AM MDT #
Annotations are a big win just with Hibernate3 alone, because Hibernate can leverage the one standard way to say "this is a Set of <Foo>."
Posted by Bill Schneider on August 03, 2005 at 08:52 PM MDT #
Posted by 184.108.40.206 on January 12, 2006 at 03:05 AM MST #
Posted by jips on April 06, 2006 at 02:35 AM MDT #
Posted by George on August 15, 2006 at 12:32 AM MDT #
Posted by Matt Raible on August 15, 2006 at 07:00 AM MDT #
Posted by sai on March 03, 2008 at 03:56 AM MST #
Posted by Eelco on March 03, 2008 at 05:05 AM MST #