Help

Controls

Switch Workspace

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.

Comparing current revision with historical revision 13.
Document History: Seam 3 Modules
Current revision:
50
Parent:
Design
Created On:
02. May 2009, 05:54 (dan)
Last Modified On:
08. Jun 2011, 13:01 (kfinnigan)
Historical revisions:
49 08. Jun 2011, 11:15 (kfinnigan) ShowDiff
48 02. Jun 2011, 20:52 (sbryzak) ShowDiff
47 01. Dec 2010, 15:43 (Silvia146) ShowDiff
46 23. Apr 2010, 03:11 (dan) ShowDiff
45 15. Apr 2010, 17:56 (dan) ShowDiff
44 02. Apr 2010, 18:48 (dan) ShowDiff
43 02. Apr 2010, 18:47 (dan) ShowDiff
42 02. Apr 2010, 01:15 (dan) ShowDiff
41 29. Mar 2010, 21:06 (dan) ShowDiff
40 29. Mar 2010, 20:51 (dan) ShowDiff
39 29. Mar 2010, 20:46 (lincolnthree) ShowDiff
38 29. Mar 2010, 20:10 (dan) ShowDiff
37 27. Mar 2010, 19:44 (dan) ShowDiff
36 24. Mar 2010, 18:44 (dan) ShowDiff
35 24. Mar 2010, 18:33 (dan) ShowDiff
34 24. Mar 2010, 18:17 (dan) ShowDiff
33 17. Mar 2010, 03:22 (dan) ShowDiff
32 11. Mar 2010, 15:23 (dan) ShowDiff
31 10. Mar 2010, 23:35 (jganoff) ShowDiff
30 10. Mar 2010, 23:34 (dan) ShowDiff
29 10. Mar 2010, 23:30 (dan) ShowDiff
28 10. Mar 2010, 23:30 (dan) ShowDiff
27 04. Mar 2010, 20:23 (dan) ShowDiff
26 04. Mar 2010, 19:16 (lincolnthree) ShowDiff
25 04. Mar 2010, 18:52 (lincolnthree) ShowDiff
24 04. Mar 2010, 15:18 (lincolnthree) ShowDiff
23 04. Mar 2010, 15:16 (dan) ShowDiff
22 04. Mar 2010, 15:03 (dan) ShowDiff
21 26. Feb 2010, 13:43 (dan) ShowDiff
20 02. Feb 2010, 18:07 (dan) ShowDiff
19 31. Jan 2010, 17:20 (dan) ShowDiff
18 07. Jan 2010, 23:06 (kfinnigan) ShowDiff
17 06. Jan 2010, 20:25 (dan) ShowDiff
16 23. Dec 2009, 22:25 (dan) ShowDiff
15 23. Dec 2009, 22:23 (dan) ShowDiff
14 23. Dec 2009, 22:22 (dan) ShowDiff
13 16. Dec 2009, 16:38 (dan) ShowDiff
12 16. Dec 2009, 13:05 (dan) ShowDiff
11 15. Dec 2009, 14:32 (sbryzak) ShowDiff
10 15. Dec 2009, 14:10 (sbryzak) ShowDiff
9 14. Dec 2009, 21:00 (StevenBoscarine) ShowDiff
8 12. Dec 2009, 07:58 (jganoff) ShowDiff
7 11. Dec 2009, 21:35 (dan) ShowDiff
6 11. Dec 2009, 17:13 (StevenBoscarine) ShowDiff
5 02. Dec 2009, 12:21 (StevenBoscarine) ShowDiff
4 10. Jun 2009, 20:03 (dan) ShowDiff
3 10. Jun 2009, 20:00 (dan) ShowDiff
2 06. May 2009, 16:30 (dan) ShowDiff
1 04. May 2009, 07:47 (dan) ShowDiff
0 (Initial Revision) ShowDiff

