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 2015/02/26 15:54:17 UTC
tomee git commit: cleaner fix to link beans.xml to target/classes
Repository: tomee
Updated Branches:
refs/heads/develop 1aed3c430 -> eb3736dd9
cleaner fix to link beans.xml to target/classes
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/eb3736dd
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/eb3736dd
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/eb3736dd
Branch: refs/heads/develop
Commit: eb3736dd930fbeb5fdd5c9f93c6862cc53afa7e6
Parents: 1aed3c4
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Feb 26 15:54:03 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu Feb 26 15:54:03 2015 +0100
----------------------------------------------------------------------
.../openejb/config/AnnotationDeployer.java | 42 ++++++++------------
.../org/apache/tomee/embedded/Container.java | 20 +++++++++-
2 files changed, 35 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/eb3736dd/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
index fbcf812..167b074 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
@@ -439,15 +439,6 @@ public class AnnotationDeployer implements DynamicDeployer {
}
public static class DiscoverAnnotatedBeans implements DynamicDeployer {
- private ClassesFolderDiscover classesFolderDiscover;
-
- public DiscoverAnnotatedBeans() {
- this.classesFolderDiscover = SystemInstance.get().getComponent(ClassesFolderDiscover.class);
- if (this.classesFolderDiscover == null) {
- this.classesFolderDiscover = new MavenClassesFolderDiscover();
- }
- }
-
public AppModule deploy(AppModule appModule) throws OpenEJBException {
if (!appModule.isWebapp() && !appModule.getWebModules().isEmpty()) { // need to scan for jsf stuff at least
try {
@@ -1676,11 +1667,10 @@ public class AnnotationDeployer implements DynamicDeployer {
Collection<Class<?>> discoveredBeans = null;
List<Class<? extends Extension>> extensions = null;
- final Object altDDFound = altDD.get("beans.xml");
- final URL classesBeansXml = URL.class.isInstance(altDDFound) ? URL.class.cast(altDDFound) : null;
+ final FolderDDMapper ddMapper = SystemInstance.get().getComponent(FolderDDMapper.class);
for (final Map.Entry<URL, List<String>> entry : map.entrySet()) {
final URL key = entry.getKey();
- final URL beansXml = hasBeansXml(key, classesBeansXml);
+ final URL beansXml = hasBeansXml(key, ddMapper);
final List<String> value = entry.getValue();
if (beansXml != null) {
classes.put(beansXml, value);
@@ -1772,7 +1762,7 @@ public class AnnotationDeployer implements DynamicDeployer {
}
}
- public URL hasBeansXml(final URL url, final URL classesBeansXml) {
+ public URL hasBeansXml(final URL url, final FolderDDMapper ddMapper) {
final String urlPath = url.getPath();
if (urlPath.endsWith("/WEB-INF/beans.xml")) {
return url;
@@ -1832,10 +1822,18 @@ public class AnnotationDeployer implements DynamicDeployer {
// no-op
}
}
- if (classesFolderDiscover != null) {
+ if (ddMapper != null) {
final File asFile = URLs.toFile(url);
- if (asFile.isDirectory() && classesFolderDiscover.isClassesFolder(asFile)) {
- return classesBeansXml;
+ if (asFile.isDirectory()) {
+ final File ddFolder = ddMapper.getDDFolder(asFile);
+ final File file = new File(ddFolder, "beans.xml");
+ if (file.isFile()) {
+ try {
+ return file.toURI().toURL();
+ } catch (final MalformedURLException e) {
+ // no-op
+ }
+ }
}
}
return null;
@@ -5693,15 +5691,7 @@ public class AnnotationDeployer implements DynamicDeployer {
// no-method
}
- public static interface ClassesFolderDiscover {
- boolean isClassesFolder(final File dir);
- }
-
- public static class MavenClassesFolderDiscover implements ClassesFolderDiscover {
- @Override
- public boolean isClassesFolder(final File dir) {
- return dir.getName().equals("classes")
- && dir.getParentFile().getName().equals("target");
- }
+ public static interface FolderDDMapper {
+ File getDDFolder(final File dir);
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/eb3736dd/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index 5aff35b..29e62ae 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -222,6 +222,14 @@ public class Container implements AutoCloseable {
throw new IllegalArgumentException(e);
}
+ final File beansXml = new File(docBase, "WEB-INF/beans.xml");
+ if (beansXml.exists()) { // add it since it is not in the scanned path by default
+ try {
+ webModule.getAltDDs().put("beans.xml", beansXml.toURI().toURL());
+ } catch (final MalformedURLException e) {
+ // no-op
+ }
+ }
DeploymentLoader.addBeansXmls(webModule);
final AppModule app = new AppModule(loader, null);
@@ -229,7 +237,9 @@ public class Container implements AutoCloseable {
app.setStandaloneModule(true);
app.setModuleId(webModule.getModuleId());
try {
- webModule.getAltDDs().putAll(DeploymentLoader.getWebDescriptors(jarLocation));
+ final Map<String, URL> webDescriptors = DeploymentLoader.getWebDescriptors(jarLocation);
+ webDescriptors.remove("beans.xml");
+ webModule.getAltDDs().putAll(webDescriptors);
DeploymentLoader.addWebModule(webModule, app);
DeploymentLoader.addWebModuleDescriptors(new File(webModule.getJarLocation()).toURI().toURL(), webModule, app);
} catch (final Exception e) {
@@ -239,6 +249,14 @@ public class Container implements AutoCloseable {
addCallersAsEjbModule(loader, app, additionalCallers);
systemInstance.addObserver(new StandardContextCustomizer(webModule));
+ systemInstance.setComponent(AnnotationDeployer.FolderDDMapper.class, new AnnotationDeployer.FolderDDMapper() {
+ @Override
+ public File getDDFolder(final File dir) {
+ // maven
+ return dir.getName().equals("classes") && dir.getParentFile().getName().equals("target") ?
+ new File(docBase, "WEB-INF") : null;
+ }
+ });
try {
final AppInfo appInfo = configurationFactory.configureApplication(app);