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