Author: rmannibucau
Date: Mon May 14 22:21:29 2012
New Revision: 1338457

URL: http://svn.apache.org/viewvc?rev=1338457&view=rev
Log:
TOMEE-191 merging tomee.xml resources in tomcat server naming

Modified:
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java?rev=1338457&r1=1338456&r2=1338457&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 Mon May 14 22:21:29 2012
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import javax.ejb.spi.HandleDelegate;
 import javax.naming.Context;
+import javax.naming.InitialContext;
 import javax.naming.LinkRef;
 import javax.naming.NamingException;
 import javax.naming.RefAddr;
@@ -38,6 +39,7 @@ import javax.transaction.TransactionSync
 import javax.transaction.UserTransaction;
 import org.apache.catalina.core.NamingContextListener;
 import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.deploy.ContextEjb;
 import org.apache.catalina.deploy.ContextEnvironment;
 import org.apache.catalina.deploy.ContextResource;
@@ -57,6 +59,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.PersistenceUnitReferenceInfo;
 import org.apache.openejb.assembler.classic.PortRefInfo;
 import org.apache.openejb.assembler.classic.ResourceEnvReferenceInfo;
+import org.apache.openejb.assembler.classic.ResourceInfo;
 import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
 import org.apache.openejb.assembler.classic.ServiceReferenceInfo;
 import org.apache.openejb.assembler.classic.WebAppInfo;
@@ -749,6 +752,33 @@ public class TomcatJndiBuilder {
         setStaticValue(new Resource(resource), object);
     }
 
+    public static void importOpenEJBResourcesInTomcat(final 
Collection<ResourceInfo> resources, final StandardServer server) {
+        final NamingResources naming = server.getGlobalNamingResources();
+        final Context ctx;
+        try {
+            ctx = new InitialContext();
+        } catch (NamingException e) {
+            e.printStackTrace();
+            return;
+        }
+
+        for (ResourceInfo info : resources) {
+            final String name = info.id;
+            if (name == null || naming.findResource(name) != null) {
+                continue;
+            }
+
+            final ContextResource resource = new ContextResource();
+            resource.setName(name);
+            resource.setProperty(Constants.FACTORY, 
ResourceFactory.class.getName());
+            resource.setProperty(NAME, name);
+            resource.setType(info.className);
+            resource.setAuth("Container");
+
+            naming.addResource(resource);
+        }
+    }
+
     private static class Resource implements NamingUtil.Resource {
         private final ContextResource contextResource;
 

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java?rev=1338457&r1=1338456&r2=1338457&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
 Mon May 14 22:21:29 2012
@@ -28,6 +28,8 @@ import org.apache.catalina.core.Standard
 import org.apache.catalina.startup.Bootstrap;
 import org.apache.catalina.startup.Catalina;
 import org.apache.openejb.OpenEJB;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.config.NewLoaderLogic;
 import org.apache.openejb.config.sys.Tomee;
@@ -40,6 +42,7 @@ import org.apache.openejb.server.ServerS
 import org.apache.openejb.server.ServiceException;
 import org.apache.openejb.server.ServiceManager;
 import org.apache.openejb.server.ejbd.EjbServer;
+import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.spi.Service;
 import org.apache.openejb.util.Join;
 import org.apache.openejb.util.LogCategory;
@@ -210,6 +213,7 @@ public class TomcatLoader implements Loa
         ejbServer = new EjbServer();
         SystemInstance.get().setComponent(EjbServer.class, ejbServer);
         OpenEJB.init(properties, new ServerFederation());
+        
TomcatJndiBuilder.importOpenEJBResourcesInTomcat(SystemInstance.get().getComponent(OpenEjbConfiguration.class).facilities.resources,
 TomcatHelper.getServer());
 
         Properties ejbServerProps = new Properties();
         ejbServerProps.putAll(properties);


Reply via email to