[jboss-svn-commits] JBL Code SVN: r26485 - in labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc: ejb and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue May 12 15:40:52 EDT 2009


Author: whitingjr
Date: 2009-05-12 15:40:51 -0400 (Tue, 12 May 2009)
New Revision: 26485

Added:
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/servicelocator/
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/servicelocator/ServiceLocator.java
Log:


Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/servicelocator/ServiceLocator.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/servicelocator/ServiceLocator.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleEJB/src/main/java/uk/ac/ncl/sdia/mvcc/ejb/servicelocator/ServiceLocator.java	2009-05-12 19:40:51 UTC (rev 26485)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ * 
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.mvcc.ejb.servicelocator;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.apache.log4j.Logger;
+
+import uk.ac.ncl.sdia.mvcc.spec.PersonManager;
+import uk.ac.ncl.sdia.mvcc.spec.PersonManagerLocal;
+import uk.ac.ncl.sdia.mvcc.spec.PersonManagerRemote;
+
+public class ServiceLocator
+{
+   private static final String LOCAL_PERSON_MANAGER = "MVCCSampleEAR/PersonManager/local-uk.ac.ncl.sdia.mvcc.spec.PersonManagerLocal";
+   private static final String REMOTE_PERSON_MANAGER = "MVCCSampleEAR/PersonManager/remote-uk.ac.ncl.sdia.mvcc.spec.PersonManagerRemote";
+   private static final String LOCAL_PROVIDER = "localhost:1099";
+   private static Logger logger = Logger.getLogger(ServiceLocator.class);
+   
+   public static PersonManager findRemotePersonManater()
+   {
+      PersonManager returnValue = null;
+      Object reference = findObject(REMOTE_PERSON_MANAGER, LOCAL_PROVIDER);
+      if (null != reference)
+      {
+         returnValue = (PersonManager)reference;
+      }
+      else
+      {
+         logger.error("Service Locator could not find a remote PersonManager using ["+REMOTE_PERSON_MANAGER+"]");
+      }
+      return returnValue;
+   }
+
+   public static PersonManagerLocal findLocalPersonManager()
+   {
+      PersonManagerLocal l_return = null;
+       Object object = findObject(LOCAL_PERSON_MANAGER, LOCAL_PROVIDER);
+       if (null != object) 
+       {
+          l_return = (PersonManagerLocal)object;
+       }
+       else
+       {
+           logger.error("Service Locator could not find a local PersonManager using ["+LOCAL_PERSON_MANAGER+"]");
+       }
+       
+       return l_return;
+   }
+   private static Object findObject(String _jndiName, String _provider)
+   {
+       Object l_return = null;
+       try {
+           InitialContext l_context = new InitialContext();
+           l_context.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
+           l_context.addToEnvironment(Context.PROVIDER_URL, _provider);
+           l_return = l_context.lookup(_jndiName);
+       } catch (Exception e) {
+           e.printStackTrace ();
+       }
+       return l_return;
+   }
+}




More information about the jboss-svn-commits mailing list