djencks     2004/05/31 09:27:45

  Modified:    
modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking
                        ConnectionTrackingCoordinator.java
               
modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking/defaultimpl
                        DefaultComponentContext.java
               modules/connector/src/test/org/apache/geronimo/connector/outbound
                        ConnectionManagerStressTest.java
                        ConnectionManagerTestUtils.java
               
modules/connector/src/test/org/apache/geronimo/connector/outbound/connectiontracking
                        ConnectionTrackingCoordinatorTest.java
                        DefaultComponentInterceptor.java
               modules/jetty/src/java/org/apache/geronimo/jetty
                        JettyWebApplicationContext.java
               modules/transaction/src/java/org/apache/geronimo/transaction
                        InstanceContext.java
                        TrackedConnectionAssociator.java
  Log:
  Eliminate two threadlocals.  Move more thread specific context information 
(unshareableResources and applicationManagedSecurityResources) into the 
InstanceContext.
  
  Revision  Changes    Path
  1.9       +8 -15     
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java
  
  Index: ConnectionTrackingCoordinator.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ConnectionTrackingCoordinator.java        24 May 2004 19:10:34 -0000      
1.8
  +++ ConnectionTrackingCoordinator.java        31 May 2004 16:27:43 -0000      
1.9
  @@ -52,19 +52,13 @@
       public final static GBeanInfo GBEAN_INFO;
   
       private final ThreadLocal currentInstanceContexts = new ThreadLocal();
  -    private final ThreadLocal currentUnshareableResources = new 
ThreadLocal();
  -    private final ThreadLocal currentApplicationManagedSecurityResources = 
new ThreadLocal();
   
  -    public TrackedConnectionAssociator.ConnectorContextInfo 
enter(InstanceContext newInstanceContext, Set newUnshareableResources, Set 
applicationManagedSecurityResources)
  +    public InstanceContext enter(InstanceContext newInstanceContext)
               throws ResourceException {
           InstanceContext oldInstanceContext = (InstanceContext) 
currentInstanceContexts.get();
  -        Set oldUnshareableResources = (Set) 
currentUnshareableResources.get();
  -        Set oldApplicationManagedSecurityResources = (Set) 
currentApplicationManagedSecurityResources.get();
           currentInstanceContexts.set(newInstanceContext);
  -        currentUnshareableResources.set(newUnshareableResources);
  -        
currentApplicationManagedSecurityResources.set(applicationManagedSecurityResources);
           notifyConnections(newInstanceContext);
  -        return new 
TrackedConnectionAssociator.ConnectorContextInfo(oldInstanceContext, 
oldUnshareableResources, oldApplicationManagedSecurityResources);
  +        return oldInstanceContext;
       }
   
       private void notifyConnections(InstanceContext oldInstanceContext) 
throws ResourceException {
  @@ -83,7 +77,7 @@
           notifyConnections(oldInstanceContext);
       }
   
  -    public void exit(ConnectorContextInfo reenteringConnectorContext)
  +    public void exit(InstanceContext reenteringInstanceContext)
               throws ResourceException {
           InstanceContext oldInstanceContext = (InstanceContext) 
currentInstanceContexts.get();
           Map resources = oldInstanceContext.getConnectionManagerMap();
  @@ -97,9 +91,7 @@
                   i.remove();
               }
           }
  -        
currentInstanceContexts.set(reenteringConnectorContext.getInstanceContext());
  -        
currentUnshareableResources.set(reenteringConnectorContext.getUnshareableResources());
  -        
