Author: genspring
Date: Tue May 31 16:29:08 2011
New Revision: 1129784

URL: http://svn.apache.org/viewvc?rev=1129784&view=rev
Log:
OPENEJB-1322 BundleFinderFactory needs a better way to filter scans

1, add a isStandalone field for modules.  when the module is part of a ear, 
it's not standalone.

2, when the war is a part of ear,  use s.startWith(warLocation) to filer the 
classes in finder because geronimo
will extract war content to ear bundle. Hence, all war related ear bundle 
classpath will start with the war uri.

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
    
openejb/trunk/openejb3/container/openejb-osgi-core/src/main/java/org/apache/openejb/osgi/core/BundleFinderFactory.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=1129784&r1=1129783&r2=1129784&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
 Tue May 31 16:29:08 2011
@@ -18,7 +18,6 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.jee.Application;
 import org.apache.openejb.jee.jpa.EntityMappings;
-import org.apache.openejb.jee.oejb3.OpenejbJar;
 
 import java.io.File;
 import java.net.URI;
@@ -94,6 +93,10 @@ public class AppModule implements Deploy
     public boolean isStandaloneModule() {
         return standaloneModule;
     }
+    
+    public void setStandaloneModule(boolean isStandalone) {
+       //do nothing
+    }    
 
     public ValidationContext getValidation() {
         return validation;
@@ -251,5 +254,4 @@ public class AppModule implements Deploy
                 '}';
     }
 
-
 }

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java?rev=1129784&r1=1129783&r2=1129784&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
 Tue May 31 16:29:08 2011
@@ -44,6 +44,10 @@ public interface DeploymentModule {
     ValidationContext getValidation();
 
     Set<String> getWatchedResources();
+    
+    boolean isStandaloneModule();
+    
+    void setStandaloneModule(boolean isStandalone);
 
     class ID {
         private final String name;

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java?rev=1129784&r1=1129783&r2=1129784&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
 Tue May 31 16:29:08 2011
@@ -23,6 +23,8 @@ import java.util.Map;
 
 public class Module {
     private static int currentId = 1; // unique id to be able to bind 
something for each module in the jndi tree
+    
+    private boolean isStandaloneModule = true;
 
     private ValidationConfigType validationConfig;
     private final Map<String, Object> altDDs = new HashMap<String, Object>();
@@ -47,4 +49,14 @@ public class Module {
     public String getUniqueId() {
         return uniqueId;
     }
+    
+    public boolean isStandaloneModule() {
+        return isStandaloneModule;
+    }
+    
+    public void setStandaloneModule(boolean isStandalone) {
+        isStandaloneModule = isStandalone;
+    }    
+    
+       
 }

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java?rev=1129784&r1=1129783&r2=1129784&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
 Tue May 31 16:29:08 2011
@@ -90,4 +90,12 @@ public class PersistenceModule implement
                 "rootUrl='" + rootUrl + '\'' +
                 '}';
     }
+
+    public boolean isStandaloneModule() {
+        return false;
+    }
+
+    public void setStandaloneModule(boolean isStandalone) {
+       //do nothing        
+    }
 }

Modified: 
openejb/trunk/openejb3/container/openejb-osgi-core/src/main/java/org/apache/openejb/osgi/core/BundleFinderFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-osgi-core/src/main/java/org/apache/openejb/osgi/core/BundleFinderFactory.java?rev=1129784&r1=1129783&r2=1129784&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-osgi-core/src/main/java/org/apache/openejb/osgi/core/BundleFinderFactory.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-osgi-core/src/main/java/org/apache/openejb/osgi/core/BundleFinderFactory.java
 Tue May 31 16:29:08 2011
@@ -53,10 +53,10 @@ public class BundleFinderFactory extends
             ServiceReference sr = 
bundleContext.getServiceReference(PackageAdmin.class.getName());
             PackageAdmin packageAdmin = (PackageAdmin) 
bundleContext.getService(sr);
             final String location = module.getModuleUri().toString();
+            final boolean isWAR = location.endsWith(".war");
             boolean useLocation = location != null
                     && !location.isEmpty()
-                    && !module.getJarLocation().endsWith(".war")
-                    && !module.getJarLocation().endsWith(".jar");
+                    && !module.isStandaloneModule();
             if (useLocation) {
                 ResourceDiscoveryFilter filter = new ResourceDiscoveryFilter() 
{
 
@@ -67,12 +67,12 @@ public class BundleFinderFactory extends
 
                     @Override
                     public boolean zipFileDiscoveryRequired(String s) {
-                        return s.equals(location);
+                        return isWAR ? s.startsWith(location) : 
s.equals(location);
                     }
 
                     @Override
                     public boolean directoryDiscoveryRequired(String s) {
-                        return s.equals(location);
+                        return isWAR ? s.startsWith(location) : 
s.equals(location);
                     }
                 };
 


Reply via email to