You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ad...@apache.org on 2012/02/20 20:09:43 UTC
svn commit: r1291412 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-core/src/main/java/org/apache/openejb/util/
server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/
Author: adc
Date: Mon Feb 20 19:09:43 2012
New Revision: 1291412
URL: http://svn.apache.org/viewvc?rev=1291412&view=rev
Log:
OPENEJB-1783 Sometimes the list of URLs is too large when searching for annotated classes
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1291412&r1=1291411&r2=1291412&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Mon Feb 20 19:09:43 2012
@@ -1023,10 +1023,7 @@ public class DeploymentLoader implements
UrlSet urlSet;
try {
urlSet = new UrlSet(parentClassLoader);
- urlSet = urlSet.excludeJavaEndorsedDirs();
- urlSet = urlSet.excludeJavaExtDirs();
- urlSet = urlSet.excludeJavaHome();
- urlSet = urlSet.exclude(ClassLoader.getSystemClassLoader());
+ urlSet = URLs.cullSystemJars(urlSet);
} catch (IOException e) {
logger.warning("Error scanning class loader for JSP tag libraries", e);
return urls;
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=1291412&r1=1291411&r2=1291412&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java Mon Feb 20 19:09:43 2012
@@ -22,6 +22,8 @@ import org.apache.openejb.loader.FileUti
import org.apache.openejb.loader.Options;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.URLs;
+
import org.apache.xbean.finder.UrlSet;
import org.apache.xbean.finder.filter.ExcludeIncludeFilter;
import org.apache.xbean.finder.filter.Filter;
@@ -194,12 +196,7 @@ public class DeploymentsResolver impleme
try {
UrlSet urlSet = new UrlSet(classLoader);
- urlSet = urlSet.exclude(ClassLoader.getSystemClassLoader().getParent());
- urlSet = urlSet.excludeJavaExtDirs();
- urlSet = urlSet.excludeJavaEndorsedDirs();
- urlSet = urlSet.excludeJavaHome();
- urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", ""));
- urlSet = urlSet.exclude(".*/JavaVM.framework/.*");
+ urlSet = URLs.cullSystemJars(urlSet);
// save the prefiltered list of jars before excluding system apps
// so that we can choose not to filter modules with descriptors on the full list
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java?rev=1291412&r1=1291411&r2=1291412&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java Mon Feb 20 19:09:43 2012
@@ -342,12 +342,7 @@ public class NewLoaderLogic {
UrlSet urlSet = new UrlSet(classLoader);
timer.event("exclude system urls");
- urlSet = urlSet.exclude(ClassLoader.getSystemClassLoader().getParent());
- urlSet = urlSet.excludeJavaExtDirs();
- urlSet = urlSet.excludeJavaEndorsedDirs();
- urlSet = urlSet.excludeJavaHome();
- urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", ""));
- urlSet = urlSet.exclude(".*/JavaVM.framework/.*");
+ urlSet = URLs.cullSystemJars(urlSet);
timer.event("classpath filter");
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java?rev=1291412&r1=1291411&r2=1291412&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/URLs.java Mon Feb 20 19:09:43 2012
@@ -20,13 +20,18 @@ package org.apache.openejb.util;
import static org.apache.openejb.loader.JarLocation.decode;
import java.io.File;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import org.apache.xbean.finder.UrlSet;
+
+
/**
* @version $Rev$ $Date$
*/
public class URLs {
+ public static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, URLs.class.getPackage().getName());
public static File toFile(URL url) {
if ("jar".equals(url.getProtocol())) {
@@ -53,4 +58,29 @@ public class URLs {
public static String toFilePath(URL url) {
return toFile(url).getAbsolutePath();
}
+
+ public static UrlSet cullSystemAndOpenEJBJars(UrlSet original) throws IOException {
+ return cullSystemJars(cullOpenEJBJars(original));
+ }
+
+ public static UrlSet cullSystemJars(UrlSet original) throws IOException {
+ UrlSet urls = new UrlSet(original.getUrls());
+ urls = urls.exclude(ClassLoader.getSystemClassLoader().getParent());
+ urls = urls.excludeJavaExtDirs();
+ urls = urls.excludeJavaEndorsedDirs();
+ urls = urls.excludeJavaHome();
+ urls = urls.excludePaths(System.getProperty("sun.boot.class.path", ""));
+ urls = urls.exclude(".*/JavaVM.framework/.*");
+ if (LOGGER.isDebugEnabled()) LOGGER.debug("Cullled {} system urls from set", original.size() - urls.size());
+ return urls;
+ }
+
+ public static UrlSet cullOpenEJBJars(UrlSet original) throws IOException {
+ UrlSet urls = new UrlSet(original.getUrls());
+ urls = urls.exclude(".*openejb.*");
+ if (LOGGER.isDebugEnabled()) LOGGER.debug("Cullled {} OpenEJB urls from set", original.size() - urls.size());
+ return urls;
+ }
+
+ private URLs() { }
}
Modified: openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java?rev=1291412&r1=1291411&r2=1291412&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java (original)
+++ openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java Mon Feb 20 19:09:43 2012
@@ -23,6 +23,8 @@ import org.apache.openejb.config.NewLoad
import org.apache.openejb.server.cli.command.AbstractCommand;
import org.apache.openejb.server.cli.command.Command;
import org.apache.openejb.util.OpenEjbVersion;
+import org.apache.openejb.util.URLs;
+
import org.apache.xbean.finder.Annotated;
import org.apache.xbean.finder.ClassFinder;
import org.apache.xbean.finder.UrlSet;
@@ -79,7 +81,7 @@ public class CliRunnable implements Runn
final UrlSet forceCommonCli = new UrlSet(CliRunnable.class.getClassLoader()).matching(".*openejb-common-cli.*");
UrlSet urls = new UrlSet(CliRunnable.class.getClassLoader());
urls = NewLoaderLogic.applyBuiltinExcludes(urls);
- urls = urls.exclude(".*openejb.*");
+ urls = URLs.cullSystemAndOpenEJBJars(urls);
urls = urls.include(forceCommonCli);
final ClassFinder finder = new ClassFinder(CliRunnable.class.getClassLoader(), urls.getUrls());