Author: rmannibucau
Date: Sat Aug 23 10:29:40 2014
New Revision: 1620001
URL: http://svn.apache.org/r1620001
Log:
TOMEE-1330 allow to scan container for wars
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
tomee/tomee/trunk/container/openejb-core/src/main/resources/default.exclusions
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1620001&r1=1620000&r2=1620001&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
Sat Aug 23 10:29:40 2014
@@ -56,8 +56,10 @@ import org.apache.xbean.finder.IAnnotati
import org.apache.xbean.finder.ResourceFinder;
import org.apache.xbean.finder.UrlSet;
import org.apache.xbean.finder.archive.ClassesArchive;
+import org.apache.xbean.finder.filter.ExcludeIncludeFilter;
import org.apache.xbean.finder.filter.Filter;
import org.apache.xbean.finder.filter.Filters;
+import org.apache.xbean.finder.filter.IncludeExcludeFilter;
import java.io.BufferedInputStream;
import java.io.File;
@@ -109,6 +111,7 @@ public class DeploymentLoader implements
private final boolean scanManagedBeans = true;
private static final Collection<String> KNOWN_DESCRIPTORS =
Arrays.asList("app-ctx.xml", "module.properties", "application.properties",
"web.xml", "ejb-jar.xml", "openejb-jar.xml", "env-entries.properties",
"beans.xml", "ra.xml", "application.xml", "application-client.xml",
"persistence-fragment.xml", "persistence.xml", "validation.xml",
NewLoaderLogic.EXCLUSION_FILE);
private static String ALTDD =
SystemInstance.get().getOptions().get(OPENEJB_ALTDD_PREFIX, (String) null);
+ private volatile List<URL> containerUrls = null;
public AppModule load(final File jarFile) throws OpenEJBException {
// verify we have a valid file
@@ -919,7 +922,35 @@ public class DeploymentLoader implements
// determine war class path
- final List<URL> webUrls = new ArrayList<URL>();
+ final List<URL> webUrls = new ArrayList<>();
+ if (containerUrls == null) {
+ if
("true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.scan.webapp.container",
"false"))) {
+ synchronized (this) {
+ if (containerUrls == null) {
+ try {
+ UrlSet urlSet = new
UrlSet(ParentClassLoaderFinder.Helper.get());
+ urlSet = URLs.cullSystemJars(urlSet);
+ urlSet =
NewLoaderLogic.applyBuiltinExcludes(urlSet);
+ containerUrls = urlSet.getUrls();
+
+ final Iterator<URL> it = containerUrls.iterator();
+ while (it.hasNext()) { // remove lib/
+ final File file = URLs.toFile(it.next());
+ // TODO: see if websocket should be added in
default.exclusions
+ if (file.isDirectory() ||
file.getName().endsWith("tomcat-websocket.jar")) {
+ it.remove();
+ }
+ }
+ } catch (final Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ }
+ } else {
+ containerUrls = Collections.emptyList();
+ }
+ }
+ webUrls.addAll(containerUrls);
// add these urls first to ensure we load classes from here first
final String externalRepos = SystemInstance.get().getProperty("tomee."
+ warFile.getName().replace(".war", "") + ".externalRepositories");
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=1620001&r1=1620000&r2=1620001&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
Sat Aug 23 10:29:40 2014
@@ -213,7 +213,7 @@ public class DeploymentsResolver impleme
* 2- Loading the resource is the default behaviour in case of not
defining a value for any class-path pattern
* This appears in step 3 of the above algorithm.
*/
- public static void loadFromClasspath(final FileUtils base, final List<URL>
jarList, final ClassLoader classLoader) {
+ public static void loadFromClasspath(final FileUtils ignored, final
List<URL> jarList, final ClassLoader classLoader) {
final Options options = SystemInstance.get().getOptions();
final String include = options.get(CLASSPATH_INCLUDE, ".*");
final String exclude = options.get(CLASSPATH_EXCLUDE, "");
@@ -299,7 +299,7 @@ public class DeploymentsResolver impleme
}
final long begin = System.currentTimeMillis();
- processUrls("DeploymentsResolver1", urls, classLoader,
requireDescriptors, base, jarList);
+ processUrls("DeploymentsResolver1", urls, classLoader,
requireDescriptors, ignored, jarList);
final long end = System.currentTimeMillis();
final long time = end - begin;
@@ -310,7 +310,7 @@ public class DeploymentsResolver impleme
if (filterSystemApps) {
unchecked =
unchecked.exclude(".*/openejb-[^/]+(.(jar|ear|war)(./)?|/target/classes/?)");
}
- processUrls("DeploymentsResolver2", unchecked.getUrls(),
classLoader, EnumSet.allOf(RequireDescriptors.class), base, jarList);
+ processUrls("DeploymentsResolver2", unchecked.getUrls(),
classLoader, EnumSet.allOf(RequireDescriptors.class), ignored, jarList);
}
if (logger.isDebugEnabled()) {
@@ -366,7 +366,7 @@ public class DeploymentsResolver impleme
final List<URL> urls,
final ClassLoader classLoader,
final Set<RequireDescriptors>
requireDescriptors,
- final FileUtils base,
+ final FileUtils ignored, // don't use it,
it will be removed since we already suppose it is null in several places
final List<URL> jarList) {
for (final URL url : urls) {
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/resources/default.exclusions
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/resources/default.exclusions?rev=1620001&r1=1620000&r2=1620001&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/resources/default.exclusions
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/resources/default.exclusions
Sat Aug 23 10:29:40 2014
@@ -61,8 +61,7 @@ el-api
eclipselink-
ehcache-
FastInfoset
-fleece-core
-fleece-mapper
+fleece-
fusemq-leveldb-
geronimo-
google-