Weld Maven archetypes with JBoss 6.0.0 M1
asookazian Dec 30, 2009 1:27 AMSo I just finished reading these articles/blogs:
http://in.relation.to/Bloggers/GetRunningOnCDIJSF2InAJiffyUsingMavenArchetypes
http://seamframework.org/Documentation/WeldQuickstartForMavenUsers
And actually very quickly and successfully created two Maven projects in Eclipse (one for weld-jsf-jee-minimal and one for weld-jsf-jee), built them via mvn clean install and deployed the WARs to JBoss AS 6.0.0 M1 within 30 min's (including reading the instructions). Of course I already had Eclipse, JBoss, m2eclipse and Maven installed but whatever.
Great job guys!
Now I have some sample code to generate some questions off of.
The code snippet below from home.xhtml looks similar to what I have done dozens of times in Seam using @Factory and @DataModel annotations (factory component pattern).
<h2>Widgets</h2> <h:dataTable var="_widget" value="#{widgets}"> <h:column> <f:facet name="header">Id</f:facet> #{_widget.id} </h:column> <h:column> <f:facet name="header">Part Number</f:facet> #{_widget.partNumber} </h:column> <h:column> <f:facet name="header">Name</f:facet> #{_widget.name} </h:column> <h:column> <f:facet name="header">Description</f:facet> #{_widget.description} </h:column> </h:dataTable>
So the #{widgets} triggers a call to getWidgets()?
here:
public class WidgetListProducer { @Inject @WidgetRepository EntityManager widgetRepository; @Produces @Named @RequestScoped @SuppressWarnings("unchecked") List<Widget> getWidgets() { return widgetRepository.createQuery("select w from Widget w order by w.name").getResultList(); } }
Thus, the @Produces is in effect similar to @Factory in Seam? So essentially the Weld container looks to invoke getFoo() method in a managed bean whenever it encounters #{foo} in a facelet? What if getFoo(...) is overloaded or does not exist with zero params?
Now we need an example which models a wizard use-case and demonstrates @ConversationScoped components...
The only thing I noticed is that after m2eclipse/Eclipse created my project, I did not have the same Java project structure as displayed in SBoscarine's step-by-step tutorial (properties shows as project and not Java project). I think if I delete the project from my workspace and create a new Java project based on those generated folders and files, it may look the same...
Well, I just tried that and no changes. I see myproject and directly inside that folder I see Deployment Descriptor: <web app>, Java Resources, src, target, pom.xml, readme.txt