Index: system/src/main/java/org/jboss/system/deployers/ExcludeArchiveMatcher.java =================================================================== --- system/src/main/java/org/jboss/system/deployers/ExcludeArchiveMatcher.java (revision 109825) +++ system/src/main/java/org/jboss/system/deployers/ExcludeArchiveMatcher.java (working copy) @@ -21,155 +21,55 @@ */ package org.jboss.system.deployers; -import java.util.HashMap; -import java.util.Map; +import java.util.Set; -import org.jboss.deployers.structure.spi.DeploymentContext; -import org.jboss.deployers.structure.spi.helpers.DefaultDeploymentContextComparator; +import org.jboss.deployers.vfs.spi.deployer.ArchiveMatcher; +import org.jboss.vfs.VirtualFile; /** - * Legacy deployment sorter + * Exclude non-archives based on suffix or prefix. * * @author ales.justin@jboss.org */ -public class LegacyDeploymentContextComparator extends DefaultDeploymentContextComparator +public class ExcludeArchiveMatcher implements ArchiveMatcher { - /** The instance */ - public static final LegacyDeploymentContextComparator INSTANCE = new LegacyDeploymentContextComparator(); - /** Legacy orders */ - private static Map legacyOrder; + private Set suffixes; + private Set prefixes; - static + public boolean isArchive(VirtualFile file) { - legacyOrder = new HashMap(); - legacyOrder.put(".deployer", 50); - legacyOrder.put("-deployer.xml", 50); - legacyOrder.put(".aop", 100); - legacyOrder.put("-aop.xml", 100); - legacyOrder.put(".sar", 150); - legacyOrder.put("-service.xml", 150); - legacyOrder.put(".beans", 200); - legacyOrder.put("-jboss-beans.xml", 200); - legacyOrder.put(".rar", 250); - legacyOrder.put("-ds.xml", 300); - legacyOrder.put(".har", 350); - legacyOrder.put(".jar", 400); - legacyOrder.put(".ejb3", 400); - legacyOrder.put(".par", 400); - legacyOrder.put(".war", 500); - legacyOrder.put(".wsr", 600); - legacyOrder.put(".ear", 650); - legacyOrder.put(".zip", 750); - legacyOrder.put(".bsh", 800); - legacyOrder.put(".last", 900); + return hasArchiveSuffix(file); } - private boolean useDefaults = true; - private Map suffixOrder; - private Map orderMap; - private int defaultOrder = 850; - - /** - * Get the instance. - * - * @return the instance - */ - public static LegacyDeploymentContextComparator getInstance() + public boolean hasArchiveSuffix(VirtualFile file) { - return INSTANCE; + return hasArchiveSuffix(file.getName()); } - public int compare(DeploymentContext fst, DeploymentContext snd) + public boolean hasArchiveSuffix(String fileName) { - int fstOrder = getContextOrder(fst); - int sndOrder = getContextOrder(snd); - int diff = fstOrder - sndOrder; - if (diff != 0) - return diff; - else - return super.compare(fst, snd); - } - - /** - * Get context's order. - * - * @param context the deployment context - * @return context's order, or default if no match - */ - protected int getContextOrder(DeploymentContext context) - { - String simpleName = context.getSimpleName(); - for (Map.Entry entry : getOrderMap().entrySet()) + if (suffixes != null) { - if (simpleName.endsWith(entry.getKey())) - return entry.getValue(); + for (String suffix : suffixes) + if (fileName.startsWith(suffix)) + return false; } - return defaultOrder; + if (prefixes != null) + { + for (String prefix : prefixes) + if (fileName.endsWith(prefix)) + return false; + } + return true; } - protected Map getOrderMap() + public void setSuffixes(Set suffixes) { - if (orderMap == null) - orderMap = createOrderMap(); - - return orderMap; + this.suffixes = suffixes; } - public void create() + public void setPrefixes(Set prefixes) { - // do nothing -- back compatibility purpose only + this.prefixes = prefixes; } - - /** - * Create order map. - * - * Legacy mappings first, - * then override it with custom suffix order. - * - * @return the new order map - */ - public Map createOrderMap() - { - Map map = new HashMap(); - if (useDefaults) - map.putAll(legacyOrder); - if (suffixOrder != null) - map.putAll(suffixOrder); - return map; - } - - /** - * Should we use defaults. - * - * @param useDefaults default flag - */ - public void setUseDefaults(boolean useDefaults) - { - this.useDefaults = useDefaults; - } - - /** - * Set suffix order map. - * - * @param suffixOrder the suffix order map - */ - public void setSuffixOrder(Map suffixOrder) - { - this.suffixOrder = suffixOrder; - } - - /** - * Set default order. - * - * @param defaultOrder the default order - */ - public void setDefaultOrder(int defaultOrder) - { - this.defaultOrder = defaultOrder; - } - - Object readResolve() - { - return INSTANCE; - } } \ No newline at end of file Index: server/src/etc/conf/all/bootstrap/deployers.xml =================================================================== --- server/src/etc/conf/all/bootstrap/deployers.xml (revision 109825) +++ server/src/etc/conf/all/bootstrap/deployers.xml (working copy) @@ -162,6 +162,19 @@ + + + + . + + + + + .bak + + + + @@ -276,7 +289,9 @@ - + + +