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]