[seam-dev] Seam 3 porting issues

Shane Bryzak shane.bryzak at jboss.com
Wed Apr 29 20:17:02 EDT 2009


To get the ball rolling, I've hand picked a couple of the more important 
issues from my list.  We can discuss these in more depth during the conf 
call, however I would like people to start thinking about them now.

1. Obtaining instances to a Web Beans component from outside of the 
component framework.  There are a number of places that we need to do 
this.  I got around it in SeamLoginModule by extending the 
CallbackHandler to support callbacks for Identity, Authenticator, etc.  
We unfortunately don't have such an easy workaround in other places - 
here's just a few examples:

  * DroolsHandler (which is a jBPM handler) needs to access the 
Expressions and WorkingMemory components.
  * SeamGlobalResolver (which resolves Drools global variables) needs to 
get an instance of Manager to perform lookups.
  * EntitySecurityListener and HibernateSecurityInterceptor both require 
access to security components.
  * DateConverter needs to access the TimeZone and Locale components

One possible solution to this issue is to have a thread local Manager 
available for the lifecycle of a single request, which can be accessed 
by non-component classes.

2. Module granularity / dependencies.  I'm going to use security as an 
example for this issue, however there are other modules which are 
similarly affected.  Within the security module, there are certain 
features (such as the action components, RememberMe, etc) that depend on 
the faces module.  My preference is to not have any dependencies on 
faces and that the security module remains view-layer independent. 

One possible way to solve this issue is to introduce a bridging module, 
in this example it would be seam-faces-security which contains the 
functionality that you would require if you were using Seam Security in 
a JSF environment.  The only downside to this is that it may lead to jar 
bloat (which may not really be an issue).  The upside is that it keeps 
everything nice and modular, and helps to simplify the dependency tree.


Shane




More information about the seam-dev mailing list