[jboss-svn-commits] JBL Code SVN: r25905 - in labs/jbossesb/workspace/dbevenius/jbossas5/product: install and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 1 13:59:40 EDT 2009


Author: beve
Date: 2009-04-01 13:59:39 -0400 (Wed, 01 Apr 2009)
New Revision: 25905

Added:
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.xml
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/actionArtifactMap.properties
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives/exploded-esb-archive.esb/META-INF/deployment.xml
Modified:
   labs/jbossesb/workspace/dbevenius/jbossas5/product/install/build.xml
   labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml
   labs/jbossesb/workspace/dbevenius/jbossas5/product/ivy.xml
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/util/JBossDeployerUtil.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.xml
Log:
Updates. Still don't have the EBWS support working yet.


Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/install/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/install/build.xml	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/install/build.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -227,6 +227,16 @@
         </copy>
 		<copy todir="${deployers.dir}/esb.deployer/META-INF" file="${basedir}/esb-deployers-jboss-beans.xml" overwrite="true"/>
 		
+		<copy todir="${deployers.dir}/esb.deployer" overwrite="true">
+            <fileset dir="${org.jboss.esb.dist.lib}/jbossesb.sar">
+                <include name="actionArtifactMap.properties"/>
+                <include name="esb.juddi.xml"/>
+                <include name="jbossesb-properties.xml"/>
+                <include name="privateKeyStore"/>
+                <include name="publicKeyStore"/>
+            </fileset>
+		</copy>
+		
         <!-- jbossesb.sar -->
         <copy todir="${deploy.dir}/jbossesb.sar" includeemptydirs="false" overwrite="true">
             <fileset dir="${org.jboss.esb.dist.lib}/jbossesb.sar">
@@ -253,6 +263,11 @@
             	<exclude name="lib/xbean-2.2.0.jar"/>
             	<exclude name="lib/xstream-1.2.2.jar"/>
             	<exclude name="META-INF/jboss-service.xml"/>
+            	<exclude name="actionArtifactMap.properties"/>
+            	<exclude name="esb.juddi.xml"/>
+            	<exclude name="jbossesb-properties.xml"/>
+            	<exclude name="privateKeyStore"/>
+            	<exclude name="publicKeyStore"/>
             </fileset>
         </copy>
 		<copy tofile="${deploy.dir}/jbossesb.sar/META-INF/jboss-service.xml" file="${basedir}/jboss-service-jbossas5.xml" overwrite="true"/>

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -5,11 +5,14 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 	
     <!-- Will pickup and parse jboss-esb.xml configuration files from esb archives. -->
-	<bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
+	<bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser">
+      <property name="deploymentPrefix">jboss.esb:deployment=</property>
+      <property name="actionArtifactsFile">/actionArtifactMap.properties</property>
+    </bean>
 	
+	<bean name="EsbWebServiceDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWebServiceDeployer"/>
+	
 	<!-- Will create the BeanMetaData that describes a esb deployment -->
-    <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer">
-        <property name="serverTmpDir">${jboss.server.temp.dir}</property>
-    </bean>
+    <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/>
 
 </deployment>

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/ivy.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/ivy.xml	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/ivy.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -104,6 +104,7 @@
         <dependency org="org.jboss.man"	name="jboss-metatype" rev="2.0.0.GA"/>
 
         <dependency org="org.jboss.integration" name="jboss-classloading-spi" rev="5.0.3.GA"/>
+        <dependency org="org.jboss.integration" name="jboss-profileservice-spi" rev="5.0.3.GA"/>
 
         <dependency org="org.jboss" name="jboss-vfs" rev="2.1.0.GA"/>
         <dependency org="org.jboss" name="jboss-common-core" rev="2.2.11.GA"/>
@@ -111,6 +112,7 @@
         <dependency org="org.jboss"	name="jboss-reflect" rev="2.0.1.GA"/>
         <dependency org="org.jboss"	name="jbossxb" rev="2.0.0.GA"/>
 
+
 		<!-- Note that jboss-metadata is still in beta -->
         <dependency org="org.jboss"	name="jboss-metadata" rev="1.0.0.Beta6"/>
 
@@ -121,6 +123,7 @@
         <dependency org="org.jboss.jbossas"	name="jboss-as-mbeans" rev="5.0.1.GA"/>
         <dependency org="org.jboss.jbossas"	name="jboss-as-system" rev="5.0.1.GA"/>
         <dependency org="org.jboss.jbossas"	name="jboss-as-system-jmx" rev="5.0.1.GA"/>
+        <dependency org="org.jboss.jbossas"	name="jboss-as-webservices" rev="5.0.1.GA"/>
 
         <dependency org="org.jboss.logging" name="jboss-logging-spi" rev="2.0.5.GA"/>
         <dependency org="org.jboss.javaee" name="jboss-ejb-api" rev="3.0.0.GA"/>

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/util/JBossDeployerUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/util/JBossDeployerUtil.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/internal/soa/esb/util/JBossDeployerUtil.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -134,19 +134,19 @@
         return new File(esbDir, warFileName);
     }
 
