1 package org.jfox.ejb.handler; 2 3 import java.util.Iterator ; 4 5 import org.jfox.ejb.Bucket; 6 import org.jfox.ejb.EJBObjectId; 7 import org.jfox.ejb.connector.EJBInvocation; 8 import org.jfox.ejb.naming.EJBEnterpriseContextContainer; 9 import org.jfox.jndi.enc.AbstractEnterpriseContextContainer; 10 import org.jfox.jndi.enc.EnterpriseContextFactory; 11 12 15 16 public class A2_EnterpriseContextHandler extends AbstractHandler { 17 private static AbstractEnterpriseContextContainer encContainer = EJBEnterpriseContextContainer.getInstance(); 18 19 public Object invokeHome(Bucket bucket, EJBInvocation invocation, Iterator iter) throws Exception { 20 EnterpriseContextFactory.EnterpriseType type = EnterpriseContextFactory.enterEjb(); 21 String old = encContainer.setCurrentEnterpriseContextName(((EJBObjectId)invocation.getObjectId()).getEjbName()); 22 try { 23 return super.invokeHome(bucket, invocation, iter); 24 } 25 finally { 26 encContainer.setCurrentEnterpriseContextName(old); 28 EnterpriseContextFactory.enter(type); 29 } 30 } 31 32 public Object invokeBean(Bucket bucket, EJBInvocation invocation, Iterator iter) throws Exception { 33 EnterpriseContextFactory.EnterpriseType type = EnterpriseContextFactory.enterEjb(); 34 String old = encContainer.setCurrentEnterpriseContextName(((EJBObjectId)invocation.getObjectId()).getEjbName()); 35 try { 36 return super.invokeBean(bucket, invocation, iter); 37 } 38 finally { 39 encContainer.setCurrentEnterpriseContextName(old); 41 EnterpriseContextFactory.enter(type); 42 } 43 44 } 45 46 public static void main(String [] args) { 47 48 } 49 } 50 51 | Popular Tags |