You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/08/22 07:56:12 UTC
svn commit: r568431 - in /openejb/trunk/openejb3:
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-core/src/test/java/org/apache/openejb/
examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/
Author: dblevins
Date: Tue Aug 21 22:56:10 2007
New Revision: 568431
URL: http://svn.apache.org/viewvc?rev=568431&view=rev
Log:
Cleaned up embedded testing support so that by default apps with an ejb-jar.xml file will be found even if the openejb.deployments.classpath.include is not set.
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/ApplicationTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/SomeoneBrokeSurefireAndThisIsADirtyHackForItTest.java
openejb/trunk/openejb3/examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/StratocasterTest.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=568431&r1=568430&r2=568431&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java Tue Aug 21 22:56:10 2007
@@ -38,6 +38,7 @@
private static final String CLASSPATH_INCLUDE = "openejb.deployments.classpath.include";
private static final String CLASSPATH_EXCLUDE = "openejb.deployments.classpath.exclude";
private static final String CLASSPATH_REQUIRE_DESCRIPTOR = "openejb.deployments.classpath.require.descriptor";
+ private static final String CLASSPATH_FILTER_DESCRIPTORS = "openejb.deployments.classpath.filter.descriptors";
private static void loadFrom(Deployments dep, FileUtils path, List<String> jarList) {
@@ -171,6 +172,7 @@
include = SystemInstance.get().getProperty(CLASSPATH_INCLUDE, "");
exclude = SystemInstance.get().getProperty(CLASSPATH_EXCLUDE, ".*");
boolean requireDescriptors = SystemInstance.get().getProperty(CLASSPATH_REQUIRE_DESCRIPTOR, "false").equalsIgnoreCase("true");
+ boolean filterDescriptors = SystemInstance.get().getProperty(CLASSPATH_FILTER_DESCRIPTORS, "false").equalsIgnoreCase("true");
try {
UrlSet urlSet = new UrlSet(classLoader);
UrlSet includes = urlSet.matching(include);
@@ -180,6 +182,7 @@
urlSet = urlSet.excludeJavaHome();
urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", ""));
urlSet = urlSet.exclude(".*/JavaVM.framework/.*");
+ UrlSet prefiltered = urlSet;
urlSet = urlSet.exclude(exclude);
urlSet = urlSet.include(includes);
@@ -188,7 +191,7 @@
if (size == 0 && include.length() > 0) {
DeploymentLoader.logger.warning("No classpath URLs matched. Current settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + "='" + include + "'");
return;
- } else if (size == 0) {
+ } else if (size == 0 && (!filterDescriptors && prefiltered.getUrls().size() == 0)) {
return;
} else if (size < 10) {
DeploymentLoader.logger.debug("Inspecting classpath for applications: " + urls.size() + " urls.");
@@ -200,35 +203,17 @@
}
long begin = System.currentTimeMillis();
- for (URL url : urls) {
- try {
- Class moduleType = DeploymentLoader.discoverModuleType(url, classLoader, !requireDescriptors);
- if (AppModule.class.isAssignableFrom(moduleType) || EjbModule.class.isAssignableFrom(moduleType)) {
- deployment = JaxbOpenejb.createDeployments();
- if (url.getProtocol().equals("jar")) {
- url = new URL(url.getFile().replaceFirst("!.*$", ""));
- File file = new File(url.getFile());
- path = file.getAbsolutePath();
- deployment.setJar(path);
- } else if (url.getProtocol().equals("file")) {
- File file = new File(url.getFile());
- path = file.getAbsolutePath();
- deployment.setDir(path);
- } else {
- DeploymentLoader.logger.warning("Not loading " + moduleType.getSimpleName() + ". Unknown protocol " + url.getProtocol());
- continue;
- }
- DeploymentLoader.logger.info("Found " + moduleType.getSimpleName() + " in classpath: " + path);
- loadFrom(deployment, base, jarList);
- }
- } catch (IOException e) {
- DeploymentLoader.logger.warning("Unable to determine the module type of " + url.toExternalForm() + ": Exception: " + e.getMessage(), e);
- } catch (UnknownModuleTypeException ignore) {
- }
- }
+ processUrls(urls, classLoader, !requireDescriptors, base, jarList);
long end = System.currentTimeMillis();
long time = end - begin;
+ if (!filterDescriptors){
+ UrlSet unchecked = prefiltered.exclude(urlSet);
+ processUrls(unchecked.getUrls(), classLoader, false, base, jarList);
+ }
+
+ if (urls.size() == 0) return;
+
if (time < 1000) {
DeploymentLoader.logger.debug("Searched " + urls.size() + " classpath urls in " + time + " milliseconds. Average " + (time / urls.size()) + " milliseconds per url.");
} else if (time < 4000 || urls.size() < 3) {
@@ -253,5 +238,36 @@
DeploymentLoader.logger.warning("Unable to search classpath for modules: Received Exception: " + e1.getClass().getName() + " " + e1.getMessage(), e1);
}
+ }
+
+ private static void processUrls(List<URL> urls, ClassLoader classLoader, boolean desc, FileUtils base, List<String> jarList) {
+ Deployments deployment;
+ String path;
+ for (URL url : urls) {
+ try {
+ Class moduleType = DeploymentLoader.discoverModuleType(url, classLoader, desc);
+ if (AppModule.class.isAssignableFrom(moduleType) || EjbModule.class.isAssignableFrom(moduleType)) {
+ deployment = JaxbOpenejb.createDeployments();
+ if (url.getProtocol().equals("jar")) {
+ url = new URL(url.getFile().replaceFirst("!.*$", ""));
+ File file = new File(url.getFile());
+ path = file.getAbsolutePath();
+ deployment.setJar(path);
+ } else if (url.getProtocol().equals("file")) {
+ File file = new File(url.getFile());
+ path = file.getAbsolutePath();
+ deployment.setDir(path);
+ } else {
+ DeploymentLoader.logger.warning("Not loading " + moduleType.getSimpleName() + ". Unknown protocol " + url.getProtocol());
+ continue;
+ }
+ DeploymentLoader.logger.info("Found " + moduleType.getSimpleName() + " in classpath: " + path);
+ loadFrom(deployment, base, jarList);
+ }
+ } catch (IOException e) {
+ DeploymentLoader.logger.warning("Unable to determine the module type of " + url.toExternalForm() + ": Exception: " + e.getMessage(), e);
+ } catch (UnknownModuleTypeException ignore) {
+ }
+ }
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/ApplicationTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/ApplicationTest.java?rev=568431&r1=568430&r2=568431&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/ApplicationTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/ApplicationTest.java Tue Aug 21 22:56:10 2007
@@ -25,8 +25,8 @@
public class ApplicationTest extends TestCase {
public static Test suite() {
System.setProperty("openejb.assembler", org.apache.openejb.assembler.classic.Assembler.class.getName());
- System.setProperty("openejb.deployments.classpath", "true");
System.setProperty("openejb.deployments.classpath.include", ".*openejb-itests-app.*");
+ System.setProperty("openejb.deployments.classpath.filter.descriptors", "true");
return iTest.suite();
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/SomeoneBrokeSurefireAndThisIsADirtyHackForItTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/SomeoneBrokeSurefireAndThisIsADirtyHackForItTest.java?rev=568431&r1=568430&r2=568431&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/SomeoneBrokeSurefireAndThisIsADirtyHackForItTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/SomeoneBrokeSurefireAndThisIsADirtyHackForItTest.java Tue Aug 21 22:56:10 2007
@@ -38,6 +38,7 @@
public static Test suite() {
System.setProperty("openejb.assembler", org.apache.openejb.assembler.classic.Assembler.class.getName());
System.setProperty("openejb.deployments.classpath.include", ".*openejb-itests-*.*");
+ System.setProperty("openejb.deployments.classpath.filter.descriptors", "true");
return iTest.suite();
}
}
Modified: openejb/trunk/openejb3/examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/StratocasterTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/StratocasterTest.java?rev=568431&r1=568430&r2=568431&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/StratocasterTest.java (original)
+++ openejb/trunk/openejb3/examples/expanded-env-entries/src/test/java/org/apache/openejb/examples/enventries/StratocasterTest.java Tue Aug 21 22:56:10 2007
@@ -44,7 +44,7 @@
protected void setUp() throws Exception {
Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
- properties.setProperty("openejb.deployments.classpath.include", ".*expanded-env-entries.*");
+// properties.setProperty("openejb.deployments.classpath.include", ".*expanded-env-entries.*");
initialContext = new InitialContext(properties);
}