There are a number of open source projects used in our deployment creation for this project. Castor is used to generate an object model from an XMLSchema which is used to define workflows in the system. This allows us to make broad changes to the schema without having to maintain a large object model as well. Xdoclet is used for ejbdoclet and hibernatedoclet. The ejbdoclet uses metadata specified on our SessionBeans to generate the remote and home interfaces and deployment descriptors for JBoss. The hibernatedoclet is used to generate the .hbm.xml files that Hibernate requires in order to persist an object. We are also using the Aspectj compiler to build our project since we are using an aspect to generate statistics for the project. The aspect allows us to remove cross-cutting code and centralize it in one file.
Since our project is J2EE based and it flows from a modular design we are able to deploy the core of the project in a single .ear file. Any modules that are not core to the platform (ex. News) can be deployed in their own .ear files since modules are found in the system by JNDI name.