-    public static File createWarFilesDir(final File tmpDir, String warFileDirName)
+    public static File createDir(final File parentDir, String dirName)
     {
-        final File esbWarFiles = new File(tmpDir, warFileDirName);
+        final File esbWarFiles = new File(parentDir, dirName);
         esbWarFiles.mkdirs();
         return esbWarFiles;
     }
 
-    public static File createWarFilesDir(final String tmpDirName, String warFileDirName)
+    public static File createWarFilesDir(final String parentDir, String dirName)
     {
-        AssertArgument.isNotNullAndNotEmpty(tmpDirName, "tmpDirName");
+        AssertArgument.isNotNullAndNotEmpty(parentDir, "parentDir");
 
-        final File tmpDir = new File(tmpDirName);
-        return createWarFilesDir(tmpDir, warFileDirName);
+        final File tmpDir = new File(parentDir);
+        return createDir(tmpDir, dirName);
     }
 
     public static String readEsbConfig(final InputStream in) throws DeploymentException
@@ -293,7 +293,7 @@
         final InputStream in = ClassUtil.getResourceAsStream(fileName, JBossDeployerUtil.class);
         if (in != null)
         {
-            log.debug("Loaded action artifact mapping") ;
+            log.debug("Loaded action artifact mapping from " + fileName);
             properties = new Properties();
             properties.load(in);
         }
@@ -302,7 +302,6 @@
             log.debug("No action artifact mapping") ;
         }
         return properties;
-
     }
     
     public static Set<ObjectName> getActionDependencies(final String deploymentName, final ModelAdapter model, final Properties actionArtifactProperties) throws DeploymentException

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -177,7 +177,7 @@
           tmpDir = config.getServerTempDeployDir();
       }
       
