Skip navigation

Release Notes 2.0 RC1
Added by Matt Raible, last edited by Matt Raible on Sep 15, 2007 21:47
(None)

Toggle Sidebar

The major features in this release are JSF 1.2, Tapestry 4.1 and improved Code Generation. 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.

Please see about the AppFuse Maven Plugin (AMP) for more information on how to generate code and import AppFuse source into your project.

Please see the Upgrade Guide below or the QuickStart Guide to get started with this release.

Upgrade Guide

If you're currently using AppFuse 2.0 M5, here's a few things you'll need to change to upgrade to 2.0 RC1. If you're using a version prior to 2.0 M5, you may want to follow previous upgrade instructions first.

Diff is your friend
The easiest way to make the changes below might be to compare your pom.xml, web.xml and web-tests.xml with the ones from a new archetype. Beyond Compare is a fabulous diff tool for Windows users.
  1. Backup your project on your local file system or (even better) in your source control system.
  2. In pom.xml, change <appfuse.version>2.0-m5</appfuse.version> to <appfuse.version>2.0-rc1</appfuse.version>.
    If you've used war:inplace
    If you've used mvn war:inplace in your project, make sure you remove your WEB-INF/classes and re-run war:inplace:

    rm -r src/main/webapp/WEB-INF/classes

  3. Maven's war overlay feature is based on timestamps. If you've overridden AppFuse files in your project, you'll need to "touch" them in order to give them a newer timestamp. Here's a sample of what you might run:
    touch src/main/webapp/*
    touch src/main/webapp/scripts/*
    touch src/main/webapp/WEB-INF/*
    touch src/main/webapp/WEB-INF/pages/*
    Another, more permanent, solution is to use <dependentWarExcludes> to prevent the files from being overlayed.
  4. JPA: The JPA implementation has changed from jpa-hibernate to jpa to allow greater flexibility in AppFuse's JPA implementation in future releases. This philosophy follows what we're doing with appfuse-jsf. If you're using <dao.framework>jpa-hibernate</dao.framework> in M5, you'll need to use <dao.framework>jpa</dao.framework> in RC1.
  5. Change <spring.version> to 2.0.6 if you have it specified in your pom.xml.
  6. The maven-warpath-plugin has a new version of 1.0-rc1. Update your pom.xml.
  7. Admin-only screens have been moved to /admin/*. You may need to update your web framework's configuration file as well as web-tests.xml to accomodate this change. See APF-673 for more information.

About the AppFuse Maven Plugin

This release marks the second release of the AppFuse Maven Plugin (AMP). This plugin currently does two things: 1) code generation for CRUD and 2) allows you to convert your project to use AppFuse's source instead of using its binary dependencies.

Generating CRUD with AMP

In the 2.0 RC1 release, you can run the following command to generate CRUD screens/classes for a POJO:

mvn appfuse:gen -Dentity=Name

If you don't specify the entity name, you will be prompted for it. Currently, if a @Column has "nullable = false", a "required field" validation rule will be generated as part of the web framework's validation configuration. This command will also install the generated code, unless you specify -DdisableInstallation=true.

If your entity is not defined in hibernate.cfg.xml, it will be added.

In a modular project, these commands must be run in the "core" and "web" modules. The plugin is smart enough to figure out when it should/should not generate stuff based on the packaging type (jar vs. war). If you want to generate specific code in a "war" project, you can use gen-core or gen-web.

There's also a goal that allows you to generate model objects from database tables.

appfuse:gen-model

This goal will install the generated files into your source tree, unless you specify -DdisableInstallation=true. After running this command, you can use appfuse:gen to generate CRUD classes/tests/screens for this object.

Installing AppFuse's source into your project

The good news is creating an "old style" project is now pretty easy. If you create a new project using 2.0-rc1, you can now use:

mvn appfuse:full-source

This goal will convert your project to use all of AppFuse's source and remove all dependencies on AppFuse.

What the full-source plugin does:

  1. Exports all sources from Subversion into your project. It reads the dao.framework and web.framework properties to determine what you need.
  2. Removes warpath plugin from pom.xml.
  3. Calculates dependencies by reading pom.xml files form the various AppFuse modules. It replaces your dependencies with these new ones. The order of the dependencies added is alphabetical based on groupId.
  4. Reads properties from the root AppFuse pom.xml and adds the ones that don't exist to your project. The order of the properties added is alphabetical.
  5. Renames packages from org.appfuse to your project's groupId.

If you have issues developing AppFuse in Eclipse or NetBeans because of the WarPath plugin, running "appfuse:full-source" should fix that problem. It removes the warpath plugin as part of its installation process.

Detailed Changelog

AppFuse JIRA (107 issues)
T Key Summary Status Res
Improvement APF-871 Rename appfuse-jpa-hibernate to appfuse-jpa ResolvedResolved FIXED
Bug APF-870 appfuse:gen-model does not read from database tables ResolvedResolved FIXED
Improvement APF-867 Upgrade to Log4J 1.2.15 ResolvedResolved WON'T FIX
Bug APF-866 Fix site:deploy so AMP site is not published to http://static.appfuse.org ResolvedResolved FIXED
Bug APF-865 sample-data.xml in core for modular projects make use of "mraible" and "tomcat" instead of "admin" and "user" ResolvedResolved FIXED
Task APF-864 Create Web Services Tutorial ResolvedResolved FIXED
Improvement APF-862 Upgrade to JUnit 4.4 ResolvedResolved FIXED
Improvement APF-861 Fix Checkstyle issues: javadoc, line length, etc. ResolvedResolved FIXED
Improvement APF-857 Aggregate "gen and install" into single call ResolvedResolved FIXED
Bug APF-855 JavaScript function highlightTableRows doesn't work with JSF ResolvedResolved FIXED
Improvement APF-854 Upgrade to Hibernate Entity Manager 3.3.0.ga ResolvedResolved FIXED
Improvement APF-853 Upgrade to Hibernate Annotations 3.3.0.ga ResolvedResolved FIXED
Improvement APF-851 Upgrade to Canoo WebTest R_1600 as it uses HtmlUnit 1.13 and has much better JavaScript support ResolvedResolved FIXED
Improvement APF-849 Make BaseManagerTestCase use AbstractTransactionalDataSourceSpringContext ResolvedResolved FIXED
Bug APF-848 BaseManagerTestCase does not load applicationContext.xml ResolvedResolved FIXED
Improvement APF-847 Upgrade to Display Tag 1.1.1 ResolvedResolved FIXED
Improvement APF-845 Upgrade to Hibernate 3.2.5 GA ResolvedResolved FIXED
Improvement APF-842 Upgrade to hibernate3-maven-plugin version 2.0-alpha-2 ResolvedResolved FIXED
Bug APF-841 Freemarker error when trying to save an empty User form ResolvedResolved FIXED
Bug APF-840 cssHorizontalMenu.vm missing list close tag ResolvedResolved FIXED
Improvement APF-839 Upgrade to Struts 2.0.9 ResolvedResolved FIXED
Improvement APF-837 Upgrade to Maven Jetty Plugin version 6.1.5 ResolvedResolved FIXED
Bug APF-836 inversion of priority between SimpleUrlHandlerMapping and ControllerClassNameHandlerMapping ResolvedResolved FIXED
Task APF-835 Resolve Dependency Convergence issues ResolvedResolved FIXED
Improvement APF-834 Upgrade to Maven Eclipse Plugin 2.4 ResolvedResolved FIXED
Improvement APF-833 Upgrade to Commons IO 1.3.2 ResolvedResolved FIXED
Bug APF-830 Missing imports in Struts2 PersonActionTest example code ResolvedResolved FIXED
Bug APF-829 Dwr confoguration in web.xml for Basic Spring artifact ResolvedResolved FIXED
Bug APF-827 Invalid resource string in French resource ResolvedResolved FIXED
Improvement APF-826 Upgrade to Wiser 1.2 ResolvedResolved FIXED
Bug APF-824 Change maven-jetty-plugin to use scanTargetPattern instead of scanTarget ResolvedResolved FIXED
Improvement APF-823 Upgrade maven-jetty-plugin to 6.1.5 and Cargo's Tomcat version to 6.0.14 ResolvedResolved FIXED
Improvement APF-822 Upgrade to Maven IDEA Plugin 2.1 ResolvedResolved FIXED
Bug APF-821 The chinese or japanese can not be correctly update. ResolvedResolved FIXED
Bug APF-819 Freemarker performance / caching issue in UI Tags(Struts2) ResolvedResolved WON'T FIX
Improvement APF-818 Upgrade to Spring 2.0.6 ResolvedResolved FIXED
Improvement APF-817 Build error messages not descriptive enough ResolvedResolved FIXED
New Feature APF-816 Add Acegi JSF Support ResolvedResolved FIXED
Improvement APF-815 Upgrade to MyFaces Tomahawk 1.1.6 ResolvedResolved FIXED
Bug APF-814 iBATIS Generic implementation doesn't work with primary keys of types other than Long ResolvedResolved FIXED
Improvement APF-812 Allow hibernate, hibernate-annotations and hibernate-entitymanager to use different version numbers ResolvedResolved FIXED
Bug APF-811 Struts 2 doesn't like an action named "search" ResolvedResolved CANNOT REPRODUCE
Improvement APF-810 Change generated Struts Actions to implement Preparable by default ResolvedResolved FIXED
Bug APF-808 error display of errors pages ResolvedResolved FIXED
Improvement APF-806 Upgrade to Struts 2.0.8 ResolvedResolved FIXED
Bug APF-805 User is not allowed to change their username ResolvedResolved FIXED
Bug APF-803 validation happens on form view for FileUpload ResolvedResolved FIXED
Bug APF-802 Wrong validation error messages in ApplicationResources_de.properties ResolvedResolved FIXED
Bug APF-801 DataIntegrityViolationExceptions in UserManager should not be completely hidden ResolvedResolved FIXED
Bug APF-800 AOP-based AccessDeniedException isn't caught properly at presentation layer ResolvedResolved FIXED
Improvement APF-799 When pojo.shortName ends in "y", change plural form to "ies" instead of "ys" ResolvedResolved FIXED
Improvement APF-798 Change Struts code generation so Spring beans aren't registered for actions (not needed with zero configuration) ResolvedResolved FIXED
Bug APF-797 Optimize default XFire configuration - setup in M5 adds 40 JARs and 13.4 MB to WAR ResolvedResolved FIXED
Improvement APF-796 pt_PT translation of the .properties files. ResolvedResolved FIXED
Bug APF-795 Generated classes have wrong import path ResolvedResolved FIXED
Bug APF-794 mvn appfuse:full-source on a appfuse-basic-spring projects generates a duplicate hibernate.cfg.xml in test resources ResolvedResolved FIXED
Bug APF-791 Saving UTF-8 characters does not work in M5 ResolvedResolved FIXED
Improvement APF-790 Upgrade to Struts Menu 2.4.3 ResolvedResolved FIXED
Bug APF-789 Generating JSF code fails on form-view.ftl ResolvedResolved FIXED
Bug APF-788 Remove role (Struts2) ResolvedResolved FIXED
Improvement APF-787 Upgrade to EhCache 1.3.0 Final ResolvedResolved FIXED
Bug APF-786 XML Files modified by appfuse:full-source have Windows line endings ResolvedResolved FIXED
Bug APF-785 Error "No name provided and several persistence units found" when using jpa ResolvedResolved FIXED
Bug APF-782 AMP requires maven 2.0.6 instead of 2.0.4, but README.txt doesn't reflect this ResolvedResolved FIXED
Improvement APF-781 Upgrade UrlRewriteFilter to version 3.0.4 ResolvedResolved FIXED
Bug APF-780 Change in usage of Managers and DAOs : is the save() method of the PersonAction class correctly used in the tutorial ? ResolvedResolved FIXED
Bug APF-779 assertEquals(arg1, arg2) arguments are out of order in tests ResolvedResolved FIXED
Bug APF-777 contents encoded in wrong locale ResolvedResolved FIXED
New Feature APF-776 Out-of-the-box support for @Configurable , @Aspect and a aspectJ aspect in the Spring MVC basic archetype ResolvedResolved FIXED
Improvement APF-774 Group archetypes under org.appfuse.archetypes.* ResolvedResolved FIXED
Improvement APF-773 Upgrade to Acegi Security 1.0.4 ResolvedResolved FIXED
Bug APF-772 The left menu is not displayed under IE6 when using "mvn site" ResolvedResolved CANNOT REPRODUCE
Bug APF-771 Apostrophes does not appears on alert messages ResolvedResolved FIXED
Bug APF-769 javax.servlet.ServletException: Access Denied: Only administrators are allowed to modify other users. ResolvedResolved FIXED
Task APF-767 Add rename-packages functionality to AMP ResolvedResolved FIXED
Bug APF-758 FileUpload does not work in the Internet Explorer ResolvedResolved FIXED
Bug APF-757 Add support for iBATIS and JPA to AMP ResolvedResolved FIXED
Bug APF-755 Full Source Plugin does not work on modular archetypes ResolvedResolved FIXED
Improvement APF-751 Add displaytag_tr.properties to make the messages in the displaytag Turkish for locale=tr ResolvedResolved FIXED
Bug APF-750 one jmock question: no need for dao.verify ResolvedResolved FIXED
Bug APF-747 Unrecognizable code in chinese ver