KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > applis > ejb > perfs > Transaction


1 package applis.ejb.perfs;
2
3 import javax.rmi.PortableRemoteObject;
4 import javax.transaction.UserTransaction;
5 import javax.naming.InitialContext;
6 import java.util.Properties;
7
8
9 /**
10  * A litlle class that helps clients to lookup UserTransaction. Indeed the InitialContext
11  * requires different properties if we are using David or RMI
12  */

13 public class Transaction {
14
15     static private InitialContext ictx = null;
16
17     static public UserTransaction getUserTransaction() throws javax.naming.NamingException {
18
19     if (ictx == null) {
20         String registryPort = System.getProperty("jonas.registryport");
21
22         if (registryPort != null) {
23         // it means we are using David
24
Properties prop = new Properties();
25         prop.put("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
26         prop.put("java.naming.provider.url", "rmi://localhost:" + registryPort);
27         ictx = new InitialContext(prop);
28         }
29         else {
30         ictx = new InitialContext();
31         }
32     }
33      
34     return (UserTransaction) PortableRemoteObject.narrow(ictx.lookup("javax.transaction.UserTransaction"), UserTransaction.class);
35     }
36 }
37
Popular Tags