[jboss-dev-forums] [Design of JBoss ESB] - Subdeployments for AS 5

beve do-not-reply at jboss.com
Thu Aug 13 07:41:44 EDT 2009


Prior to AS 5 sub-deployments in an .esb archive could be located anywhere, in the root, in a subdirectory somewhere. 
This has changed with AS 5 and this post is meant to list the options that users have when upgrading.

This really only effects users that currently have sub-deployments in a sub-directory. For those that have sub-deployments in the root of the .esb archive nothing needs to be done.

We are now defining a GroupStructure in deployers/esb.deployers/META-INF/esb-deployers-jboss-beans.xml:

  | <bean name="GroupingStructure" class="org.jboss.soa.esb.listeners.deployers.mc.GroupingStructure">
  |     <property name="shortCircuitFilter">
  |         <inject bean="EsbFilter"/>
  |     </property>
  |     <property name="metaDataPaths">
  |          <array elementClass="java.lang.String">
  |             <value>META-INF</value>
  |             <value>.</value>
  |          </array>
  |     </property>
  |     <property name="libs">
  |         <set elementClass="java.lang.String">
  |             <value>.</value>
  |             <value>jars</value>
  |         </set>
  |     </property>
  |     <property name="libFilter">
  |         <inject bean="JarFilter"/>
  |     </property>
  |     <property name="groups">
  |         <set elementClass="java.lang.String">
  |             <value>.</value>
  |             <value>wars</value>
  |         </set>
  |     </property>
  |     <property name="groupFilter">
  |         <inject bean="WarFilter"/>
  |     </property>
  | </bean>
  | 
  | <bean name="EsbFilter" class="org.jboss.soa.esb.listeners.deployers.mc.util.VfsFileFilter">
  |     <constructor>
  |         <parameter>.esb</parameter>
  |     </constructor>
  | </bean>
  | 
  | <bean name="JarFilter" class="org.jboss.soa.esb.listeners.deployers.mc.util.VfsFileFilter">
  |     <constructor>
  |         <parameter>.jar</parameter>
  |     </constructor>
  | </bean>
  | 
  | <bean name="WarFilter" class="org.jboss.soa.esb.listeners.deployers.mc.util.VfsFileFilter">
  |     <constructor>
  |         <parameter>.war</parameter>
  |     </constructor>
  | </bean>
  | 

So by default we can have jars in either the root, or in a sub directory named 'jars'.
And we can have wars in either the root, or in a sub directory named 'wars'. 

In the cases where users want to have wars (or other types of deployments) in sub-directories that have different names. they have the following options:
1. Renaming their sub directory to 'wars'.
2. Adding their sub directory names to the 'groups' list above.
3. Add a META-INF/jboss-structure.xml to their .esb archive:
Code:
<?xml version="1.0" encoding="UTF-8"?>
  | <structure>
  |     <context>
  |         <path name=""/>
  |         <metaDataPath>
  |             <path name="META-INF"/>
  |             <path name="."/>
  |         </metaDataPath>
  |         <classpath>
  |             <path name=""/>
  |             <path name="." suffixes=".jar"/>
  |         </classpath>
  |     </context>
  |     <context>
  |         <path name="subdir/testwar.war"/>
  |         <metaDataPath>
  |             <path name="WEB-INF"/>
  |         </metaDataPath>
  |         <classpath>
  |             <path name="subdir/testwar.war/WEB-INF/classes"/>
  |         </classpath>
  |     </context>
  | </structure>
4. Last resort (because of the negative performance impact) activate the DirectoryStructure by uncommenting it in deployers/directory-deployer-jboss-beans.xml. It should be noted that this will effect all deployments in the server and I would think that any of the other options would be better. 

The jira for this: https://jira.jboss.org/jira/browse/JBESB-2655

/Daniel



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

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



More information about the jboss-dev-forums mailing list