1 17 package org.apache.geronimo.tomcat.valve; 18 19 import java.io.IOException ; 20 import java.util.Set ; 21 22 import javax.resource.ResourceException ; 23 import javax.servlet.ServletException ; 24 25 import org.apache.catalina.connector.Request; 26 import org.apache.catalina.connector.Response; 27 import org.apache.catalina.valves.ValveBase; 28 import org.apache.geronimo.transaction.DefaultInstanceContext; 29 import org.apache.geronimo.transaction.InstanceContext; 30 import org.apache.geronimo.transaction.TrackedConnectionAssociator; 31 32 35 public class InstanceContextValve extends ValveBase { 36 37 private final Set unshareableResources; 38 39 private final Set applicationManagedSecurityResources; 40 41 private final TrackedConnectionAssociator trackedConnectionAssociator; 42 43 public InstanceContextValve(Set unshareableResources, 44 Set applicationManagedSecurityResources, 45 TrackedConnectionAssociator trackedConnectionAssociator) { 46 this.unshareableResources = unshareableResources; 47 this.applicationManagedSecurityResources = applicationManagedSecurityResources; 48 this.trackedConnectionAssociator = trackedConnectionAssociator; 49 } 50 51 public void invoke(Request request, Response response) throws IOException , 52 ServletException { 53 54 try { 55 InstanceContext oldContext = trackedConnectionAssociator 56 .enter(new DefaultInstanceContext(unshareableResources, 57 applicationManagedSecurityResources)); 58 59 getNext().invoke(request, response); 61 62 trackedConnectionAssociator.exit((InstanceContext) oldContext); 64 } catch (ResourceException e) { 65 throw new RuntimeException (e); 66 } 67 } 68 } 69 | Popular Tags |