KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > ejb > handler > A2_EnterpriseContextHandler


1 package org.jfox.ejb.handler;
2
3 import java.util.Iterator JavaDoc;
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 /**
13  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
14  */

15
16 public class A2_EnterpriseContextHandler extends AbstractHandler {
17     private static AbstractEnterpriseContextContainer encContainer = EJBEnterpriseContextContainer.getInstance();
18
19     public Object JavaDoc invokeHome(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
20         EnterpriseContextFactory.EnterpriseType type = EnterpriseContextFactory.enterEjb();
21         String JavaDoc old = encContainer.setCurrentEnterpriseContextName(((EJBObjectId)invocation.getObjectId()).getEjbName());
22         try {
23             return super.invokeHome(bucket, invocation, iter);
24         }
25         finally {
26             // bind the old J2EEModuleName, maybe web module context name, or other ejb name, or null
27
encContainer.setCurrentEnterpriseContextName(old);
28             EnterpriseContextFactory.enter(type);
29         }
30     }
31
32     public Object JavaDoc invokeBean(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
33         EnterpriseContextFactory.EnterpriseType type = EnterpriseContextFactory.enterEjb();
34         String JavaDoc old = encContainer.setCurrentEnterpriseContextName(((EJBObjectId)invocation.getObjectId()).getEjbName());
35         try {
36             return super.invokeBean(bucket, invocation, iter);
37         }
38         finally {
39             // bind the old J2EEModuleName, maybe web module context name, or other ejb name, or null
40
encContainer.setCurrentEnterpriseContextName(old);
41             EnterpriseContextFactory.enter(type);
42         }
43
44     }
45
46     public static void main(String JavaDoc[] args) {
47
48     }
49 }
50
51
Popular Tags