Sunday May 11, 2008
AppFuse Light 1.8.2 Released AppFuse Light 1.8.2 is a bug fixes release that includes upgrades for Spring, Spring Security, Hibernate, Wicket, Tapestry and many others. In addition, Spring bean definitions were replaced with annotations (@Repository, @Service and @Controller). See the Release Notes for more information on what's changed since the last release.
AppFuse Light now offers 60 possible combinations for download:
- Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts 1.x, Struts 2.x, Tapestry, WebWork, Wicket
- Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC
If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to users-subscribe@appfuse.dev.java.net. You can also post questions in a forum-like fashion using Nabble: http://appfuse.org/forum/user. Posted in Java at May 11 2008, 10:16:17 PM MDT Add a Comment
AppFuse Light 1.8.1 Released: includes upgrades to Spring 2.5 and Wicket 1.3 AppFuse Light 1.8.1 is a bug fixes release that includes an upgrade to Spring 2.5 and Wicket 1.3 RC1. See the Release Notes for more information on what's changed since the last release.
What is AppFuse Light? Click here to find out.
AppFuse Light now offers 60 possible combinations for download:
- Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts 1.x, Struts 2.x, Tapestry, WebWork, Wicket
- Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC
If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to users-subscribe@appfuse.dev.java.net. You can also post questions in a forum-like fashion using Nabble: http://appfuse.org/forum/user.
If you're a developer of one of the frameworks that AppFuse Light uses - I'd love a code review to make sure I'm "up to snuff" on how to use your framework. I'm also more than willing to give commit rights if you'd like to improve the implementation of your framework.
Live demos are available at:
- Spring · Spring + Ajax · Spring + Acegi
- MyFaces + Facelets
- Stripes
- Struts 1 · Struts 2
- Tapestry
- WebWork
- Wicket
What's on tap for AppFuse Light 2.0? Here's what I'm hoping to do:
- Drop the seldom-used persistence frameworks: JDBC, JDO and OJB.
- Drop Struts 1.x and WebWork as web frameworks (replaced by Struts 2).
- Support the same persistence frameworks as AppFuse: Hibernate, iBATIS and JPA.
- Re-use appfuse-service, appfuse-hibernate, appfuse-ibatis and appfuse-jpa in AppFuse Light. I'll likely include the core classes (User, Role) since AppFuse Light is more "raw" than AppFuse.
- Require Java 5.
Let me know if you disagree with any of these items or would like to see other enhancements. Posted in Java at Nov 29 2007, 09:28:06 AM MST 3 Comments
AppFuse Light 1.8 Released AppFuse Light 1.8 adds CSS Framework integration, as well as support for Stripes (1.4.2) and Wicket (1.2.6). It also has significant upgrades for JSF and Tapestry; to versions 1.2 and 4.1.3 respectively. See the Release Notes for more information on what's changed since the the beta release of 1.8.
What is AppFuse Light? Click here to find out.
AppFuse Light now offers 60 possible combinations for download:
- Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts 1.x, Struts 2.x, Tapestry, WebWork, Wicket
- Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC
If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to users-subscribe@appfuse.dev.java.net. You can also post questions in a forum-like fashion using Nabble: http://appfuse.org/forum/user.
If you're a developer of one of the frameworks that AppFuse Light uses - I'd love a code review to make sure I'm "up to snuff" on how to use your framework. I'm also more than willing to give commit rights if you'd like to improve the implementation of your framework.
Live demos are available at:
- Spring · Spring + Ajax · Spring + Acegi
- MyFaces + Facelets
- Stripes
- Struts 1 · Struts 2
- Tapestry
- WebWork
- Wicket
Yes, I realize that 60 combinations is ridiculous. I didn't create the frameworks, I'm just integrating them so you don't have to.
Unfortunately, it's a real pain to create Maven archetypes or they'd all be as easy as mvn archetype:create. Rumor is that the archetype plugin will allow you to create-from-project in the future. When that happens, I'll make sure all the combinations are available as archetypes.
Posted in Java at Sep 14 2007, 11:01:46 AM MDT 2 Comments
Does Struts 2 suck? As far as I can tell, Struts 2 sucks. To be fair, so does Stripes. Why? Because there's no developer feedback for invalid properties or OGNL Expressions. What does this mean? It means if you fat-finger a property name, nothing happens. The OGNL exception is swallowed and you never know you did anything wrong. Furthermore, no one seems to care. The XWork folks will help you build, but not solve the problem. This seems like a major deal-breaker to me, However, I also believe it can be fixed - so maybe there's hope.
To demonstrate the problem, I did an experiment. I used the "user details" page in AppFuse Light to fat-finger a property name for the following frameworks: Struts 1, WebWork, Struts 2, JSF, Spring MVC, Stripes, Tapestry and Wicket. First, I tried changing the "lastName" property to "LastName" to see if the framework's property evaluation was case-sensitive. I found that with WebWork/Struts 2, Stripes and Tapestry, the property is not case-sensitive. I prefer case-sensitivity, but maybe that's because I prefer Unix over Windows.
The 2nd thing I tried was changing "lastName" to "pastName" to see if I'd get an error. An error occurred for all the frameworks mentioned, except for WebWork/Struts 2 and Stripes. This makes me believe these frameworks suck. The both use OGNL, so they could blame it on that, but Tapestry uses OGNL and it presents an error message. After this small experiment, my conclusion is the following frameworks have the best developer feedback:
- Struts 1
- JSF
- Spring MVC
- Tapestry
- Wicket*
* Wicket seems like it needs some work as all it presents is "Internal Error" and makes you dig through your log files to find the problem.
Without good developer feedback, how can you have good productivity?
Dear Struts 2 and Stripes Developers,
What do you think about improving your error messages for invalid properties and expressions? Is this a feature you think you could add? We'd love it if you did.
Sincerely,
Your Users
Click here for some screenshots of how a fat-fingered property looks in various frameworks:
Update: Stripes doesn't suck and Wicket has excellent error reporting. See my comment below for more details.
Update 2: I've created a patch to (hopefully) solve this issue in XWork. If you have any feedback on ways to improve this patch, I'd love to hear about it.
Posted in Java at Sep 05 2007, 11:21:57 AM MDT 33 Comments
AppFuse 2.0 RC1 Released
The AppFuse Team is pleased to announce the release of AppFuse 2.0 RC1! This release marks a huge step in the march to releasing AppFuse 2.0. This release puts the finishing touches on the AppFuse Maven Plugin (AMP), which offers CRUD generation, as well as the ability to change AppFuse from "embedded mode" to "full source" (like 1.x). In addition, we've addressed over 100 issues in preparation for the final 2.0 release. We hope to fix any bugs related to this release and release 2.0 Final in the next week or two.
The videos still represent how M5 works, but things have been simplified (now you don't need to run appfuse:install after appfuse:gen).
AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide or the Hello World video.
If you've used AppFuse 1.x, but not 2.x, you'll want to read the FAQ. Join the user mailing list if you have any questions. The Maven Reference Guide has a map of Ant » Maven commands. Maven for Newbies might also be useful if you've never used Maven before. There is some support for Ant in this release.
For more information, please see the 2.0 RC1 Release Notes. The 2.0 series of AppFuse has a minimum requirement of the following specification versions:
- Java Servlet 2.4 and JSP 2.0 (2.1 for JSF)
- Java 5+
We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues.
We also greatly appreciate the help from our sponsors, particularly Atlassian, Contegix, JetBrains, and Java.net. Atlassian and Contegix are especially awesome: Atlassian has donated licenses to all its products and Contegix has donated an entire server to the AppFuse project. Thanks guys - you rock!
Comments and issues should be posted to the mailing list.
Update: I've uploaded a 247-page PDF version of the RC1 documentation to java.net. This PDF contains the relevant pages from the wiki that help you develop with AppFuse 2.0. Who knew I'd end up writing another book?
Posted in Java
at Sep 04 2007, 01:42:15 AM MDT
7 Comments
Open Source Web Frameworks' Mailing List Traffic - June 2007 Who knows if these stats mean anything, but it does make a pretty graph. Current mailing list traffic leaders in the web framework space: Rails, Flex and GWT. For those frameworks with dev and users lists, these stats are from the users lists. If you find these numbers to be inaccurate, please let me know.
Here's the numbers in case you want to create your own graphs:
- Rails: 4056
- Flex: 3558
- GWT: 2305
- Django: 1951
- Wicket: 1718
- Struts: 1689
- Grails: 1307
- MyFaces: 1283
- Tapestry: 1268
- TurbyGears: 797
- Stripes: 206
- OpenLaszlo: 189
Posted in Open Source at Jul 26 2007, 02:12:29 PM MDT 10 Comments
How popular is your web framework? From the Struts user mailing list:
Since its release in June 2001, Apache Struts has become the most popular web framework for
Java. Six years later, by any objective measure, Struts is still Java's most popular web framework.
In February and March 2007, the group released both Struts 1.3.8 and
Struts 2.0.6 to the general public, and Struts downloads zoomed to
over 340,000 a month from the Apache site alone. And this is just
the tip of the iceberg. Most copies of Struts are downloaded from an
network of mirrors or obtained from Maven repositories.
So how popular is Struts compared to the other heavy hitters like Spring and Hibernate? Spring has about 1/2 as many (80K) downloads in the same period and so does Hibernate. How do MyFaces, Wicket and Tapestry stack up? Here's their best download numbers in the past few months:
Sorry JSF, you appear to be losing. Badly. This is an incorrect statement as pointed out by commentors. Thanks for keeping me honest guys.
Disclaimer: Yes, I realize that these statistics are not very accurate, especially considering Maven. Unfortunately, until Maven has repository download stats, this information is the best we've got.
Posted in Java
at Jul 13 2007, 11:43:29 AM MDT
25 Comments
AppFuse 2.0 M5 Released - now with CRUD generation and XFire support
The AppFuse Team is pleased to announce the release of AppFuse 2.0 M5!
This release marks a milestone in the features of AppFuse 2.x. This release adds CRUD code generation, full source support (just like 1.x) and XFire integration. In addition, we've fixed all the issues related to switching persistence frameworks, and you should now be able to easily switch from using Hibernate to to iBATIS or JPA. The videos have been updated for M5. The Easy CRUD with Struts 2 video shows how code generation currently works.
AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide or the Hello World video.
If you've used AppFuse 1.x, but not 2.x, you'll want to read the FAQ and join the user mailing list if you have any questions. The Maven Reference Guide has a map of Ant » Maven commands. Maven for Newbies might also be useful if you've never used Maven before. There is some support for Ant in this release.
For more information, please see the 2.0 M5 Release Notes. If you'd like to use AppFuse offline (or download everything at once), you may want to grab the dependencies and extract them into your ~/.m2/repository directory.
The 2.0 series of AppFuse has a minumum requirement of the following specification versions:
- Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
- Java 5 for Development (Java 1.4 for deployment using the Retrotranslator Plugin)
Comments and issues should be posted to the mailing list.
We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues. We also greatly appreciate the help from our sponsors, particularly Atlassian, Cenqua, Contegix, JetBrains, Java.net and KGBInternet. Without them, working on this project wouldn't be nearly as much fun.
Update: The videos are much lower quality than the ones I originally recorded (13 MB vs. 70 MB). If you want to view the high quality videos (they're much clearer), you can download them from java.net. If someone has a better way to compress these (I just used QuickTime's Export feature), please let me know.
Also, this release contains the first release of the AppFuse Maven Plugin. This plugin is largely based on Hibernate Tools. We modified many of the FreeMarker templates from Hibernate Tools to default to certain annotations, as well as clean up the formatting. These templates are currently available in AppFuse's SVN. Hopefully making them available is enough to satisfy Hibernate's LGPL license. Posted in Java at May 23 2007, 05:49:10 PM MDT 10 Comments
AppFuse Light 1.8 Beta Released
AppFuse Light 1.8 Beta adds CSS Framework integration, as well as support
for Stripes (1.4.2) and Wicket (1.2.6). This is a beta release so we can work out some kinks before the final release.
AppFuse Light now offers 60 possible combinations for
download:
- Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts 1.x, Struts 2.x, Tapestry, WebWork, Wicket
- Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC
If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to
users-subscribe@appfuse.dev
If you're a developer of one of the frameworks that AppFuse Light uses - I'd love a code review to make sure I'm "up to snuff" on how to use your framework. I'm also more than willing to give commit rights if you'd like to improve the implementation of your framework.
Live demos are available at:
- Spring · Spring + Ajax · Spring + Acegi
- MyFaces + Facelets
- Stripes
- Struts 1 · Struts 2
- Tapestry
- WebWork
- Wicket
Update: Based on Martin's blog post, I've added the version numbers for Stripes and Wicket (1.4.2 and 1.2.6, respectively). While the Wicket guys recommended I use Wicket 1.3.0, I was already knee deep in 1.2.6 when I read their recommendation. If 1.3.0 really is that much better than 1.2.6, it should be a pleasure to upgrade (and a good learning experience too boot!). Posted in Java at Apr 26 2007, 02:23:22 AM MDT 10 Comments
What web framework are you using with AppFuse?
As part of my upcoming Comparing Java Web Frameworks talk, I'd like to show some statistics of web framework usage in AppFuse. Please vote for the one you're using by clicking on the link below. I'm mostly looking for current AppFuse users. By that, I mean folks that have used 1.x or 2.x on a project in the last 6 months, or plan on using it in the next month or two.
You'll need to create an account and login to vote. To do this, go to View > Account > Sign Up (after clicking on the link below).
I'll compile the results of this poll on Friday morning (April 27th), so you have until then for your vote to be counted!
On a related note, if anyone knows how to get the monthly posting statistics from Spring MVC's forums, I'd love to hear about it. My "mailing list traffic" slide has excluded them for the past couple of years because I've been unable to get a count of monthly postings.
NOTE: If you vote by adding a comment to this entry, it won't be counted.
Update: Thanks to the 64 of you that voted. Here's the results of the poll:
As I said last time, I find the results interesting because AppFuse lowers the barriers and reduces the learning curve for all of these frameworks. Posted in Java at Apr 25 2007, 11:05:04 AM MDT 6 Comments
Search This Site
Recent Entries
- [OSCON 2008] Even Faster Web Sites by Steve Souders
- [OSCON 2008] CSS for High Performance JavaScript UI by Gavin Doughtie
- [OSCON 2008] The State of Lightning Talks
- [OSCON 2008] Web Frameworks of the Future: Flex, GWT, Grails and Rails
- [OSCON 2008] Caching and Performance: Lessons from Facebook by Lucas Nealan
- [OSCON 2008] Google XML Pages (GXP) by Harry Heymann and Laurence Gonsalves
- [OSCON 2008] An Introduction to Ruby Web Frameworks by Ryan Carmelo Briones
- [OSCON 2008] The Keynote
- GWT and REST
- OSCON: Where are the good parties at?









