Help

Built with Seam

You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.

Active development of Seam Rest has been halted by Red Hat.

Seam REST

Seam REST is a lightweight module that aims to provide additional integration with technologies within the Java EE platform as well as third party technologies.


To get started, add the following dependency to your pom.xml:

<dependency>
   <groupId>org.jboss.seam.rest</groupId>
   <artifactId>seam-rest</artifactId>
   <version>3.1.0.Final</version>
</dependency>
* Maven artifacts are located in the JBoss Community Repository: http://repository.jboss.org/nexus/content/groups/public

Module team

Name Module role Commit username (Git) Organization Hometown (Time zone)
Jozef Hartinger Lead jharting Red Hat, Inc. Brno, Czech Republic (UTC+2)
Want your name to appear in this list? Join us in #seam-dev on freenode and let us know you want to get involved.

Description

Seam REST is a lightweight module that aims to provide additional integration with technologies within the Java EE platform as well as third party technologies. Seam REST is independent of CDI and JAX-RS implementations and thus fully portable between Java EE 6 environments.

Get involved

If you feel like contributing code to Seam REST, feel free to pick an issue from the list below. Ping jharting on the #seam-dev IRC channel (irc.freenode.net) if you have questions.

Release plan

Version Time frame Focus
3.0.0.Alpha1 Late October 2010
  • Bean Validation integration
  • XML Configuration
3.0.0.Alpha2 23.12.2010
  • Further Bean Validation integration SEAMREST-1 SEAMREST-2
  • Templating support SEAMREST-3
  • RESTEasy Client framework support
  • Templating support
  • Migration to Seam Solder
3.0.0.Alpha3 January 2011
3.0.0.Beta1 January 2011
  • TBD

Building from sources

  1. Optional - if you intend to contribute code to the module, fork the git repository on github
  2. Clone the repository (either git://github.com/seam/rest.git or your fork)
  3. Run mvn clean install -DskipTests to build Seam REST (integration tests are skipped).

Alternatively, to run the integration testsuite during build, set the JBOSS_HOME enviroment variable (export JBOSS_HOME=/home/jharting/jboss-6.0.0.Final) and run the following command: mvn clean install -Pjbossas-managed-6

Design whiteboard

This section serves as a whiteboard for design and ideas for this module. Once you've decided to pursue a feature, it should be added to JIRA as a feature request and optionally linked from this page.

RESTful API for Seam Persistence module

Will be built atop of Seam Persistance module for Seam 3. The plan is to take advantage of metadata provided by JPA 2 to make certain parts of implementation cleaner (i.e. a user will no longer be required to provide the Java type of an entity identifier)

Better caching support

  • Conditional GET support (ETag based on entity's hashcode or optimistic locking version)
  • Conditional PUT support

Atom Links in ResourceQuery

<link ref="next" .../ >
<link ref="previous" .../>

Bean Validation integration

Validating Java objects transferred over HTTP immediately as they reach a web service. Forum post

@PUT
@ValidateRequest
public void updateUser(@PathParam("id") long id, User user)

The user object is validate by Bean Validation implementation before the web service method is invoked.

Extended REST Client

Apply the idea of extended persistence context to how we use REST web services

  • Transparent caching
  • Tracking of changes to the retrieved objects

See also