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/12/16 20:10:27 UTC
tomee git commit: trying to get webapp libraries of ear in openejb
embedded arquillian adapter
Repository: tomee
Updated Branches:
refs/heads/develop f22c7ea25 -> 54bc07657
trying to get webapp libraries of ear in openejb embedded arquillian adapter
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/54bc0765
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/54bc0765
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/54bc0765
Branch: refs/heads/develop
Commit: 54bc076576c459391e76d34b12480aa683e1cb07
Parents: f22c7ea
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Dec 16 20:08:41 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Dec 16 20:08:41 2014 +0100
----------------------------------------------------------------------
.../openejb/OpenEJBArchiveProcessor.java | 67 +++++++++++---------
tck/cdi-embedded/src/test/resources/failing.xml | 2 +-
2 files changed, 38 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/54bc0765/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
index 6cdb7a8..65144db 100644
--- a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
+++ b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
@@ -66,6 +66,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -117,31 +118,7 @@ public class OpenEJBArchiveProcessor {
prefix = WEB_INF;
final Map<ArchivePath, Node> content = archive.getContent(new IncludeRegExpPaths("/WEB-INF/lib/.*"));
- for (final Map.Entry<ArchivePath, Node> node : content.entrySet()) {
- final Asset asset = node.getValue().getAsset();
- if (UrlAsset.class.isInstance(asset)) {
- additionalPaths.add(get(URL.class, "url", asset));
- } else if (FileAsset.class.isInstance(asset)) {
- try {
- additionalPaths.add(get(File.class, "file", asset).toURI().toURL());
- } catch (final MalformedURLException e) {
- LOGGER.log(Level.SEVERE, "can't add a library to the deployment", e);
- }
- } else if (ArchiveAsset.class.isInstance(asset)) {
- final Archive<?> nestedArchive = ArchiveAsset.class.cast(asset).getArchive();
- if (!isExcluded(nestedArchive.getName())) {
- final Node bXmlNode = nestedArchive.get(META_INF + BEANS_XML);
- if (bXmlNode != null) {
- try {
- beansXmlMerged.add(new AssetSource(bXmlNode.getAsset(), new URL("jar:file://!/WEB-INF/lib/" + nestedArchive.getName() + "!/META-INF/beans.xml")));
- } catch (final MalformedURLException e) {
- // shouldn't occur
- }
- }
- archive.merge(nestedArchive);
- }
- }
- }
+ analyzeWebArchive(archive, additionalPaths, beansXmlMerged, content);
} else {
if (isEar) { // mainly for CDI TCKs
earMap = new HashMap<>();
@@ -220,17 +197,19 @@ public class OpenEJBArchiveProcessor {
if (ArchiveAsset.class.isInstance(asset)) {
final Archive<?> webArchive = ArchiveAsset.class.cast(asset).getArchive();
if (WebArchive.class.isInstance(webArchive)) {
- /* TODO: libs
- final Map<ArchivePath, Node> libs = archive.getContent(new IncludeRegExpPaths("/WEB-INF/lib/.*\\.jar"));
- */
-
final Map<String, Object> altDD = new HashMap<>();
final Node beansXml = findBeansXml(webArchive, new ArrayList<AssetSource>(), WEB_INF, altDD);
final SWClassLoader webLoader = new SWClassLoader(WEB_INF_CLASSES, parent, webArchive);
closeables.add(webLoader);
+ final List<URL> webappAdditionalPaths = new LinkedList<URL>();
+ final List<AssetSource> webAppBeansXmlMerged = new ArrayList<>();
+ analyzeWebArchive(
+ webArchive, webappAdditionalPaths, webAppBeansXmlMerged,
+ webArchive.getContent(new IncludeRegExpPaths("/.*\\.jar")));
+
final FinderFactory.OpenEJBAnnotationFinder finder = new FinderFactory.OpenEJBAnnotationFinder(
- finderArchive(beansXml, webArchive, webLoader, Collections.<URL>emptyList()));
+ finderArchive(beansXml, webArchive, webLoader, webappAdditionalPaths));
final WebModule webModule = new WebModule(new WebApp(), contextRoot(webArchive.getName()), loader, "", appModule.getModuleId());
webModule.setUrls(Collections.<URL>emptyList());
@@ -326,6 +305,34 @@ public class OpenEJBArchiveProcessor {
return appModule;
}
+ private static void analyzeWebArchive(Archive<?> archive, List<URL> additionalPaths, List<AssetSource> beansXmlMerged, Map<ArchivePath, Node> content) {
+ for (final Map.Entry<ArchivePath, Node> node : content.entrySet()) {
+ final Asset asset = node.getValue().getAsset();
+ if (UrlAsset.class.isInstance(asset)) {
+ additionalPaths.add(get(URL.class, "url", asset));
+ } else if (FileAsset.class.isInstance(asset)) {
+ try {
+ additionalPaths.add(get(File.class, "file", asset).toURI().toURL());
+ } catch (final MalformedURLException e) {
+ LOGGER.log(Level.SEVERE, "can't add a library to the deployment", e);
+ }
+ } else if (ArchiveAsset.class.isInstance(asset)) {
+ final Archive<?> nestedArchive = ArchiveAsset.class.cast(asset).getArchive();
+ if (!isExcluded(nestedArchive.getName())) {
+ final Node bXmlNode = nestedArchive.get(META_INF + BEANS_XML);
+ if (bXmlNode != null) {
+ try {
+ beansXmlMerged.add(new AssetSource(bXmlNode.getAsset(), new URL("jar:file://!/WEB-INF/lib/" + nestedArchive.getName() + "!/META-INF/beans.xml")));
+ } catch (final MalformedURLException e) {
+ // shouldn't occur
+ }
+ }
+ archive.merge(nestedArchive);
+ }
+ }
+ }
+ }
+
private static Node findBeansXml(final Archive<?> archive, final List<AssetSource> beansXmlMerged, final String prefix, final Map<String, Object> altDD) {
Node beansXml = archive.get(prefix.concat(BEANS_XML));
if (beansXml == null && WEB_INF.equals(prefix)) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/54bc0765/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index f5f708b..af529dc 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -18,7 +18,7 @@
<suite name="CDI TCK" verbose="0">
<test name="CDI TCK">
<classes>
- <class name="org.jboss.cdi.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest"/>
+ <class name="org.jboss.cdi.tck.tests.alternative.selection.enterprise.EnterpriseSelectedAlternative02Test"/>
</classes>
</test>
</suite>