You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ji...@apache.org on 2004/05/24 23:16:00 UTC

[jira] Created: (JS2-53) Refactor InterceptorAdapter to support ThreadLocal component instacnes

Message:

  A new issue has been created in JIRA.

---------------------------------------------------------------------
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 instacnes
       Type: Improvement

     Status: Open
   Priority: Major

    Project: Jetspeed 2
 Components: 
             Components Core
   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:15 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: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


[jira] Updated: (JS2-53) Refactor InterceptorAdapter to support ThreadLocal component instances

Posted by ji...@apache.org.
The following issue has been updated:

    Updater: Scott T Weaver (mailto:weaver@apache.org)
       Date: Mon, 24 May 2004 2:19 PM
    Changes:
             summary changed from Refactor InterceptorAdapter to support ThreadLocal component instacnes to Refactor InterceptorAdapter to support ThreadLocal component instances
    ---------------------------------------------------------------------
For a full history of the issue, see:

  http://issues.apache.org/jira/browse/JS2-53?page=history

---------------------------------------------------------------------
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: Open
   Priority: Major

    Project: Jetspeed 2
 Components: 
             Components Core
   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:19 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: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


[jira] Closed: (JS2-53) Refactor InterceptorAdapter to support ThreadLocal component instances

Posted by ji...@apache.org.
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: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org