-      esbWarFiles = JBossDeployerUtil.createWarFilesDir(tmpDir, "esbwarfiles");
+      esbWarFiles = JBossDeployerUtil.createDir(tmpDir, "esbwarfiles");
       
       try
       {

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -21,7 +21,6 @@
 package org.jboss.soa.esb.listeners.deployers.mc;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -49,30 +48,23 @@
  * EsbConfigParser is a Microcontainer deployer that picks up jboss-esb.xml files, parses the content
  * and produces an {@link EsbMetaData} instance.
  * <p/>
+ * Other implementations could read/parse a configuration form another source, for example store
+ * the configurations in a database. As long as they produce the EsbMetaData they will be able to
+ * be deployed.
  * 
  * Sample configuration:
  * <pre>{@code
- *  <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
+ *  <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser">
+ *   <property name="deploymentPrefix">jboss.esb:deployment=</property>
+ *   <property name="actionArtifactsFile">/actionArtifactMap.properties</property>
+ *  </bean>
  * }</pre>
  * 
  * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
  */
 public class EsbConfigParser extends AbstractVFSParsingDeployer<EsbMetaData>
 {
-    private static final String PREFIX_CANONICAL_NAME = "jboss.esb:deployment=" ;
-    private static final String ESB_ARTIFACT_NAME = "jbossesb.esb" ;
-    
     /**
-     * Logger.
-     */
-    private Logger log = Logger.getLogger(EsbConfigParser.class);
-    
-    /**
-     * 
-     */
-    private Properties actionArtifactProperties;
-    
-    /**
      * The default suffix of JBossESB configuration files that should be picked up.
      */
     private static final String ESB_FILE_SUFFIX = "-esb.xml";
@@ -85,9 +77,29 @@
     /**
      * File filter for esb config files.
      */
-    private static EsbConfigFileFilter configFileFileter = new EsbConfigFileFilter();
+    private static EsbConfigFileFilter configFileFilter = new EsbConfigFileFilter();
+    
+    /**
+     * Default actions file name.
+     */
+    private String actionArtifactsFile = "/actionArtifactMap.properties";
+    
+    /**
+     * The read action properties.
+     */
+    private Properties actionArtifactProperties;
+    
+    /**
+     * Deployment prefix for esb deployments.
+     */
+    private String deploymentPrefix = "jboss.esb:deployment=";
 
     /**
+     * Logger.
+     */
+    private Logger log = Logger.getLogger(EsbConfigParser.class);
+
+    /**
      * No args constructor.
      */
     public EsbConfigParser()
@@ -103,34 +115,31 @@
     {
         final String esbConfigXml = readEsbConfigFile(file);
         final String archiveName = file.getPathName();
-        final String deploymentName = deploymentUnit.getSimpleName();
+        final String deploymentName = getDeploymentName(deploymentUnit);
+        final ModelAdapter model = JBossDeployerUtil.getJbossEsbModel(esbConfigXml);
         
         // Get dependencies from deployment.xml.
         final Set<ObjectName> dependencies = getDependenciesFromDeploymentXml(deploymentUnit);
         // Get implicit action dependencies.
-        final ModelAdapter model = JBossDeployerUtil.getJbossEsbModel(esbConfigXml);
         final Set<ObjectName> actionDependencies = getActionDependencies(deploymentName, model, actionArtifactProperties);
         // Add all dependencies to set.
         dependencies.addAll(actionDependencies);
         
-        EsbMetaData esbMetaData = new EsbMetaData(esbConfigXml, archiveName, deploymentName, dependencies);
+        final EsbMetaData esbMetaData = new EsbMetaData(esbConfigXml, archiveName, deploymentName, dependencies, model);
         log.info("Parsed ESB configuration'" + esbMetaData + "'");
-        return new EsbMetaData(esbConfigXml, archiveName, deploymentName, dependencies);
+        return esbMetaData;
     }
     
+    private String getDeploymentName(VFSDeploymentUnit deploymentUnit)
+    {
+        final String simpleName = deploymentUnit.getSimpleName();
+        return simpleName.substring(0, simpleName.indexOf(ESB_ARCHIVE_SUFFIX));
+    }
+
     public void create() throws Exception
     {
-        log.info("EsbDeployer create method called.");
-        final Properties artifactProperties = JBossDeployerUtil.getArtifactProperties("/actionArtifactMap.properties");
-        if (artifactProperties == null)
-        {
-            log.debug("No action artifact mapping");
-        } 
-        else
-        {
-            log.debug("Loaded action artifact mapping");
-            actionArtifactProperties = artifactProperties;
-        }
+        log.info("EsbDeployer created");
+        actionArtifactProperties = JBossDeployerUtil.getArtifactProperties(actionArtifactsFile);
     }
     
     /**
@@ -151,7 +160,7 @@
         List<VirtualFile> esbConfigFiles;
         try
         {
-            esbConfigFiles = file.getChildrenRecursively(configFileFileter);
+            esbConfigFiles = file.getChildrenRecursively(configFileFilter);
         }
         catch (final IOException e)
         {
@@ -177,47 +186,48 @@
     private Set<ObjectName> getDependenciesFromDeploymentXml(final VFSDeploymentUnit deploymentUnit) throws DeploymentException
     {
         final Set<ObjectName> dependencies = new HashSet<ObjectName>();
-        // Find dependencies specified in deployment.xml
-        InputStream in = deploymentUnit.getClassLoader().getResourceAsStream("META-INF/deployment.xml");
-        if (in != null)
+        final VirtualFile deploymentFile = deploymentUnit.getFile("META-INF/deployment.xml");
+        try
         {
-            try
+            if (deploymentFile.exists())
             {
-                XmlFileLoader xfl = new XmlFileLoader();
-                Element jboss = xfl.getDocument(in, "META-INF/deployment.xml").getDocumentElement();
-                // Check for a ejb level class loading config
-                @SuppressWarnings("unchecked")
-                Iterator depends = MetaData.getChildrenByTagName(jboss, "depends");
-                if (depends != null)
+                try
                 {
-                    while (depends.hasNext())
+                    XmlFileLoader xfl = new XmlFileLoader();
+                    Element jboss = xfl.getDocument(deploymentFile.openStream(), "META-INF/deployment.xml").getDocumentElement();
+                    // Check for a ejb level class loading config
+                    @SuppressWarnings("unchecked")
+                    Iterator depends = MetaData.getChildrenByTagName(jboss, "depends");
+                    if (depends != null)
                     {
-                        Element depend = (Element) depends.next();
-                        dependencies.add(new ObjectName(MetaData.getElementContent(depend)));
+                        while (depends.hasNext())
+                        {
+                            Element depend = (Element) depends.next();
+                            dependencies.add(new ObjectName(MetaData.getElementContent(depend)));
+                        }
                     }
-                }
-                @SuppressWarnings("unchecked")
-                Iterator esbDepends = MetaData.getChildrenByTagName(jboss, "esb-depends");
-                if ((esbDepends != null) && esbDepends.hasNext())
-                {
-                    Element depend = (Element) esbDepends.next();
-                    final String deployable = MetaData.getElementContent(depend);
-                    if (deployable.endsWith(".war"))
+                    @SuppressWarnings("unchecked")
+                    Iterator esbDepends = MetaData.getChildrenByTagName(jboss, "esb-depends");
+                    if ((esbDepends != null) && esbDepends.hasNext())
                     {
-                        String objectName = "jboss.web.deployment:war=/" + deployable.substring(0, deployable.indexOf('.'));
-                        log.info("war objectName : " + objectName);
-                        dependencies.add(new ObjectName(objectName));
+                        Element depend = (Element) esbDepends.next();
+                        final String deployable = MetaData.getElementContent(depend);
+                        if (deployable.endsWith(".war"))
+                        {
+                            String objectName = "jboss.web.deployment:war=/" + deployable.substring(0, deployable.indexOf('.'));
+                            dependencies.add(new ObjectName(objectName));
+                        }
                     }
                 }
+                catch (final MalformedObjectNameException e)
+                {
+                    throw new org.jboss.deployment.DeploymentException(e.getMessage(), e);
+                } 
             }
-            catch (final MalformedObjectNameException e)
-            {
-                throw new org.jboss.deployment.DeploymentException(e.getMessage(), e);
-            } 
-            finally
-            {
-                try { in.close(); }  catch (IOException ignore) { }
-            }
+        } 
+        catch (final IOException e)
+        {
+            throw new DeploymentException(e.getMessage(), e);
         }
         return dependencies;
     }
@@ -244,7 +254,6 @@
         }
         
         final Set<String> artifacts = new HashSet<String>() ;
-        artifacts.add(ESB_ARTIFACT_NAME) ;
     
         final Set<String> actionClasses = model.getActions() ;
           
@@ -265,7 +274,7 @@
         {
             if (!deploymentName.equals(artifact))
             {
-                final String canonicalName = PREFIX_CANONICAL_NAME + artifact ;
+                final String canonicalName = deploymentPrefix + artifact ;
                 try
                 {
                     ObjectName on = ObjectNameConverter.convert(canonicalName);
@@ -279,6 +288,16 @@
         }
         return deps;
     }
+    
+    public void setActionArtifactsFile(String actionArtifactsFile)
+    {
+        this.actionArtifactsFile = actionArtifactsFile;
+    }
+    
+    public void setDeploymentPrefix(String deploymentPrefix)
+    {
+        this.deploymentPrefix = deploymentPrefix;
+    }
 
     /**
      * Filter for filtering out ESB configuration files.

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -20,11 +20,8 @@
  */
 package org.jboss.soa.esb.listeners.deployers.mc;
 
-import java.io.File;
 import java.io.IOException;
-import java.net.URL;
 import java.util.ArrayList;
-import java.util.List;
 import java.util.Set;
 
 import javax.management.ObjectName;
@@ -34,15 +31,10 @@
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.deployment.DeploymentException;
 import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
-import org.jboss.internal.soa.esb.util.JBossDeployerUtil;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.WebMetaData;
-import org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment;
-import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
 
 /**
  * EsbRuntimeDeployer takes care of the deployment of an {@link BeanMetaData}
@@ -54,17 +46,15 @@
  * 
  * Example configuration:
  * 
- * <pre>
- * {@code
+ * <pre>{@code
  * <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer">
  *  <property name="serverTmpDir">${jboss.server.temp.dir}</property>
  * </bean>
- * }
- * </pre>
+ * }</pre>
  * 
  * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
  */
-public class EsbDeployer extends AbstractSimpleRealDeployer<EsbMetaData>
+public class EsbDeployer extends AbstractSimpleVFSRealDeployer<EsbMetaData>
 {
     /**
      * Logger.
@@ -75,30 +65,16 @@
      * Prefix used for the BeanMetaData and for the managenment bean name.
      */
     private static final String BEAN_PREFIX = "jboss.esb";
-
+    
     /**
-     * A temp directory where esb war files will be created. Will be set by MC
-     * and must be set as a property in -beans.xml.
-     */
-    private String tmpDir;
-
-    /**
-     * Directory which will act as a staging area for EBWS webapps.
-     */
-    private File esbWarFiles;
-
-    /**
      * No args constructor.
      */
     public EsbDeployer()
     {
         super(EsbMetaData.class);
-
         // Tell the MicroContainer that we are producing BeanMetaData.
         setOutput(BeanMetaData.class);
-        // We might also create WebMetaData if we are exposing a Service as a WS.
-        setOutput(JBossWebMetaData.class);
-        // Will be using classloaders.
+        // Need access to classloaders
         setStage(DeploymentStages.POST_CLASSLOADER);
     }
 
@@ -114,7 +90,7 @@
      * @param esbMetaData The ESB MetaData that is associated with the deployment unit.
      */
     @Override
-    public final void deploy(final DeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws org.jboss.deployers.spi.DeploymentException
+    public final void deploy(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws org.jboss.deployers.spi.DeploymentException
     {
         try
         {
@@ -132,24 +108,8 @@
         }
     }
     
-    @Override
-    public final void undeploy(final DeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) 
-    {
-        final String deploymentName = esbMetaData.getDeploymentName() ;
-        final File warFile = JBossDeployerUtil.getESBWarFile(deploymentName, deploymentUnit.getSimpleName(), false, esbWarFiles) ;
-        if (warFile != null)
-        {
-            // Delete the staging directory for this deployment.
-            warFile.delete();
-            
-            // If the parent directory is empty, delete it.
-            warFile.getParentFile().delete() ;
-        }
-    }
-    
     /**
      * Creates a {@link BeanMetaData} that describes the
-     * {@link JBoss4ESBDeployment} class.
      * 
      * @param deploymentUnit The deployment unit to deploy.
      * @param esbMetaData The ESB MetaData that is associated with the deployment unit.
@@ -158,13 +118,13 @@
      * @throws IOException
      * @throws DeploymentException
      */
-    private BeanMetaData createBeanMetaData(final DeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws DeploymentException, IOException
+    private BeanMetaData createBeanMetaData(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws DeploymentException, IOException
     {
         BeanMetaDataBuilder bmdBuilder = BeanMetaDataBuilder.createBuilder(BEAN_PREFIX + "." + deploymentUnit.getName(), EsbDeployment.class.getName());
         // Setup the first constructor argument (esb config xml).
         bmdBuilder.addConstructorParameter(String.class.getName(), esbMetaData.getEsbConfigXml());
         // Setup the second constructor argument (esb archive name).
-        bmdBuilder.addConstructorParameter(String.class.getName(), esbMetaData.getArchiveName());
+        bmdBuilder.addConstructorParameter(String.class.getName(), esbMetaData.getDeploymentName());
         // Setup the third constructor argument (the name of the mbean).
         final String mbeanName = BEAN_PREFIX + ":deployment=" + deploymentUnit.getSimpleName();
         bmdBuilder.addConstructorParameter(String.class.getName(), mbeanName);
@@ -175,68 +135,31 @@
         bmdBuilder.addDependency(BEAN_PREFIX + ":service=ESBRegistry");
         bmdBuilder.addDependency(BEAN_PREFIX + ":service=JuddiRMI");
 
-        // Add all depenencies parsed by the the previous deployers.
+        // Add the dependencies for this deployment.
         Set<ObjectName> dependencies = esbMetaData.getDependencies();
         for (ObjectName objectName : dependencies)
         {
-            bmdBuilder.addDependency(objectName.toString());
+            // The dependencies are added as demands. If we add them as dependencies
+            // they will get undeployed which this unit is undeployed.
+            bmdBuilder.addDemand(objectName.toString());
         }
 
-        // create webservice WAR
-        final ClassLoader origCL = Thread.currentThread().getContextClassLoader();
-        final List<ContractReferencePublisher> publishers = new ArrayList<ContractReferencePublisher>();
-        final File warFile;
-        try
+        if (esbMetaData.getPublishers().size() > 0)
         {
-            Thread.currentThread().setContextClassLoader(deploymentUnit.getClassLoader());
-            final ModelAdapter model = JBossDeployerUtil.getJbossEsbModel(esbMetaData.getEsbConfigXml());
-            warFile = JBossDeployerUtil.createWebserviceWars(esbWarFiles, esbMetaData.getDeploymentName(), model, esbMetaData.getArchiveName(), publishers);
-        } 
-        finally
-        {
-            Thread.currentThread().setContextClassLoader(origCL);
-        }
-        
-        if (warFile != null)
-        {
             // set publishers on the deployment instance, or rather tell MC to do this for us.
             AbstractCollectionMetaData collectionMetaData = new AbstractCollectionMetaData();
-            collectionMetaData.setType(List.class.getName());
+            collectionMetaData.setType(ArrayList.class.getName());
             collectionMetaData.setElementType(ContractReferencePublisher.class.getName());
-            collectionMetaData.setValue(publishers);
+            collectionMetaData.setValue(esbMetaData.getPublishers());
             bmdBuilder.addPropertyMetaData("publishers", collectionMetaData);
-            
-            //TODO: Deploy the war. Don't know how to do this yet.
-            JBossWebMetaData webMetaData = new JBossWebMetaData();
-            webMetaData.setContextRoot("/test");
-            deploymentUnit.addAttachment(JBossWebMetaData.class, webMetaData);
-            
         }
         
         return bmdBuilder.getBeanMetaData();
     }
-
-    /**
-     * Specifies a temp directory where ESBWS web applications will be created.
-     * 
-     * @param tmpDir
-     *            A tmp directory that cat be used for staging web applications.
-     */
-    public void setServerTmpDir(final String tmpDir)
-    {
-        this.tmpDir = tmpDir;
-    }
-
+    
     public void create() throws Exception
     {
-        log.info("EsbDeployer create method called.");
-        esbWarFiles = JBossDeployerUtil.createWarFilesDir(tmpDir, "esbwarfiles");
+        log.info("EsbDeployer created");
     }
-
-    public void destroy() throws Exception
-    {
-        log.info("EsbDeployer destroy method called.");
-    }
-    
 }
         
\ No newline at end of file

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -101,13 +101,12 @@
 
     public void create()
     {
-        log.info("Creating ESB Deployment Service.");
         LifecycleResourceManager.getSingleton().associateDeployment(deploymentName);
     }
 
     public void start() throws Exception
     {
-        log.info("Starting EBS Deployment Service.");
+        log.info("Starting EBS Deployment '" + deploymentName + "'");
         if (controller == null)
         {
             controller = Configuration.create(jbossEsbXml, new ObjectName(mbeanName), publishers);
@@ -117,15 +116,14 @@
 
     public void stop() throws Exception
     {
-        log.info("Stopping ESB Deployment Service.");
+        log.info("Stopping EBS Deployment '" + deploymentName + "'");
         ServicePublisher.removeServicePublishers(controller);
         controller.stop();
-        log.info("Stopped ESB Deployment Service.");
     }
 
     public void destroy() throws Exception
     {
-        log.info("Destroying ESB Deployment Service.");
+        log.info("Destroying ESB Deployment '" + deploymentName + "'");
         LifecycleResourceManager.getSingleton().disassociateDeployment(deploymentName);
         LifecycleResourceManager.getSingleton().destroyResources();
     }

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -21,11 +21,16 @@
 package org.jboss.soa.esb.listeners.deployers.mc;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 import javax.management.ObjectName;
 
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
+
 /**
  * Metadata for an ESB deployment.
  * <p/>
@@ -53,6 +58,11 @@
     /** The deployment name */
     private final String deploymentName;
     
+    /** The adapter for querying the model */
+    private ModelAdapter model;
+    
+    private List<ContractReferencePublisher> publishers = new ArrayList<ContractReferencePublisher>();
+    
     /**
      * Creates a EsbMetaData with the jboss-esb.xml as a VirtualFile and
      * the name of the .esb archive.
@@ -61,12 +71,13 @@
      * @param archiveName       The name of the .esb archive from which this deployment comes from.
      * @param dependencies      Dependencies of this deployment. This might be object names or simply bean names.
      */
-    public EsbMetaData(final String esbConfigXml, final String archiveName, final String deploymentName, final Set<ObjectName> dependencies)
+    public EsbMetaData(final String esbConfigXml, final String archiveName, final String deploymentName, final Set<ObjectName> dependencies, final ModelAdapter model)
     {
         this.esbConfigXml = esbConfigXml;
         this.archiveName = archiveName;
+        this.deploymentName = deploymentName;
         this.dependencies = dependencies;
-        this.deploymentName = deploymentName;
+        this.model = model;
     }
 
     /**
@@ -93,10 +104,23 @@
     {
         return deploymentName;
     }
+    
+    public ModelAdapter getModel()
+    { 
+        return model;
+    }
+    
+    public void setPublishers(final List<ContractReferencePublisher> publishers)
+    {
+        this.publishers = publishers;
+    }
+    
+    public List<ContractReferencePublisher> getPublishers()
+    {
+        return publishers;
+    }
 
     /**
-     * toString.
-     *
      * @return String   String representation of this metadata.
      */
     @Override

Added: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -0,0 +1,192 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ * 
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ * 
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.deployers.mc;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.vfs.plugins.classloader.HostNameCreator;
+import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.internal.soa.esb.util.JBossDeployerUtil;
+import org.jboss.internal.soa.esb.webservice.ESBContractGenerator;
+import org.jboss.internal.soa.esb.webservice.ESBResponseFilter;
+import org.jboss.internal.soa.esb.webservice.ESBServiceContractPublisher;
+import org.jboss.internal.soa.esb.webservice.ESBServiceEndpointInfo;
+import org.jboss.internal.soa.esb.webservice.JAXWSProviderClassGenerator;
+import org.jboss.internal.soa.esb.webservice.WebServicePublishException;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossServletsMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
+import org.jboss.metadata.web.spec.FiltersMetaData;
+import org.jboss.metadata.web.spec.ServletMappingMetaData;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.util.id.GUID;
+import org.jboss.virtual.MemoryFileFactory;
+import org.jboss.virtual.VirtualFile;
+import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
+
+/**
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class EsbWebServiceDeployer extends AbstractSimpleVFSRealDeployer<EsbMetaData>
+{
+    /** Logger */
+    private Logger log = Logger.getLogger(EsbWebServiceDeployer.class);
+    
+    private HostNameCreator hostNameCreator;
+
+    /**
+     * No-args constructor.
+     * 
+     * Sets the deployment stage to POST_CLASSLOADER and set the output of 
+     * this deployer to {@link JSEArchiveMetaData}.
+     */
+    public EsbWebServiceDeployer()
+    {
+        super(EsbMetaData.class);
+        setStage(DeploymentStages.POST_CLASSLOADER);
+        setOutput(JSEArchiveMetaData.class);
+        setOutput(EsbMetaData.class);
+    }
+    protected String createHost(VFSDeploymentUnit unit)
+    {
+        return (hostNameCreator != null) ? hostNameCreator.createHostName(unit) : GUID.asString();
+    }
+
+    @Override
+    public void deploy(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws DeploymentException
+    {
+        final List<WebserviceInfo> endpointServices = esbMetaData.getModel().getWebserviceServices();
+        if (endpointServices != null)
+        {
+            if (endpointServices.size() > 0)
+            {
+                log.info("Deploying webservices for : " + esbMetaData);
+                final JBossWebMetaData webMetaData = new JBossWebMetaData();
+                final JBossServletsMetaData servlets = new JBossServletsMetaData();
+                final List<ServletMappingMetaData> servletMappings = new ArrayList<ServletMappingMetaData>();
+                final FiltersMetaData filters = new FiltersMetaData();
+                final List<ContractReferencePublisher> publishers = new ArrayList<ContractReferencePublisher>() ;
+                
+                try
+                {
+                    // Used to dynamically add inmemory files to the deployment.
+                    URL dynamicClassRoot = new URL("vfsmemory", GUID.asString(), "");
+                    VirtualFile root = MemoryFileFactory.createRoot(dynamicClassRoot).getRoot();
+                    
+                    final JAXWSProviderClassGenerator generator = new JAXWSProviderClassGenerator(deploymentUnit.getClassLoader());
+                    for (WebserviceInfo webserviceInfo : endpointServices)
+                    {
+                        final ESBServiceEndpointInfo serviceInfo = new ESBServiceEndpointInfo(webserviceInfo);
+                        final Service service = webserviceInfo.getService();
+                        final String handlers = JBossDeployerUtil.getHandlers(serviceInfo);
+                        final boolean includeHandlers = (handlers != null);
+                        if (includeHandlers)
+                        {
+                            final String wsHandlerName = "/WEB-INF/classes/" + serviceInfo.getPackageName().replace('.', '/') + "/esb-jaxws-handlers.xml";
+                            VirtualFile jaxwsHandlers = MemoryFileFactory.putFile(new URL(dynamicClassRoot + wsHandlerName), handlers.getBytes());
+                            deploymentUnit.prependClassPath(jaxwsHandlers);
+                        }
+                        
+                        if (serviceInfo.isOneWay())
+                        {
+                            filters.add(createFilter(serviceInfo));
+                        }
+                        
+                        // Generate the servlet class bytes
+                        final byte[] servletClass = generator.generate(service.getCategory(), service.getName(), serviceInfo, includeHandlers);
+                        // Add the file to the in memory file system
+                        String servletClassName = "/WEB-INF/classes/" + serviceInfo.getClassName().replace('.', '/') + ".class";
+                        VirtualFile servletClassFile = MemoryFileFactory.putFile(new URL(dynamicClassRoot + servletClassName), servletClass);
+                        deploymentUnit.prependClassPath(servletClassFile);
+                        
+                        servlets.add(createServlets(service, serviceInfo, generator, includeHandlers));
+                        servletMappings.add(createServletMapping(serviceInfo));
+                        
+                        final String wsdl = ESBContractGenerator.generateWSDL(webserviceInfo, serviceInfo);
+                        VirtualFile wsdlFile = MemoryFileFactory.putFile(new URL(dynamicClassRoot + "/" + serviceInfo.getWSDLFileName()), wsdl.getBytes());
+                        deploymentUnit.prependClassPath(wsdlFile);
+                        
+                        final ContractReferencePublisher publisher = new ESBServiceContractPublisher(service, webserviceInfo.getDescription(), serviceInfo.getServletName());
+                        publishers.add(publisher);
+                    }
+                }
+                catch (final Exception e)
+                {
+                    throw new DeploymentException("Failed to create webservice artifact", e);
+                }
+                
+                webMetaData.setServlets(servlets);
+                webMetaData.setServletMappings(servletMappings);
+                webMetaData.setFilters(filters);
+                
+                esbMetaData.setPublishers(publishers);
+                
+                deploymentUnit.addAttachment(JBossWebMetaData.class, webMetaData);
+            }
+        }
+    }
+
+    private ServletMappingMetaData createServletMapping(ESBServiceEndpointInfo serviceInfo)
+    {
+        ServletMappingMetaData servletMapping = new ServletMappingMetaData();
+        servletMapping.setServletName(serviceInfo.getServletName());
+        servletMapping.setUrlPatterns(Arrays.asList(new String[] { serviceInfo.getServletPath()}));
+        return servletMapping;
+    }
+
+    private JBossServletMetaData createServlets(final Service service, final ESBServiceEndpointInfo serviceInfo, final JAXWSProviderClassGenerator generator, final boolean includeHandlers) throws WebServicePublishException
+    {
+        final JBossServletMetaData servlet = new JBossServletMetaData();
+        servlet.setServletName(serviceInfo.getServletName());
+        servlet.setServletClass(serviceInfo.getClassName());
+        servlet.setLoadOnStartup(1);
+        return servlet;
+    }
+
+    private FilterMetaData createFilter(ESBServiceEndpointInfo serviceInfo)
+    {
+        // Filter
+        final FilterMetaData filter = new FilterMetaData();
+        filter.setFilterName(serviceInfo.getServletName() + "_Filter");
+        filter.setFilterClass(ESBResponseFilter.class.getName());
+                            
+        // Set up the initparam 'OneWay'
+        final ParamValueMetaData oneWayInitParam = new ParamValueMetaData();
+        oneWayInitParam.setParamName("OneWay");
+        oneWayInitParam.setParamValue("true");
+        filter.setInitParam(Arrays.asList(new ParamValueMetaData[] {oneWayInitParam}));
+        return filter;
+    }
+
+}

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -51,6 +51,7 @@
         assertEquals("exploded-esb-archive.esb", esbMetaData.getArchiveName());
         assertEquals("exploded-esb-archive", esbMetaData.getDeploymentName());
         Set<ObjectName> deps = esbMetaData.getDependencies();
+        assertEquals(3, deps.size());
         assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb")));
         assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw")));
         assertTrue(deps.contains(new ObjectName("jboss.web.deployment:war=/test2")));

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.xml	2009-04-01 15:37:24 UTC (rev 25904)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -4,7 +4,10 @@
             xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
             xmlns="urn:jboss:bean-deployer:2.0">
 
-   <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
+   <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser">
+      <property name="deploymentPrefix">jboss.esb:deployment=</property>
+      <property name="actionArtifactsFile">/org/jboss/soa/esb/listeners/deployers/mc/actionArtifactMap.properties</property>
+   </bean>
    
    <!-- bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/-->
    

Added: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java	2009-04-01 17:59:39 UTC (rev 25905)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ * 
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ * 
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.deployers.mc;
+
+import java.net.URL;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.test.kernel.junit.MicrocontainerTest;
+import org.jboss.util.id.GUID;
+import org.jboss.virtual.MemoryFileFactory;
+import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
+
+/**
+ * Unit tests for {@link EsbDeployer}.
+ * <p/>
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class EsbDeployerUnitTest extends MicrocontainerTest
+{
+    private URL dir = getClass().getResource("/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives");
+    
+    private EsbDeployer esbDeployer = new EsbDeployer();
+    
+    public EsbDeployerUnitTest(String name)
+    {
+        super(name);
+    }
+    
+    public void testExplodedEsbArchive() throws Throwable
+    {
+        final String archiveName = "exploded-esb-archive.esb";
+        EsbMetaData esbMetaData = TestUtil.getEsbMetaData(new EsbConfigParser(), dir, archiveName);
+        VFSDeploymentUnit deploymentUnit = TestUtil.getDeploymentUnit(dir, archiveName);
+        
+        esbDeployer.deploy(deploymentUnit, esbMetaData);
+        Object attachment = deploymentUnit.getAttachment(BeanMetaData.class.getName() + "_ESB");
+        assertTrue(attachment instanceof BeanMetaData);
+    }
+    
+}

Added: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+            xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
+   
+   <!-- bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/-->
+   
+   <bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
+      <property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
+      <property name="deployers"><inject bean="Deployers"/></property>
+   </bean>
+
+   <bean name="StructuralDeployers" class="org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl">
+      <property name="structureBuilder">
+         <bean name="StructureBuilder" class="org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder"/>
+      </property>
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+   </bean>
+
+   <bean name="Deployers" class="org.jboss.deployers.plugins.deployers.DeployersImpl">
+      <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+   </bean>
+   
+   
+</deployment>

Added: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/actionArtifactMap.properties
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/actionArtifactMap.properties	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/actionArtifactMap.properties	2009-04-01 17:59:39 UTC (rev 25905)
@@ -0,0 +1,54 @@
+#
+# The following actions are included in jbossesb.sar and require
+# no additional dependencies
+#
+# org.jboss.soa.esb.actions.converters.XStreamToObject
+# org.jboss.soa.esb.actions.routing.JMSRouter
+# org.jboss.soa.esb.actions.Aggregator
+# org.jboss.soa.esb.actions.converters.ByteArrayToString
+# org.jboss.soa.esb.actions.routing.EchoRouter
+# org.jboss.soa.esb.actions.naming.FileNameGeneratorAction
+# org.jboss.soa.esb.actions.routing.HttpRouter
+# org.jboss.soa.esb.actions.converters.ObjectInvoke
+# org.jboss.soa.esb.actions.converters.ObjectToCSVString
+# org.jboss.soa.esb.actions.converters.ObjectToXStream
+# org.jboss.soa.esb.actions.StaticWiretap
+# org.jboss.soa.esb.actions.StaticRouter
+# org.jboss.soa.esb.actions.StoreMessageToFile
+# org.jboss.soa.esb.actions.templating.StringTemplateProcessor
+# org.jboss.soa.esb.actions.SystemPrintln
+# org.jboss.soa.esb.actions.Notifier
+# org.jboss.soa.esb.listeners.message.BeanConfigActionProcessor
+# org.jboss.soa.esb.actions.scripting.GroovyActionProcessor
+#
+# The following actions are included in jbossesb.esb and require
+# no additional dependencies
+#
+# org.jboss.soa.esb.actions.MessagePersister
+# org.jboss.soa.esb.actions.MessageRedeliverer
+# org.jboss.soa.esb.monitoring.client.DataCollectorAction
+# org.jboss.soa.esb.monitoring.client.InvokerAction
+# org.jboss.soa.esb.monitoring.client.OperationsCollectorAction
+
+# jbrules.esb actions
+org.jboss.soa.esb.actions.ContentBasedWiretap=jbrules.esb
+org.jboss.soa.esb.actions.ContentBasedRouter=jbrules.esb
+org.jboss.soa.esb.actions.BusinessRulesProcessor=jbrules.esb
+org.jboss.soa.esb.actions.MessageFilter=jbrules.esb
+
+# soap.esb actions
+org.jboss.soa.esb.actions.soap.SOAPClient=soap.esb
+org.jboss.soa.esb.actions.soap.SOAPProcessor=soap.esb
+
+# jbpm.esb actions
+org.jboss.soa.esb.services.jbpm.actions.BpmProcessor=jbpm.esb
+org.jboss.soa.esb.services.jbpm.actions.CommandInterpreter=jbpm.esb
+
+# smooks.esb actions
+org.jboss.soa.esb.actions.converters.SmooksTransformer=smooks.esb
+org.jboss.soa.esb.actions.smooks.SmooksAction=smooks.esb
+org.jboss.soa.esb.smooks.SmooksAction=smooks.esb
+
+# management.esb actions
+org.jboss.soa.esb.monitoring.server.DataFilerAction=management.esb
+org.jboss.soa.esb.monitoring.server.FilerAction=management.esb

Added: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives/exploded-esb-archive.esb/META-INF/deployment.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives/exploded-esb-archive.esb/META-INF/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives/exploded-esb-archive.esb/META-INF/deployment.xml	2009-04-01 17:59:39 UTC (rev 25905)
@@ -0,0 +1,5 @@
+<jbossesb-deployment>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw</depends>
+  <esb-depends>test2.war</esb-depends>
+</jbossesb-deployment>




More information about the jboss-svn-commits mailing list