You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/10/10 11:59:34 UTC

svn commit: r1630747 - in /tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb: Extensions.java assembler/classic/Assembler.java config/ConfigurationFactory.java

Author: rmannibucau
Date: Fri Oct 10 09:59:33 2014
New Revision: 1630747

URL: http://svn.apache.org/r1630747
Log:
TOMEE-1392 support multiple line in META-INF/org.apache.openejb.extension

Modified:
    tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/Extensions.java
    tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/Extensions.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/Extensions.java?rev=1630747&r1=1630746&r2=1630747&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/Extensions.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/Extensions.java Fri Oct 10 09:59:33 2014
@@ -23,10 +23,14 @@ import org.apache.openejb.util.Logger;
 import org.apache.xbean.finder.ResourceFinder;
 
 import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
+import static java.util.Arrays.asList;
+
 /**
  * The Extensions API mimics the equivalent CDI Extension/@Observes API
  * <p/>
@@ -58,7 +62,7 @@ public final class Extensions {
         // no-op
     }
 
-    public static Collection<Class<?>> findExtensions(final ResourceFinder finder) {
+    public static Collection<Class<?>> findExtensions(final Finder finder) {
         try {
             return finder.findAvailableClasses("org.apache.openejb.extension");
         } catch (final IOException e) {
@@ -67,7 +71,7 @@ public final class Extensions {
         }
     }
 
-    public static void installExtensions(final ResourceFinder finder) {
+    public static void installExtensions(final Finder finder) {
         try {
             final List<Class<?>> classes = finder.findAvailableClasses("org.apache.openejb.extension");
             addExtensions(classes);
@@ -97,4 +101,24 @@ public final class Extensions {
             }
         }
     }
+
+    public static class Finder extends ResourceFinder {
+        public Finder(final String path, final URL... urls) {
+            super(path, urls);
+        }
+
+        // ensure we support multiple class by file
+        public List<String> findAvailableStrings(final String uri) throws IOException {
+            List<String> strings = super.findAvailableStrings(uri);
+            if (!strings.isEmpty()) {
+                final List<String> copy = new ArrayList<String>(strings);
+                strings.clear();
+                for (final String s : copy) {
+                    strings.addAll(asList(s.replace("\r", "").split("\n")));
+                }
+            }
+
+            return strings;
+        }
+    }
 }

Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1630747&r1=1630746&r2=1630747&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Fri Oct 10 09:59:33 2014
@@ -322,14 +322,14 @@ public class Assembler extends Assembler
     private void installExtensions() {
         try {
             final Collection<URL> urls = NewLoaderLogic.applyBuiltinExcludes(new UrlSet(Assembler.class.getClassLoader()).excludeJvm()).getUrls();
-            Extensions.installExtensions(new ResourceFinder("META-INF", urls.toArray(new URL[urls.size()])));
+            Extensions.installExtensions(new Extensions.Finder("META-INF", urls.toArray(new URL[urls.size()])));
             return;
         } catch (final IOException e) {
             // no-op
         }
 
         // if an error occurred do it brutely
-        Extensions.installExtensions(new ResourceFinder("META-INF"));
+        Extensions.installExtensions(new Extensions.Finder("META-INF"));
     }
 
     private void setConfiguration(final OpenEjbConfiguration config) {

Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1630747&r1=1630746&r2=1630747&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Fri Oct 10 09:59:33 2014
@@ -925,7 +925,7 @@ public class ConfigurationFactory implem
 
         final List<URL> libs = appModule.getAdditionalLibraries();
         if (libs != null && libs.size() > 0) {
-            final ResourceFinder finder = new ResourceFinder("META-INF", libs.toArray(new URL[libs.size()]));
+            final Extensions.Finder finder = new Extensions.Finder("META-INF", libs.toArray(new URL[libs.size()]));
             extensions.addAll(Extensions.findExtensions(finder));
             notLoaded.addAll(finder.getResourcesNotLoaded());
         }
@@ -935,7 +935,7 @@ public class ConfigurationFactory implem
                 if (uri.isAbsolute()) {
                     final URL url = uri.toURL();
                     if (libs != null && !libs.contains(url)) {
-                        final ResourceFinder finder = new ResourceFinder("META-INF", url);
+                        final Extensions.Finder finder = new Extensions.Finder("META-INF", url);
                         extensions.addAll(Extensions.findExtensions(finder));
                         notLoaded.addAll(finder.getResourcesNotLoaded());
                     }
@@ -951,7 +951,7 @@ public class ConfigurationFactory implem
         for (final WebModule web : appModule.getWebModules()) {
             final List<URL> webLibs = web.getScannableUrls();
             if (webLibs != null && webLibs.size() > 0) {
-                final ResourceFinder finder = new ResourceFinder("META-INF", webLibs.toArray(new URL[webLibs.size()]));
+                final Extensions.Finder finder = new Extensions.Finder("META-INF", webLibs.toArray(new URL[webLibs.size()]));
                 extensions.addAll(Extensions.findExtensions(finder));
                 notLoaded.addAll(finder.getResourcesNotLoaded());
             }