Author: rmannibucau
Date: Sat Nov 24 08:25:16 2012
New Revision: 1413148

URL: http://svn.apache.org/viewvc?rev=1413148&view=rev
Log:
avoiding to define twice the same resource from tomcat and tomee

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

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1413148&r1=1413147&r2=1413148&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Sat Nov 24 08:25:16 2012
@@ -70,6 +70,8 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.InjectionBuilder;
 import org.apache.openejb.assembler.classic.JndiEncBuilder;
+import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
+import org.apache.openejb.assembler.classic.ResourceInfo;
 import org.apache.openejb.assembler.classic.ServletInfo;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.assembler.classic.WebAppInfo;
@@ -928,12 +930,27 @@ public class TomcatWebAppBuilder impleme
 
             if (standardContext.getNamingResources() instanceof 
OpenEJBNamingResource) {
                 // add them to the app as resource
-                for (ResourceBase resource : ((OpenEJBNamingResource) 
standardContext.getNamingResources()).getTomcatResources()) {
-                    final Resource newResource = new 
Resource(resource.getName(), resource.getType(), 
"org.apache.tomee:ProvidedByTomcat");
-                    newResource.getProperties().setProperty("jndiName", 
newResource.getId());
-                    newResource.getProperties().setProperty("appName", 
getId(standardContext));
-                    newResource.getProperties().setProperty("factory", 
(String) resource.getProperty("factory"));
-                    appModule.getResources().add(newResource);
+                final OpenEJBNamingResource nr = (OpenEJBNamingResource) 
standardContext.getNamingResources();
+                for (ResourceBase resource : nr.getTomcatResources()) {
+                    final String name = resource.getName();
+
+                    boolean found = false;
+                    for (ResourceInfo r : 
SystemInstance.get().getComponent(OpenEjbConfiguration.class).facilities.resources)
 {
+                        if (r.id.equals(name)) {
+                            nr.removeResource(name);
+                            found = true;
+                            logger.warning(name + " resource was defined in 
both tomcat and tomee so removing tomcat one");
+                            break;
+                        }
+                    }
+
+                    if (!found) {
+                        final Resource newResource = new Resource(name, 
resource.getType(), "org.apache.tomee:ProvidedByTomcat");
+                        newResource.getProperties().setProperty("jndiName", 
newResource.getId());
+                        newResource.getProperties().setProperty("appName", 
getId(standardContext));
+                        newResource.getProperties().setProperty("factory", 
(String) resource.getProperty("factory"));
+                        appModule.getResources().add(newResource);
+                    }
                 }
             }
 


Reply via email to