Message:

   The following issue has been closed.

   Resolver: Scott T Weaver
       Date: Mon, 24 May 2004 2:34 PM

I have committed all the refactorings along with a fairly inclusive testcase that 
tests per thread capabilies with hot swapping along with non-multi-threaded hot 
swapping.

I have yet to start working these into Jetspeed 2 itself from an operational 
standpoint.  The first target will be removing the PersistenceStoreContainer and 
refactoring all its deps (Registry, Security, etc.) to just require PersistenceStore 
as a dependency intead.
---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JS2-53

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JS2-53
    Summary: Refactor InterceptorAdapter to support ThreadLocal component instances
       Type: Improvement

     Status: Closed
   Priority: Major
 Resolution: FIXED

    Project: Jetspeed 2
 Components: 
             Components Core
   Fix Fors:
             2.0-a1
   Versions:
             2.0-a1

   Assignee: Scott T Weaver
   Reporter: Scott T Weaver

    Created: Mon, 24 May 2004 2:15 PM
    Updated: Mon, 24 May 2004 2:34 PM

Description:
I have taken what David Taylor has done with InterceptorAdapter and refactored it to 
support different DelegationStrategies for compnent creation.

The two initial strategies are StandardDelegationStrategy and 
ThreadLocalDelegationStrategy.

StandardDelegationStartegy: works identical to David's original implementation, which 
returns a dynamic proxy that adds Swappable automatically.

ThreadLocalDelegationStrategy works much like StandardDelegationStrategy but with 
added bonus of getComponentInstance returning a thread safe/local instance of the 
component.  It also allows hot swapping on a per thread basis.  This means that per 
thread components, like PersistenceStore can be held in an instance vairable of an 
object and you can be guaranteed that that PersistenceStore instance will always be 
the correct one for that thread.  This negates the need for the 
PersistenceStoreContainer object entirely.

What's even cooler is that we can now have objects that take and keep per request 
objects, like HttpServletRequest, as depdencies, and HttpServletRequest instance will 
always be the correct instance for that thread.  We could achieve this by hot swapping 
the dynamic proxy component instance of HttpServletRequest in the 
JetspeedServlet.doGet().  


---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to