[jboss-dev-forums] [Design of POJO Server] - Testing Bootstrap Dependencies

bstansberry@jboss.com do-not-reply at jboss.com
Thu Sep 11 14:30:55 EDT 2008


Discussion related to https://jira.jboss.org/jira/browse/JBAS-5349, which I believe Ivo Studensky is going to address.


I was thinking a bit about issues with testing this kind of thing; take this for what it's worth.

A problem such a test would have to solve would be ensuring that the test deployments are deployed very early in the cycle, i.e. before anything else in deploy/.  Otherwise a missing dependency on something that just happens to be deployed earlier would go undetected.

To get the test deployment to deploy early, you need to understand how the MainDeployer orders deployments.  This is determined via the conf/deployers.xml file, the "topContextComparator" bean:


  | <!-- use legacy ordering -->
  |    <bean name="topContextComparator">
  |      <constructor factoryClass="org.jboss.system.deployers.LegacyDeploymentContextComparator" factoryMethod="getInstance"/>
  |    </bean>

The LegacyDeploymentContextComparator class is found in the AS's 'system' module.  This snippet shows how things are ordered:


  | /** Legacy orders */
  |    private static Map<String, Integer> legacyOrder;
  | 
  |    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);
  |    }

In case of a tie, deployments are ordered based on the string ordering of their simple name.

So, an A.sar would deploy early, but after any .aop or -aop.xml.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4175952#4175952

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4175952



More information about the jboss-dev-forums mailing list