Overview

The archetype crates a JBoss Seam project skeleton with a full Maven based build configuration.

Note: It should only be used for migration purpose as middle step for existing Seam 2 and Java EE 5 projects. The project can be deployed on a JBoss AS7 runtime and based on JBoss Seam 2.3. The JBoss Seam 2.3 release supports major Java EE 6 technologies, such as JSF 2, JPA2 and EJB 3.1. It is still based on the Seam 2 core and it is not integrated with CDI.

However, a new project should be based from the start on Java EE 6.

Getting started

1. Generate the project skeleton from the archetype

mvn archetype:generate \
   -DarchetypeArtifactId=jbosscc-seam-archetype \
   -DarchetypeGroupId=de.akquinet.jbosscc \
   -DarchetypeVersion=1.5 \
   -DarchetypeCatalog=http://seam-archetype.sourceforge.net/jbosscc-seam-archetype/1.5/archetype-catalog.xml
$ 
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
Define value for property 'groupId': : com.company
Define value for property 'artifactId': : myproject
Define value for property 'version':  1.0-SNAPSHOT: : 
Define value for property 'package':  com.company: : 
Confirm properties configuration:
groupId: com.company
artifactId: myproject
version: 1.0-SNAPSHOT
package: com.company
 Y: : 
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: jbosscc-seam-archetype:1.5
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.company
[INFO] Parameter: artifactId, Value: myproject
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.company
[INFO] Parameter: packageInPathFormat, Value: com/company
[INFO] Parameter: package, Value: com.company
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.company
[INFO] Parameter: artifactId, Value: myproject
[....]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.328s
[INFO] Finished at: Thu Feb 23 00:17:08 CET 2012
[INFO] Final Memory: 7M/81M
[INFO] ------------------------------------------------------------------------
$

2. Examine the generated Application

