SeamFramework.org Community Documentation

- Prev

## Chapter 39. Dependencies

## 39.1. JDK Dependencies

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 Oracle's JDKs and OpenJDKs. However there are no known issues specific to Seam with other JDKs.

### 39.1.1. Oracle's JDK 6 Considerations

Earlier versions of Oracle's JDK 6 contained an incompatible version of JAXB and required overriding it using the "endorsed" directory. Oracle'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.

## 39.2. Project Dependencies

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 7.1.x).

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`.

### 39.2.1. Core

Table 39.1.

Name | Scope | Type | Notes
--- | --- | --- | ---
`jboss-seam.jar` | all | ear | The core Seam library, always required.
`jboss-seam-debug.jar` | runtime | war | Include during development when enabling Seam's debug feature
`jboss-seam-ioc.jar` | runtime | war | Required when using Seam with Spring
`jboss-seam-pdf.jar` | runtime | war | Required when using Seam's PDF features
`jboss-seam-excel.jar` | runtime | war | Required when using Seam's Microsoft® Excel® features
`jboss-seam-rss.jar` | runtime | war | Required when using Seam's RSS generation features
`jboss-seam-remoting.jar` | runtime | war | Required when using Seam Remoting
`jboss-seam-ui.jar` | runtime | war | Required to use the Seam JSF controls
`jsf-api.jar` | provided |  | JSF API
`jsf-impl.jar` | provided |  | JSF Reference Implementation
`urlrewrite.jar` | runtime | war | URL Rewrite library
`quartz.jar` | runtime | ear | Required when you wish to use Quartz with Seam's asynchronous features

### 39.2.2. RichFaces

Table 39.2. RichFaces dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`richfaces-core-api.jar` | all | ear | Required to use RichFaces. Provides Core API classes that you may wish to use from your application e.g. to create a tree
`richfaces-core-impl.jar` | runtime | war | Required to use RichFaces Core implementations.
`richfaces-components-ui.jar` | runtime | war | Required to use RichFaces. Provides all the Components UI components.
`richfaces-components-api.jar` | runtime | war | Required to use RichFaces. Provides all the API for UI components.

### 39.2.3. Seam Mail

Table 39.3. Seam Mail Dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`mail.jar` | runtime | ear | Required for outgoing mail support
`ironjacamar-mail.jar` | compile only |  | Required for incoming mail support `ironjacamar-mail.jar` should be deployed to the application server at runtime
`jboss-seam-mail.jar` | runtime | war | Seam Mail

### 39.2.4. Seam PDF

Table 39.4. Seam PDF Dependencies

Name | Type | Scope | Notes
--- | --- | --- | ---
`itext.jar` | runtime | war | PDF Library
`jfreechart.jar` | runtime | war | Charting library
`jcommon.jar` | runtime | war | Required by JFreeChart
`jboss-seam-pdf.jar` | runtime | war | Seam PDF core library

### 39.2.5. Seam Microsoft® Excel®

Table 39.5. Seam Microsoft® Excel® Dependencies

Name | Type | Scope | Notes
--- | --- | --- | ---
`jxl.jar` | runtime | war | JExcelAPI library
`jboss-seam-excel.jar` | runtime | war | Seam Microsoft® Excel® core library

### 39.2.6. Seam RSS support

Table 39.6. Seam RSS Dependencies

Name | Type | Scope | Notes
--- | --- | --- | ---
`yarfraw.jar` | runtime | war | YARFRAW RSS library
`JAXB` | runtime | war | JAXB XML parsing libraries
`http-client.jar` | runtime | war | Apache HTTP Client libraries
`commons-io` | runtime | war | Apache commons IO library
`commons-lang` | runtime | war | Apache commons lang library
`commons-codec` | runtime | war | Apache commons codec library
`commons-collections` | runtime | war | Apache commons collections library
`jboss-seam-rss.jar` | runtime | war | Seam RSS core library

### 39.2.7. Drools

The Drools libraries can be found in the `lib` directory in Seam.

Table 39.7. Drools Dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`antlr-runtime.jar` | runtime | ear | ANTLR Runtime Library
`ecj.jar` | runtime | ear | Eclipse Compiler for Java
`knowledge-api.jar` | runtime | ear |
`drools-compiler.jar` | runtime | ear | Drools compiler
`drools-core.jar` | runtime | ear |
`drools-decisiontables.jar` | runtime | ear |
`drools-templates.jar` | runtime | ear |
`mvel2.jar` | runtime | ear |

### 39.2.8. JBPM

Table 39.8. JBPM dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`jbpm-jpdl.jar` | runtime | ear |

### 39.2.9. GWT

These libraries are required if you with to use the Google Web Toolkit (GWT) with your Seam application.

Table 39.9. GWT dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`gwt-servlet.jar` | runtime | war | The GWT Servlet libs

### 39.2.10. Spring

These libraries are required if you with to use the Spring Framework with your Seam application.

Table 39.10. Spring Framework dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`spring.jar` | runtime | ear | The Spring Framework library

### 39.2.11. Groovy

These libraries are required if you with to use Groovy with your Seam application.

Table 39.11. Groovy dependencies

Name | Scope | Type | Notes
--- | --- | --- | ---
`groovy-all.jar` | runtime | ear | The Groovy libs

## 39.3. Dependency Management using Maven

We aren't actually going to discuss how to use Maven here, but just run over some Seam usage from user/application point of view you could use.

Released versions of Seam are available in http://repository.jboss.org/nexus/content/groups/public.

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-mail</artifactId>

    </dependency>

    <dependency>

      <groupId>org.jboss.seam</groupId>

      <artifactId>jboss-seam-debug</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-excel</artifactId>

    </dependency>

    <dependency>

      <groupId>org.jboss.seam</groupId>

      <artifactId>jboss-seam-resteasy</artifactId>

    </dependency>

    <dependency>

      <groupId>org.jboss.seam</groupId>

      <artifactId>jboss-seam-rss</artifactId>

    </dependency>

    <dependency>

      <groupId>org.jboss.seam</groupId>

      <artifactId>jboss-seam-wicket</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 Public Repository</name>

          <url>http://repository.jboss.org/nexus/content/groups/public</url>

        </repository>

      </repositories>

      <dependencyManagement>

         <dependencies>

            <dependency>

               <groupId>org.jboss.seam</groupId>

               <artifactId>bom</artifactId>

               <version>2.3.0.Final</version>

               <type>pom</type>

               <scope>import</scope>

             </dependency>

          </dependencies>

      </dependencyManagement>

      <dependencies>

        <dependency>

          <groupId>org.hibernate</groupId>

          <artifactId>hibernate-validator</artifactId>

        </dependency>

        <dependency>

          <groupId>org.hibernate</groupId>

          <artifactId>hibernate-entitymanager</artifactId>

        </dependency>

        <dependency>

            <groupId>org.hibernate</groupId>

            <artifactId>hibernate-search</artifactId>

        </dependency>

        <dependency>

          <groupId>org.jboss.seam</groupId>

          <artifactId>jboss-seam</artifactId>

        </dependency>

      </dependencies>

    </project>

- PrevChapter 38. Testing Seam applications
- Top of page
- Front page