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 2013/09/26 15:51:57 UTC
svn commit: r1526491 -
/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java
Author: rmannibucau
Date: Thu Sep 26 13:51:56 2013
New Revision: 1526491
URL: http://svn.apache.org/r1526491
Log:
allowing to set the expected archice type in build to be able to continue to build it
Modified:
tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java
Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java?rev=1526491&r1=1526490&r2=1526491&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java (original)
+++ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java Thu Sep 26 13:51:56 2013
@@ -25,6 +25,9 @@ import org.jboss.shrinkwrap.api.GenericA
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.container.ClassContainer;
+import org.jboss.shrinkwrap.api.container.LibraryContainer;
+import org.jboss.shrinkwrap.api.container.WebContainer;
import org.jboss.shrinkwrap.api.importer.ExplodedImporter;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
@@ -96,32 +99,48 @@ public final class Mvn {
}
public Archive<?> build() {
+ return build(WebArchive.class);
+ }
+ public <T extends Archive<?>> T build(final Class<T> type) {
initDefaults();
- final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, name);
+ final T webArchive = ShrinkWrap.create(type, name);
if (basePackage != null) {
- if (filter != null) {
- webArchive.addPackages(true, filter, basePackage);
- } else {
- webArchive.addPackages(true, basePackage);
+ if (ClassContainer.class.isInstance(webArchive)) {
+ final ClassContainer<?> container = ClassContainer.class.cast(webArchive);
+ if (filter != null) {
+ container.addPackages(true, filter, basePackage);
+ } else {
+ container.addPackages(true, basePackage);
+ }
}
}
- add(webArchive, classes, "/WEB-INF/classes/")
- .add(webArchive, resources, "/WEB-INF/classes/")
+
+ final String root;
+ if (WebContainer.class.isInstance(webArchive)) {
+ root = "/WEB-INF/classes";
+ } else {
+ root = "/";
+ }
+
+ add(webArchive, classes, root)
+ .add(webArchive, resources, root)
.add(webArchive, webapp, "/");
for (final Map.Entry<File, String> additionalResource : additionalResources.entrySet()) {
add(webArchive, additionalResource.getKey(), additionalResource.getValue());
}
- try {
- final File[] deps = Maven.resolver().offline().loadPomFromFile(new File(basedir, "pom.xml"))
- .importDependencies(scopes).resolve().withTransitivity().asFile();
- if (deps.length > 0) {
- webArchive.addAsLibraries(deps);
+ if (LibraryContainer.class.isInstance(webArchive)) {
+ try {
+ final File[] deps = Maven.resolver().offline().loadPomFromFile(new File(basedir, "pom.xml"))
+ .importDependencies(scopes).resolve().withTransitivity().asFile();
+ if (deps.length > 0) {
+ LibraryContainer.class.cast(webArchive).addAsLibraries(deps);
+ }
+ } catch (final Exception e) {
+ // no-op: no deps
}
- } catch (final Exception e) {
- // no-op: no deps
}
return webArchive;
@@ -160,7 +179,7 @@ public final class Mvn {
}
}
- private Builder add(final WebArchive webArchive, final File dir, final String root) {
+ private Builder add(final Archive<?> webArchive, final File dir, final String root) {
if (dir == null || !dir.exists()) {
return this;
}