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);