Max, can you tell me how far we got today? Where you say "makes the jsf part" in the JIRA, do you mean you were able to deploy the app and manage persistent objects?
As far as the output goes, here are a few things. There are currently 5 things generated for each class. For example, a Customer gets a CustomerConverter, CustomerBackendCrudBean, CustomerLister, and Customer JSP and a CustomerLister JSP . This however will change when all Converters, all BackendCrudBeans and all Listers are collapsed into a GenericConverter, a GenericBackendCrudBean and a GenericLister . The JSPs will be the only things generated per-class, and most of the java will just pass through the velocity engine untransformed. The GenericLister and the GenericManagedCrudBean delegates all DA to a GenericDAO (not directly to a HiberenateUtil) that is declaratively injected by the controller .
Code:
<managed-bean>
<managed-bean-name>customerCrudBacker</managed-bean-name>
<managed-bean-class>com.foo.GenericCrudBacker</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>dao</property-name>
<value>#{DAOFactory.customerDAO}</value>
</managed-property>
</managed-bean>
I've made this work on a project - marginal increase in XML LOC and massive decrease in java LOC.