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/23 15:42:55 UTC

svn commit: r1525591 - /tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java

Author: rmannibucau
Date: Mon Sep 23 13:42:55 2013
New Revision: 1525591

URL: http://svn.apache.org/r1525591
Log:
allowing to configure a filter on Mvn

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=1525591&r1=1525590&r2=1525591&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 Mon Sep 23 13:42:55 2013
@@ -20,6 +20,7 @@ import org.apache.ziplock.IO;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ArchivePath;
 import org.jboss.shrinkwrap.api.Filter;
+import org.jboss.shrinkwrap.api.Filters;
 import org.jboss.shrinkwrap.api.GenericArchive;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
@@ -47,6 +48,7 @@ public final class Mvn {
         private String name = "test.war";
         private Map<File, String> additionalResources = new HashMap<File, String>();
         private ScopeType[] scopes = { ScopeType.COMPILE, ScopeType.RUNTIME };
+        private Filter<ArchivePath> filter = Filters.includeAll();
 
         public Builder scopes(final ScopeType... scopes) {
             this.scopes = scopes;
@@ -83,6 +85,11 @@ public final class Mvn {
             return this;
         }
 
+        public Builder filter(final Filter<ArchivePath> filter) {
+            this.filter = filter;
+            return this;
+        }
+
         public Builder additionalResource(final File folder, final String root) {
             additionalResources.put(folder, root);
             return this;
@@ -94,7 +101,11 @@ public final class Mvn {
             final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, name);
 
             if (basePackage != null) {
-                webArchive.addPackages(true, basePackage);
+                if (filter != null) {
+                    webArchive.addPackages(true, filter, basePackage);
+                } else {
+                    webArchive.addPackages(true, basePackage);
+                }
             }
             add(webArchive, classes, "/WEB-INF/classes/")
             .add(webArchive, resources, "/WEB-INF/classes/")
@@ -154,7 +165,7 @@ public final class Mvn {
                 return this;
             }
 
-            final KnownResourcesFilter filter = new KnownResourcesFilter(dir, root);
+            final KnownResourcesFilter filter = new KnownResourcesFilter(dir, root, this.filter);
             filter.update(
                 webArchive.merge(
                     ShrinkWrap.create(GenericArchive.class).as(ExplodedImporter.class)
@@ -190,9 +201,11 @@ public final class Mvn {
         private final File base;
         private final String prefix;
         private final Map<ArchivePath, Asset> paths = new HashMap<ArchivePath, Asset>();
+        private final Filter<ArchivePath> delegate;
 
-        public KnownResourcesFilter(final File base, final String prefix) {
+        public KnownResourcesFilter(final File base, final String prefix, final Filter<ArchivePath> filter) {
             this.base = base;
+            this.delegate = filter;
 
             if (prefix.startsWith("/")) {
                 this.prefix = prefix.substring(1);
@@ -203,6 +216,9 @@ public final class Mvn {
 
         @Override
         public boolean include(final ArchivePath archivePath) {
+            if (!delegate.include(archivePath)) {
+                return false;
+            }
             if (archivePath.get().contains("shiro.ini")) {
                 paths.put(archivePath, addArquillianServletInUrls(archivePath));
                 return false;