SeamFramework.orgCommunity Documentation
Seam does not work with JDK 1.4 and requires JDK 5 or above as it uses annotations and other JDK 5.0 features. Seam has been thoroughly tested using Sun's JDKs. However there are no known issues specific to Seam with other JDKs.
Earlier versions of Sun's JDK 6 contained an incompatible version of JAXB and required overriding it using the "endorsed" directory. Sun's JDK6 Update 4 release upgraded to JAXB 2.1 and removed this requirement. When building, testing, or executing be sure to use this version or higher.
Seam used JBoss Embedded in its unit and integration testing. This has an additional requirement when using JDK 6. In order to run JBoss Embedded with JDK 6 you need to set the following JVM argument:
-Dsun.lang.ClassLoader.allowArraySyntax=true
Seam's internal build system is setting this by default when it executes Seam's test suite. However if you are also using JBoss Embedded for your testing you will need to set this value.
This section both lists the compile-time and runtime dependencies for Seam.
Where the type is listed as ear
, the library should be
included in the /lib directory of your application's ear file. Where the
type is listed as war
, the library should be placed in
the /WEB-INF/lib
directory of your application's war
file. The scope of the dependency is either all, runtime or provided (by
JBoss AS 4.2 or 5.0).
Up to date version information and complete dependency information is not
included in the docs, but is provided in the
/dependency-report.txt
which is generated from the
Maven POMs stored in /build
. You can generate this file
by running ant dependencyReport
.
Table 42.1.
Name |
Scope |
Type |
Notes |
---|---|---|---|
|
all |
ear |
The core Seam library, always required. |
|
runtime |
war |
Include during development when enabling Seam's debug feature |
|
runtime |
war |
Required when using Seam with Spring |
|
runtime |
war |
Required when using Seam's PDF features |
|
runtime |
war |
Required when using Seam's Microsoft® Excel® features |
|
runtime |
war |
Required when using Seam's RSS generation features |
|
runtime |
war |
Required when using Seam Remoting |
|
runtime |
war |
Required to use the Seam JSF controls |
|
provided |
JSF API | |
|
provided |
JSF Reference Implementation | |
|
runtime |
war |
Facelets |
|
runtime |
war |
URL Rewrite library |
|
runtime |
ear |
Required when you wish to use Quartz with Seam's asynchronous features |
Table 42.2. RichFaces dependencies
Name |
Scope |
Type |
Notes |
---|---|---|---|
|
all |
ear |
Required to use RichFaces. Provides API classes that you may wish to use from your application e.g. to create a tree |
|
runtime |
war |
Required to use RichFaces. |
|
runtime |
war |
Required to use RichFaces. Provides all the UI components. |
Table 42.3. Seam Mail Dependencies
Name |
Scope |
Type |
Notes |
---|---|---|---|
|
runtime |
ear |
Required for attachment support |
|
runtime |
ear |
Required for outgoing mail support |
|
compile only |
Required for incoming mail support mail-ra.rar should be deployed to the application server at runtime | |
|
runtime |
war |
Seam Mail |
Table 42.4. Seam PDF Dependencies
Name |
Type |
Scope |
Notes |
---|---|---|---|
|
runtime |
war |
PDF Library |
|
runtime |
war |
Charting library |
|
runtime |
war |
Required by JFreeChart |
|
runtime |
war |
Seam PDF core library |
Table 42.5. Seam Microsoft® Excel® Dependencies
Name |
Type |
Scope |
Notes |
---|---|---|---|
|
runtime |
war |
JExcelAPI library |
|
runtime |
war |
Seam Microsoft® Excel® core library |
Table 42.6. Seam RSS Dependencies
Name |
Type |
Scope |
Notes |
---|---|---|---|
|
runtime |
war |
YARFRAW RSS library |
|
runtime |
war |
JAXB XML parsing libraries |
|
runtime |
war |
Apache HTTP Client libraies |
|
runtime |
war |
Apache commons IO library |
|
runtime |
war |
Apache commons lang library |
|
runtime |
war |
Apache commons codec library |
|
runtime |
war |
Apache commons collections library |
|
runtime |
war |
Seam RSS core library |
The JBoss Rules libraries can be found in the drools/lib
directory in Seam.
Table 42.7. JBoss Rules Dependencies
Name |
Scope |
Type |
Notes |
---|---|---|---|
|
runtime |
ear |
ANTLR Runtime Library |
|
runtime |
ear |
Eclipse JDT |
|
runtime |
ear | |
|
runtime |
ear | |
|
runtime |
ear | |
|
runtime |
ear | |
|
runtime |
ear | |
|
runtime |
ear | |
|
runtime |
ear |
These libraries are required if you with to use the Google Web Toolkit (GWT) with your Seam application.
Maven offers support for transitive dependency management and can be used to manage the dependencies of your Seam project. You can use Maven Ant Tasks to integrate Maven into your Ant build, or can use Maven to build and deploy your project.
We aren't actually going to discuss how to use Maven here, but just run over some basic POMs you could use.
Released versions of Seam are available in http://repository.jboss.org/maven2 and nightly snapshots are available in http://snapshots.jboss.org/maven2.
All the Seam artifacts are available in Maven:
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ui</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-pdf</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-remoting</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ioc</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ioc</artifactId>
</dependency>
This sample POM will give you Seam, JPA (provided by Hibernate), Hibernate Validator and Hibernate Search:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.seam.example/groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<name>My Seam Project</name>
<packaging>jar</packaging>
<repositories>
<repository>
<id>repository.jboss.org</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.org/maven2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
<version>3.1.1.GA</version>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam</artifactId>
<version>2.2.0.GA</version>
</dependency>
</dependencies>
</project>