|myproject
|-- myproject-bootstrap
|   |-- pom.xml
|   `-- src
|       `-- main
|           |-- java
|           |   `-- com
|           |       `-- company
|           |           `-- bootstrap
|           |               |-- ApplicationBootstrap.java
|           |               |-- ApplicationBootstrapBean.java
|           |               `-- testdata
|           |                   |-- BlogEntryTestdata.java
|           |                   |-- BlogEntryTestdataBean.java
|           |                   |-- CommentTestdata.java
|           |                   |-- CommentTestdataBean.java
|           |                   |-- UserTestdata.java
|           |                   `-- UserTestdataBean.java
|           `-- resources
|               |-- META-INF
|               |   `-- ejb-jar.xml
|               `-- seam.properties
|-- myproject-datamodel
|   |-- pom.xml
|   `-- src
|       |-- main
|       |   |-- java
|       |   |   `-- com
|       |   |       `-- company
|       |   |           `-- model
|       |   |               |-- AbstractEntity.java
|       |   |               |-- BlogEntry.java
|       |   |               |-- Comment.java
|       |   |               `-- User.java
|       |   `-- resources
|       |       `-- META-INF
|       |           `-- persistence.xml
|       `-- test
|           |-- java
|           |   `-- com
|           |       `-- company
|           |           |-- model
|           |           |   |-- BlogEntryTest.java
|           |           |   |-- CommentTest.java
|           |           |   `-- UserTest.java
|           |           `-- testdata
|           |               |-- BlogEntryTestdataBuilder.java
|           |               |-- CommentTestdataBuilder.java
|           |               `-- UserTestdataBuilder.java
|           `-- resources
|               |-- META-INF
|               |   `-- persistence.xml
|               `-- needle.properties
|-- myproject-ear
|   |-- pom.xml
|   `-- src
|       `-- main
|           `-- application
|               `-- META-INF
|                   `-- jboss-deployment-structure.xml
|-- myproject-ejb
|   |-- pom.xml
|   `-- src
|       |-- main
|       |   |-- java
|       |   |   `-- com
|       |   |       `-- company
|       |   |           |-- dao
|       |   |           |   |-- AbstractDaoBean.java
|       |   |           |   |-- BlogEntryDao.java
|       |   |           |   |-- BlogEntryDaoBean.java
|       |   |           |   |-- CommentDao.java
|       |   |           |   |-- CommentDaoBean.java
|       |   |           |   |-- Dao.java
|       |   |           |   |-- UserDao.java
|       |   |           |   `-- UserDaoBean.java
|       |   |           `-- weblogic
|       |   |               |-- BlogEntryListService.java
|       |   |               |-- BlogEntryListServiceBean.java
|       |   |               |-- BlogEntryService.java
|       |   |               |-- BlogEntryServiceBean.java
|       |   |               |-- CommentService.java
|       |   |               |-- CommentServiceBean.java
|       |   |               `-- security
|       |   |                   |-- AuthenticatorService.java
|       |   |                   `-- AuthenticatorServiceBean.java
|       |   `-- resources
|       |       |-- META-INF
|       |       |   `-- ejb-jar.xml
|       |       `-- seam.properties
|       `-- test
|           `-- java
|               `-- com
|                   `-- company
|                       |-- dao
|                       |   |-- BlogEntryDaoTest.java
|                       |   |-- CommentEntryDaoTest.java
|                       |   `-- UserDaoTest.java
|                       |-- injectionprovider
|                       |   `-- CurrentUserInjectionProvider.java
|                       `-- weblogic
|                           |-- BlogEntryListServiceTest.java
|                           |-- BlogEntryServiceTest.java
|                           |-- CommentServiceTest.java
|                           `-- security
|                                   `-- AuthenticatorServiceBeanTest.java
|-- myproject-war
|   |-- pom.xml
|   `-- src
|       `-- main
|           |-- resources
|           |   `-- messages.properties
|           `-- webapp
|               |-- WEB-INF
|               |   |-- components.xml
|               |   |-- faces-config.xml
|               |   |-- pages.xml
|               |   `-- web.xml
|               |-- blogEntry.page.xml
|               |-- blogEntry.xhtml
|               |-- blogEntryEdit.xhtml
|               |-- blogEntryEdit.page.xml
|               |-- error.xhtml
|               |-- header.xhtml
|               |-- img
|               |   |-- favicon.ico
|               |   `-- header.png
|               |-- index.html
|               |-- index.page.xml
|               |-- index.xhtml
|               |-- layout
|               |   `-- default.xhtml
|               `-- stylesheet
|                   `-- screen.css
`-- pom.xml

61 directories, 73 files


3. Build the Application

$ cd myproject
$ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] myproject
[INFO] myproject - Datamodel
[INFO] myproject - EJB
[INFO] myproject - Bootstrap
[INFO] myproject - WAR
[INFO] myproject - EAR
[INFO]                                                          
[INFO] ------------------------------------------------------------------------
[....]
[INFO] Reactor Summary:
[INFO] 
[INFO] myproject ......................................... SUCCESS [0.257s]
[INFO] myproject - Datamodel ............................. SUCCESS [3.230s]
[INFO] myproject - EJB ................................... SUCCESS [2.708s]
[INFO] myproject - Bootstrap ............................. SUCCESS [0.807s]
[INFO] myproject - WAR ................................... SUCCESS [1.411s]
[INFO] myproject - EAR ................................... SUCCESS [1.148s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.983s
[INFO] Finished at: Thu Feb 23 00:09:25 CET 2012
[INFO] Final Memory: 14M/81M
[INFO] ------------------------------------------------------------------------

4. Deploy the Application

The deployment was tested with the JBoss AS 7.1.3.

        $ cp myproject-ear/target/myproject.ear $JBOSS_HOME/standalone/deployments/

        $ JBOSS_HOME/bin/standalone.sh

5. Access the Application

Navigate to http://localhost:8080/myproject.