currentApplicationManagedSecurityResources.set(reenteringConnectorContext.getApplicationManagedSecurityResources());
  +        currentInstanceContexts.set(reenteringInstanceContext);
       }
   
   
  @@ -133,10 +125,11 @@
       }
   
       public void setEnvironment(ConnectionInfo connectionInfo, String key) {
  -        Set unshareableResources = (Set) currentUnshareableResources.get();
  +        InstanceContext currentInstanceContext = (InstanceContext) 
currentInstanceContexts.get();
  +        Set unshareableResources = 
currentInstanceContext.getUnshareableResources();
           boolean unshareable = unshareableResources.contains(key);
           connectionInfo.setUnshareable(unshareable);
  -        Set applicationManagedSecurityResources = (Set) 
currentApplicationManagedSecurityResources.get();
  +        Set applicationManagedSecurityResources = 
currentInstanceContext.getApplicationManagedSecurityResources();
           boolean applicationManagedSecurity = 
applicationManagedSecurityResources.contains(key);
           
connectionInfo.setApplicationManagedSecurity(applicationManagedSecurity);
       }
  
  
  
  1.6       +17 -1     
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking/defaultimpl/DefaultComponentContext.java
  
  Index: DefaultComponentContext.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/connectiontracking/defaultimpl/DefaultComponentContext.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultComponentContext.java      21 Mar 2004 22:24:39 -0000      1.5
  +++ DefaultComponentContext.java      31 May 2004 16:27:44 -0000      1.6
  @@ -19,6 +19,7 @@
   
   import java.util.HashMap;
   import java.util.Map;
  +import java.util.Set;
   
   import org.apache.geronimo.transaction.InstanceContext;
   
  @@ -32,6 +33,13 @@
   public class DefaultComponentContext implements InstanceContext {
   
       private final Map connectionManagerMap = new HashMap();
  +    private final Set unshareableResources;
  +    private final Set applicationManagedSecurityResources;
  +
  +    public DefaultComponentContext(Set unshareableResources, Set 
applicationManagedSecurityResources) {
  +        this.unshareableResources = unshareableResources;
  +        this.applicationManagedSecurityResources = 
applicationManagedSecurityResources;
  +    }
   
       public Object getId() {
           return null;
  @@ -58,6 +66,14 @@
   
       public Map getConnectionManagerMap() {
           return connectionManagerMap;
  +    }
  +
  +    public Set getUnshareableResources() {
  +        return unshareableResources;
  +    }
  +
  +    public Set getApplicationManagedSecurityResources() {
  +        return applicationManagedSecurityResources;
       }
   
   }
  
  
  
  1.3       +4 -2      
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java
  
  Index: ConnectionManagerStressTest.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ConnectionManagerStressTest.java  6 May 2004 03:59:56 -0000       1.2
  +++ ConnectionManagerStressTest.java  31 May 2004 16:27:44 -0000      1.3
  @@ -17,6 +17,8 @@
   
   package org.apache.geronimo.connector.outbound;
   
  +import java.util.HashSet;
  +
   import org.apache.geronimo.transaction.TransactionContext;
   import org.apache.geronimo.transaction.UnspecifiedTransactionContext;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.defaultimpl.DefaultComponentContext;
  @@ -73,7 +75,7 @@
                           for (int i = 0; i < repeatCount; i++) {
                               try {
                                   long start = System.currentTimeMillis();
  -                                defaultComponentInterceptor.invoke(new 
DefaultComponentContext());
  +                                defaultComponentInterceptor.invoke(new 
DefaultComponentContext(new HashSet(), new HashSet()));
                                   long duration = System.currentTimeMillis() - 
start;
                                   if (duration > 100) {
                                       localSlowCount++;
  
  
  
  1.11      +15 -16    
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java
  
  Index: ConnectionManagerTestUtils.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ConnectionManagerTestUtils.java   24 May 2004 22:36:13 -0000      1.10
  +++ ConnectionManagerTestUtils.java   31 May 2004 16:27:44 -0000      1.11
  @@ -17,31 +17,30 @@
   
   package org.apache.geronimo.connector.outbound;
   
  -import java.util.Set;
   import java.util.HashSet;
  +import java.util.Set;
   
   import javax.security.auth.Subject;
   import javax.transaction.TransactionManager;
   
   import junit.framework.TestCase;
  -import 
org.apache.geronimo.connector.outbound.connectiontracking.DefaultInterceptor;
  +import org.apache.geronimo.connector.mock.MockConnection;
  +import org.apache.geronimo.connector.mock.MockConnectionFactory;
  +import org.apache.geronimo.connector.mock.MockManagedConnection;
  +import org.apache.geronimo.connector.mock.MockManagedConnectionFactory;
  +import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.PartitionedPool;
  +import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.PoolingSupport;
  +import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.TransactionSupport;
  +import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.XATransactions;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.DefaultComponentInterceptor;
  +import 
org.apache.geronimo.connector.outbound.connectiontracking.DefaultInterceptor;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.defaultimpl.DefaultComponentContext;
  -import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.TransactionSupport;
  -import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.PoolingSupport;
  -import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.XATransactions;
  -import 
org.apache.geronimo.connector.outbound.connectionmanagerconfig.PartitionedPool;
  -import org.apache.geronimo.connector.mock.MockManagedConnectionFactory;
  -import org.apache.geronimo.connector.mock.MockConnectionFactory;
  -import org.apache.geronimo.connector.mock.MockConnection;
  -import org.apache.geronimo.connector.mock.MockXAResource;
  -import org.apache.geronimo.connector.mock.MockManagedConnection;
  -import org.apache.geronimo.security.bridge.RealmBridge;
   import org.apache.geronimo.security.ContextManager;
  -import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
  +import org.apache.geronimo.security.bridge.RealmBridge;
   import org.apache.geronimo.transaction.InstanceContext;
   import org.apache.geronimo.transaction.UserTransactionImpl;
  +import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
   
   /**
    *
  @@ -102,8 +101,8 @@
                   connectionTrackingCoordinator);
           connectionManagerDeployment.doStart();
           connectionFactory = (MockConnectionFactory) 
connectionManagerDeployment.createConnectionFactory(mockManagedConnectionFactory);
  -        defaultComponentContext = new DefaultComponentContext();
  -        defaultComponentInterceptor = new DefaultComponentInterceptor(this, 
connectionTrackingCoordinator, unshareableResources, 
applicationManagedSecurityResources);
  +        defaultComponentContext = new 
DefaultComponentContext(unshareableResources, 
applicationManagedSecurityResources);
  +        defaultComponentInterceptor = new DefaultComponentInterceptor(this, 
connectionTrackingCoordinator);
       }
   
       protected void tearDown() throws Exception {
  
  
  
  1.7       +23 -23    
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java
  
  Index: ConnectionTrackingCoordinatorTest.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ConnectionTrackingCoordinatorTest.java    24 May 2004 19:10:35 -0000      
1.6
  +++ ConnectionTrackingCoordinatorTest.java    31 May 2004 16:27:44 -0000      
1.7
  @@ -21,17 +21,17 @@
   import java.util.Map;
   import java.util.Set;
   
  -import javax.security.auth.Subject;
   import javax.resource.ResourceException;
  +import javax.security.auth.Subject;
   
   import junit.framework.TestCase;
   import org.apache.geronimo.connector.outbound.ConnectionInfo;
  -import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
  -import org.apache.geronimo.connector.outbound.ManagedConnectionInfo;
   import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
   import org.apache.geronimo.connector.outbound.ConnectionReturnAction;
  +import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
  +import org.apache.geronimo.connector.outbound.ManagedConnectionInfo;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.defaultimpl.DefaultComponentContext;
  -import org.apache.geronimo.transaction.TrackedConnectionAssociator;
  +import org.apache.geronimo.transaction.InstanceContext;
   
   /**
    *
  @@ -66,48 +66,48 @@
       }
   
       public void testSimpleComponentContextLifecyle() throws Exception {
  -        DefaultComponentContext componentContext = new 
DefaultComponentContext();
  -        TrackedConnectionAssociator.ConnectorContextInfo connectorContext = 
connectionTrackingCoordinator.enter(componentContext, unshareableResources, 
applicationManagedSecurityResources);
  -        assertNull("Expected old component context to be null", 
connectorContext.getInstanceContext());
  +        DefaultComponentContext componentContext = new 
DefaultComponentContext(unshareableResources, 
applicationManagedSecurityResources);
  +        InstanceContext oldInstanceContext = 
connectionTrackingCoordinator.enter(componentContext);
  +        assertNull("Expected old instance context to be null", 
oldInstanceContext);
           //give the context a ConnectionInfo
           ManagedConnectionInfo managedConnectionInfo = new 
ManagedConnectionInfo(null, null);
           ConnectionInfo connectionInfo = new 
ConnectionInfo(managedConnectionInfo);
           connectionTrackingCoordinator.handleObtained(key1, connectionInfo);
  -        connectionTrackingCoordinator.exit(connectorContext);
  +        connectionTrackingCoordinator.exit(oldInstanceContext);
           Map connectionManagerMap = 
componentContext.getConnectionManagerMap();
           Set infos = (Set) connectionManagerMap.get(key1);
           assertEquals("Expected one connection for key1", 1, infos.size());
           assertTrue("Expected to get supplied ConnectionInfo from infos", 
connectionInfo == infos.iterator().next());
   
           //Enter again, and close the handle
  -        connectorContext = 
connectionTrackingCoordinator.enter(componentContext, unshareableResources, 
applicationManagedSecurityResources);
  -        assertNull("Expected old component context to be null", 
connectorContext.getInstanceContext());
  +        oldInstanceContext = 
connectionTrackingCoordinator.enter(componentContext);
  +        assertNull("Expected old instance context to be null", 
oldInstanceContext);
           connectionTrackingCoordinator.handleReleased(key1, connectionInfo);
  -        connectionTrackingCoordinator.exit(connectorContext);
  +        connectionTrackingCoordinator.exit(oldInstanceContext);
           connectionManagerMap = componentContext.getConnectionManagerMap();
           infos = (Set) connectionManagerMap.get(key1);
           assertEquals("Expected no connection set for key1", null, infos);
       }
   
       public void testNestedComponentContextLifecyle() throws Exception {
  -        DefaultComponentContext componentContext1 = new 
DefaultComponentContext();
  -        TrackedConnectionAssociator.ConnectorContextInfo 
oldConnectorContext1 = connectionTrackingCoordinator.enter(componentContext1, 
unshareableResources, applicationManagedSecurityResources);
  -        assertNull("Expected old component context to be null", 
oldConnectorContext1.getInstanceContext());
  +        DefaultComponentContext componentContext1 = new 
DefaultComponentContext(unshareableResources, 
applicationManagedSecurityResources);
  +        InstanceContext oldInstanceContext1 = 
connectionTrackingCoordinator.enter(componentContext1);
  +        assertNull("Expected old component context to be null", 
oldInstanceContext1);
           //give the context a ConnectionInfo
           ManagedConnectionInfo managedConnectionInfo1 = new 
ManagedConnectionInfo(null, null);
           ConnectionInfo connectionInfo1 = new 
ConnectionInfo(managedConnectionInfo1);
           connectionTrackingCoordinator.handleObtained(key1, connectionInfo1);
   
           //Simulate calling another component
  -        DefaultComponentContext componentContext2 = new 
DefaultComponentContext();
  -        TrackedConnectionAssociator.ConnectorContextInfo 
oldConnectorContext2 = connectionTrackingCoordinator.enter(componentContext2, 
unshareableResources, applicationManagedSecurityResources);
  -        assertTrue("Expected returned component context to be 
componentContext1", oldConnectorContext2.getInstanceContext() == 
componentContext1);
  +        DefaultComponentContext componentContext2 = new 
DefaultComponentContext(unshareableResources, 
applicationManagedSecurityResources);
  +        InstanceContext oldInstanceContext2 = 
connectionTrackingCoordinator.enter(componentContext2);
  +        assertTrue("Expected returned component context to be 
componentContext1", oldInstanceContext2 == componentContext1);
           //give the context a ConnectionInfo
           ManagedConnectionInfo managedConnectionInfo2 = new 
ManagedConnectionInfo(null, null);
           ConnectionInfo connectionInfo2 = new 
ConnectionInfo(managedConnectionInfo2);
           connectionTrackingCoordinator.handleObtained(key2, connectionInfo2);
   
  -        connectionTrackingCoordinator.exit(oldConnectorContext2);
  +        connectionTrackingCoordinator.exit(oldInstanceContext2);
           Map connectionManagerMap2 = 
componentContext2.getConnectionManagerMap();
           Set infos2 = (Set) connectionManagerMap2.get(key2);
           assertEquals("Expected one connection for key2", 1, infos2.size());
  @@ -115,7 +115,7 @@
           assertEquals("Expected no connection for key1", null, 
connectionManagerMap2.get(key1));
   
   
  -        connectionTrackingCoordinator.exit(oldConnectorContext1);
  +        connectionTrackingCoordinator.exit(oldInstanceContext1);
           Map connectionManagerMap1 = 
componentContext1.getConnectionManagerMap();
           Set infos1 = (Set) connectionManagerMap1.get(key1);
           assertEquals("Expected one connection for key1", 1, infos1.size());
  @@ -123,10 +123,10 @@
           assertEquals("Expected no connection for key2", null, 
connectionManagerMap1.get(key2));
   
           //Enter again, and close the handle
  -        oldConnectorContext1 = 
connectionTrackingCoordinator.enter(componentContext1, unshareableResources, 
applicationManagedSecurityResources);
  -        assertNull("Expected old component context to be null", 
oldConnectorContext1.getInstanceContext());
  +        oldInstanceContext1 = 
connectionTrackingCoordinator.enter(componentContext1);
  +        assertNull("Expected old component context to be null", 
oldInstanceContext1);
           connectionTrackingCoordinator.handleReleased(key1, connectionInfo1);
  -        connectionTrackingCoordinator.exit(oldConnectorContext1);
  +        connectionTrackingCoordinator.exit(oldInstanceContext1);
           connectionManagerMap1 = componentContext1.getConnectionManagerMap();
           infos1 = (Set) connectionManagerMap1.get(key1);
           assertEquals("Expected no connection set for key1", null, infos1);
  
  
  
  1.3       +8 -14     
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/connectiontracking/DefaultComponentInterceptor.java
  
  Index: DefaultComponentInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/outbound/connectiontracking/DefaultComponentInterceptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultComponentInterceptor.java  24 May 2004 19:10:35 -0000      1.2
  +++ DefaultComponentInterceptor.java  31 May 2004 16:27:44 -0000      1.3
  @@ -17,15 +17,14 @@
   
   package org.apache.geronimo.connector.outbound.connectiontracking;
   
  -import java.util.Set;
  -
   import org.apache.geronimo.transaction.InstanceContext;
   import org.apache.geronimo.transaction.TrackedConnectionAssociator;
   import org.apache.geronimo.transaction.TransactionContext;
   import org.apache.geronimo.transaction.UnspecifiedTransactionContext;
   
   /**
  - *
  + * Sample functionality for an interceptor that enables connection caching 
and obtaining
  + * connections outside a UserTransaction.
    *
    * @version $Revision$ $Date$
    *
  @@ -33,28 +32,23 @@
   public class DefaultComponentInterceptor implements DefaultInterceptor {
   
       private final DefaultInterceptor next;
  -    private final TrackedConnectionAssociator cachedConnectionAssociator;
  -    private final Set unshareableResources;
  -    private final Set applicationManagedSecurityResources;
  +    private final TrackedConnectionAssociator trackedConnectionAssociator;
   
       public DefaultComponentInterceptor(DefaultInterceptor next,
  -            TrackedConnectionAssociator cachedConnectionManager,
  -            Set unshareableResources, Set 
applicationManagedSecurityResources) {
  +            TrackedConnectionAssociator trackedConnectionAssociator) {
           this.next = next;
  -        this.cachedConnectionAssociator = cachedConnectionManager;
  -        this.unshareableResources = unshareableResources;
  -        this.applicationManagedSecurityResources = 
applicationManagedSecurityResources;
  +        this.trackedConnectionAssociator = trackedConnectionAssociator;
       }
   
       public Object invoke(InstanceContext newInstanceContext) throws 
Throwable {
           if (TransactionContext.getContext() == null) {
               TransactionContext.setContext(new 
UnspecifiedTransactionContext());
           }
  -        TrackedConnectionAssociator.ConnectorContextInfo oldConnectorContext 
= cachedConnectionAssociator.enter(newInstanceContext, unshareableResources, 
applicationManagedSecurityResources);
  +        InstanceContext oldInstanceContext = 
trackedConnectionAssociator.enter(newInstanceContext);
           try {
               return next.invoke(newInstanceContext);
           } finally {
  -            cachedConnectionAssociator.exit(oldConnectorContext);
  +            trackedConnectionAssociator.exit(oldInstanceContext);
           }
       }
   }
  
  
  
  1.16      +16 -18    
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebApplicationContext.java
  
  Index: JettyWebApplicationContext.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebApplicationContext.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- JettyWebApplicationContext.java   30 May 2004 19:09:57 -0000      1.15
  +++ JettyWebApplicationContext.java   31 May 2004 16:27:44 -0000      1.16
  @@ -17,12 +17,6 @@
   
   package org.apache.geronimo.jetty;
   
  -import javax.resource.ResourceException;
  -import javax.security.jacc.PolicyConfiguration;
  -import javax.security.jacc.PolicyConfigurationFactory;
  -import javax.security.jacc.PolicyContext;
  -import javax.security.jacc.PolicyContextException;
  -import javax.transaction.TransactionManager;
   import java.io.IOException;
   import java.net.MalformedURLException;
   import java.net.URI;
  @@ -30,13 +24,15 @@
   import java.util.Arrays;
   import java.util.Set;
   
  -import org.mortbay.http.HttpException;
  -import org.mortbay.http.HttpRequest;
  -import org.mortbay.http.HttpResponse;
  -import org.mortbay.jetty.servlet.WebApplicationContext;
  +import javax.resource.ResourceException;
  +import javax.security.jacc.PolicyConfiguration;
  +import javax.security.jacc.PolicyConfigurationFactory;
  +import javax.security.jacc.PolicyContext;
  +import javax.security.jacc.PolicyContextException;
  +import javax.transaction.TransactionManager;
  +
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  -
   import 
org.apache.geronimo.connector.outbound.connectiontracking.defaultimpl.DefaultComponentContext;
   import org.apache.geronimo.gbean.GBean;
   import org.apache.geronimo.gbean.GBeanContext;
  @@ -49,11 +45,15 @@
   import org.apache.geronimo.naming.java.RootContext;
   import org.apache.geronimo.security.GeronimoSecurityException;
   import org.apache.geronimo.security.deploy.Security;
  +import org.apache.geronimo.transaction.InstanceContext;
   import org.apache.geronimo.transaction.TrackedConnectionAssociator;
   import org.apache.geronimo.transaction.TransactionContext;
   import org.apache.geronimo.transaction.UnspecifiedTransactionContext;
   import org.apache.geronimo.transaction.UserTransactionImpl;
  -
  +import org.mortbay.http.HttpException;
  +import org.mortbay.http.HttpRequest;
  +import org.mortbay.http.HttpResponse;
  +import org.mortbay.jetty.servlet.WebApplicationContext;
   
   /**
    * Wrapper for a WebApplicationContext that sets up its J2EE environment.
  @@ -172,7 +172,7 @@
           ReadOnlyContext oldComponentContext = 
RootContext.getComponentContext();
           String oldPolicyContextID = PolicyContext.getContextID();
   
  -        TrackedConnectionAssociator.ConnectorContextInfo oldConnectorContext 
= null;
  +        InstanceContext oldInstanceContext = null;
   
           try {
               // set up java:comp JNDI Context
  @@ -188,7 +188,7 @@
                   TransactionContext.setContext(new 
UnspecifiedTransactionContext());
               }
               try {
  -                oldConnectorContext = associator.enter(new 
DefaultComponentContext(), unshareableResources, 
applicationManagedSecurityResources);
  +                oldInstanceContext = associator.enter(new 
DefaultComponentContext(unshareableResources, 
applicationManagedSecurityResources));
               } catch (ResourceException e) {
                   throw new RuntimeException(e);
               }
  @@ -196,9 +196,7 @@
               super.handle(pathInContext, pathParams, httpRequest, 
httpResponse);
           } finally {
               try {
  -                if (txManager != null) {
  -                    associator.exit(oldConnectorContext);
  -                }
  +                associator.exit(oldInstanceContext);
               } catch (ResourceException e) {
                   throw new RuntimeException(e);
               } finally {
  
  
  
  1.5       +6 -1      
incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/InstanceContext.java
  
  Index: InstanceContext.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/InstanceContext.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InstanceContext.java      21 Mar 2004 22:24:39 -0000      1.4
  +++ InstanceContext.java      31 May 2004 16:27:44 -0000      1.5
  @@ -18,6 +18,7 @@
   package org.apache.geronimo.transaction;
   
   import java.util.Map;
  +import java.util.Set;
   
   /**
    *
  @@ -45,5 +46,9 @@
        * @return map of ConnectionManager to (list of ) managed connection 
info objects.
        */
       Map getConnectionManagerMap();
  +
  +    Set getUnshareableResources();
  +
  +    Set getApplicationManagedSecurityResources();
   
   }
  
  
  
  1.3       +3 -29     
incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/TrackedConnectionAssociator.java
  
  Index: TrackedConnectionAssociator.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/TrackedConnectionAssociator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TrackedConnectionAssociator.java  24 May 2004 19:11:14 -0000      1.2
  +++ TrackedConnectionAssociator.java  31 May 2004 16:27:44 -0000      1.3
  @@ -17,8 +17,6 @@
   
   package org.apache.geronimo.transaction;
   
  -import java.util.Set;
  -
   import javax.resource.ResourceException;
   
   /**
  @@ -29,36 +27,12 @@
    * */
   public interface TrackedConnectionAssociator {
   
  -    ConnectorContextInfo enter(InstanceContext newInstanceContext,
  -                               Set unshareableResources, Set 
applicationManagedSecurityResources)
  +    InstanceContext enter(InstanceContext newInstanceContext)
               throws ResourceException;
   
       void newTransaction() throws ResourceException;
   
  -    void exit(ConnectorContextInfo connectorContext)
  +    void exit(InstanceContext instanceContext)
               throws ResourceException;
   
  -    class ConnectorContextInfo {
  -        private final InstanceContext instanceContext;
  -        private final Set unshareableResources;
  -        private final Set applicationManagedSecurityResources;
  -
  -        public ConnectorContextInfo(InstanceContext instanceContext, Set 
unshareableResources, Set applicationManagedSecurityResources) {
  -            this.instanceContext = instanceContext;
  -            this.unshareableResources = unshareableResources;
  -            this.applicationManagedSecurityResources = 
applicationManagedSecurityResources;
  -        }
  -
  -        public InstanceContext getInstanceContext() {
  -            return instanceContext;
  -        }
  -
  -        public Set getUnshareableResources() {
  -            return unshareableResources;
  -        }
  -
  -        public Set getApplicationManagedSecurityResources() {
  -            return applicationManagedSecurityResources;
  -        }
  -    }
   }
  
  
  

Reply via email to