Author: dblevins
Date: Fri Apr  8 03:07:47 2011
New Revision: 1090094

URL: http://svn.apache.org/viewvc?rev=1090094&view=rev
Log:
filter out invalid directory-based module names

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java

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=1090094&r1=1090093&r2=1090094&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
 Fri Apr  8 03:07:47 2011
@@ -20,6 +20,8 @@ import org.apache.openejb.jee.NamedModul
 
 import java.io.File;
 import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -73,11 +75,26 @@ public interface DeploymentModule {
             if (spec != null && spec.getModuleName() != null) return 
spec.getModuleName().trim();
             if (spec != null && spec.getId() != null) return 
spec.getId().trim();
             if (uri != null) return stripExtension(uri.getPath());
-            if (location != null) return stripExtension(location.getName());
+            if (location != null) return moduleName(location);
             if (name != null) return name;
             return "@" + module.getClass().getSimpleName() + module.hashCode();
         }
 
+        private String moduleName(File location) {
+            List<String> invalid = new ArrayList<String>();
+            invalid.add("classes");
+            invalid.add("test-classes");
+            invalid.add("target");
+            invalid.add("build");
+            invalid.add("dist");
+            invalid.add("bin");
+
+            while (invalid.contains(location.getName())) {
+                location = location.getParentFile();
+            }
+            return stripExtension(location.getName());
+        }
+
         private String stripExtension(String name) {
             String[] exts = {".jar", ".zip", ".ear", ".war", ".rar", 
".unpacked"};
             for (String ext : exts) {


Reply via email to