From line 0 changed to line 0:
[Seam 3=>wiki://108444] modules are Portable Extensions to CDI, which integrate CDI with other frameworks. The modules include:
<div style="color: rgb(255,0,0); font-weight: bold;">This page is deprecated. Please refer to the the [Seam 3 project page=>wiki://121356] for a complete list of modules.</div>
From lines 2 to 18 changed to line 2:
=[Drools=>http://www.seamframework.org/Documentation/Seam3Modules#H-DroolsLedByTihomirSurdilovic]
=[Faces=>http://www.seamframework.org/Documentation/Seam3Modules#H-FacesLedByDanAllen]
=[i8ln=>http://www.seamframework.org/Documentation/Seam3Modules#H-I8lnl10nLedByGavinKing]
=[Security=>http://www.seamframework.org/Documentation/Seam3Modules#H-SeamSecurityLedByShaneBryzak]
=[Seam 2 Backwards Compatiblity=>http://www.seamframework.org/Documentation/Seam3Modules#H-Seam2BackwardsCompatibilityLedByNormanRichards]
=[Spring Intergration=>http://www.seamframework.org/Documentation/Seam3Modules#H-SpringIntegrationLedByMariusBogoevici]
=[jBPM=>http://www.seamframework.org/Documentation/Seam3Modules#H-JBPMSupportLedByPiotrSteiningerWithJoramBarezAndPeteMuir]
=[JAX-RS=>http://www.seamframework.org/Documentation/Seam3Modules#H-JAXRSIntegrationLedByJozefHartinger]
=[Servlet=>http://www.seamframework.org/Documentation/Seam3Modules#H-ServletSupportLedByNicklasKarlsson]
=[Transactions and Persistence=>http://www.seamframework.org/Documentation/Seam3Modules#H-TXAndPersistenceLedByStevenBoscarine]
=[Document Management=>http://www.seamframework.org/Documentation/Seam3Modules#H-DocumentManagementLedByNicklasKarlssonWithNormanRichardsTomazCerarAndDanielRoth]
=[Seam Application Framework=>http://www.seamframework.org/Documentation/Seam3Modules#H-SeamApplicationFrameworkLedByGavinKing]
=[JMS=>http://www.seamframework.org/Documentation/Seam3Modules#H-JMSLedByJordanGanoffWithDanAllen]
=[JBoss ESB=>http://www.seamframework.org/Documentation/Seam3Modules#H-JBossESB5IntegrationLedByKevConnorAndPeteMuir]
=[Errai/GWT=>http://www.seamframework.org/Documentation/Seam3Modules#H-GWTViaErraiBusLedByHeikoBraunAndPeteMuir]
=[Remoting=>http://www.seamframework.org/Documentation/Seam3Modules#H-CDIRemotingLedByShaneBryzak]
=[Scheduling=>http://www.seamframework.org/Documentation/Seam3Modules#H-SchedulingLedByPeteRoyle]
[Seam 3=>wiki://121356] modules are Portable Extensions to CDI, which integrate CDI with other frameworks. The modules include:
From line 20 added to lines 4 to 38:
=[Drools=>wiki://74847#DroolsLedByTihomirSurdilovic]
=[Faces (JSF)=>wiki://122269]
=[International=>wiki://123301]
=[Security=>wiki://122690]
=[XML Bean Config=>wiki://122707]
=[Seam 2 Backwards Compatiblity=>wiki://74847#Seam2BackwardsCompatibilityLeadNeeded]
=[Spring Intergration=>wiki://74847#SpringIntegrationLedByMariusBogoevici]
=[jBPM=>wiki://74847#JBPMSupportLedByPiotrSteiningerWithJoramBarezAndPeteMuir]
=[JAX-RS=>wiki://74847#JAXRSIntegrationLedByJozefHartinger]
=[Servlet=>wiki://125616]
=[Transactions and Persistence=>wiki://124426]
=[Document Management=>wiki://74847#DocumentManagementLedByNicklasKarlssonWithNormanRichardsTomazCerarAndDanielRoth]
=[Seam Application Framework=>wiki://74847#SeamApplicationFrameworkLedByGavinKing]
=[JMS=>wiki://123338]
=[JBoss ESB=>wiki://74847#JBossESB5IntegrationLedByKevConnorAndPeteMuir]
=[Errai/GWT=>wiki://74847#GWTViaErraiBusLedByHeikoBraunAndPeteMuir]
=[Remoting=>wiki://122700]
=[Scheduling=>wiki://74847#SchedulingLedByPeteRoyle]
=[Environment Configuration=>wiki://74847#EnvironmentConfigurationLedByMattCorey]

++ API compatibility

We also need to decide which pluggable Java EE 6 APIs (JSF 2, JPA 2, JAX-WS, JAX-RS, Bean Validation, etc) Seam 3 will support in Servlet/Java SE/J2EE/Java EE 5 environments.

++ Prerequisite infrastructure

There is a core set of infrastructure that modules will need to be completed and consistent. We want to keep this set of functionality to a minimum, but without it, modules may either providing the same solution to a problem over and over again, or worse, solving the problem differently. Here is a list of the APIs or best practices that are required:

= Resource loading API - Any time a module needs to load a class or classpath resource, this API should be used
= BeanManager in servlet context - Putting the BeanManager into the servlet context would be much more portable than having to rely on JNDI.

++ Developer experience

Seam doesn't have to solve every problem in the world. Some of what Seam offers could be a collection of existing productivity-enhancing libraries (that we hand select). One example is [project Lompok=>http://projectlombok.org/], which relieves the developer from having to write getters and setters by using annotation and an annotation processor. Another is a hot class reloader, which may come from another JBoss.org project. Yet another is [Arquillian=>http://community.jboss.org/en/arquillian] the test harness for Seam 3 modules and applications. These tools would be used/advocated in Seam examples.

From line 51 changed to line 70:
TODO what does Seam add?
TODO what does Seam add?
From line 53 changed to line 72:
+++ Faces (led by Dan Allen)
+++ Seam 2 backwards compatibility (lead needed)
From lines 55 to 76 deleted to line 74:
Seam's JSF support offers a number of enhancements for using CDI with JSF. It may be that we are prototyping new ideas for the JSF and CDI specifications, or it may be that we are providing JSF support for other Seam modules.

Included in this package is the ability to inter operate with Seam's i8ln support, debugging output for JSF and context implementations for JSF's flash scope (|@FlashScoped|) and view scope (|@ViewScoped|), as well as support for nested conversations.

Further, this module contains "Seam Managed Transactions".

+++ i8ln/l10n (led by Gavin King)

Internationalization is very important for those of us who develop applications for non-English speakers, but is unfortunately poorly supported in various places in Java. It certainly isn't seamless to configure.

Seam aims to provide a unified approach to configuring your application for the right locale, propagating the locale to all aspects of the application.

+++ Seam Security (led by Shane Bryzak)

Seam Security provides a powerful set of authentication and authorization services for CDI applications. Authentication is based on the JAAS standard and allows for total control over the user authentication process. Authorization is based on a pluggable, extendable API and offers a number of features for locking down the sensitive parts of your application - ranging from simple role-based security checks all the way through to advanced rule-based and ACL permissions.

To make life even easier, Seam Security provides an Identity Management API for managing the users and roles within your application, and a Permission Management API for managing the permissions for individual domain objects and other user-defined permissions.

For more advanced security requirements, seamless integration with JBoss Security allows you to take advantage of an even greater range of security backends, such as SSO, Kerberos and SAML.

+++ Seam 2 backwards compatibility (led by Norman Richards)

From line 81 changed to line 78:
Seam's Spring integration enables CDI applications to consume beans managed by a Spring IOC container, allowing you to reuse application components written for the Spring IOC framework. Future plans for Spring integration may include adding the ability to share persistence contexts between the containers.
Seam's Spring integration enables CDI applications to consume beans managed by a Spring IOC container, allowing you to reuse application components written for the Spring IOC framework.
From line 83 changed to line 80:
+++ jBPM support (led by Piotr Steininger with Joram Barez and Pete Muir)
Major themes will be:
From line 85 added to lines 82 to 86:
= injection support
= native qualifier handling
= scope/context interoperability
= ability to work with Spring Transactions
= ability to share persistence contexts between the containers
From line 86 added to lines 88 to 89:
+++ jBPM support (led by Piotr Steininger with Joram Barez and Pete Muir)

From line 97 deleted to line 101:

From lines 112 to 121 deleted to line 115:
+++ Servlet support (led by Nicklas Karlsson)

Provide utilities and functionality to complement the Servlet API such as injection Request, Response and Session artifacts.

+++ TX and persistence (led by Dan Allen with Steven Boscarine)

The Seam 3 Transaction and Persistence Module will enable persistence context injection as well as transactional methods outside of a Java EE container. This will bring features regularly handled by Java EE containers to your CDI application running on Java SE or servlet containers, like Tomcat or Jetty.

=[Design notes=>Persistence and Transactions - Design notes]

From lines 140 to 143 deleted to line 133:
+++ JMS (led by Jordan Ganoff with Dan Allen)

Seam extends the CDI programming model into the messaging world by allowing you to inject JMS resources into your beans. Further, Seam bridges the CDI event bus over JMS; this gives you the benefits of CDI-style type-safety for inter-application communication.

From lines 156 to 163 deleted to line 145:
+++ CDI remoting (led by Shane Bryzak)

Seam Remoting is an AJAX-centric technology that allows a web page to interact directly with the beans in a CDI application. Requiring just a minimal amount of JavaScript, Seam Remoting makes it trivial to invoke server-side bean methods with full support for CDI-specific features such as the conversation scope and bean qualifiers.

The powerful Model API lets you to work remotely with a server-side object graph of managed entities by allowing client-side changes to be incrementally applied to the managed server-side model, all within the scope of a managed persistence context.

Support for client-side bean validation (based on JSR-303) is also planned for the future.

From line 169 added to lines 150 to 155:

+++ Environment configuration (led by Matt Corey)

Environment configuration provides ways to configure the Java EE environment by leveraging type-safe Java code rather than XML. It also allows you to leverage contextual information provided by the bean container to help influence configuration.

The first example of configuration is JNDI binding. Using this module, you can designate a field value that should be bound to JNDI under the provided name, the complement to the |@Resource(lookup = "...")| annotation in Java EE. You could put this bean in a separate archive from the production deployment, separating the production code from the configuration without leaving Java.