JBAS-4588; DeploymentSorter
alesj Nov 10, 2008 4:05 AMWhat exactly does this task want me to do? :-)
- https://jira.jboss.org/jira/browse/JBAS-4588
We currently have the following configuration:
- LegacyDeploymentContextComparator (LDCC):
static { legacyOrder = new HashMap<String, Integer>(); 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(".jar", 700); legacyOrder.put(".zip", 750); legacyOrder.put(".bsh", 800); legacyOrder.put(".last", 900); } private boolean useDefaults = true; private Map<String, Integer> suffixOrder; private int defaultOrder = 850; /** * Get the instance. * * @return the instance */ public static LegacyDeploymentContextComparator getInstance() { return INSTANCE; } public int compare(DeploymentContext fst, DeploymentContext snd) { 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<String, Integer> entry : suffixOrder.entrySet()) { if (simpleName.endsWith(entry.getKey())) return entry.getValue(); } return defaultOrder; }
- LDCC is then used in MainDeployer::comparator
- LDCC is used in EARStructure::comparatorClassName
- jboss-structure.xml/context can now take comparator attribute
What else do we need?