[jboss-svn-commits] JBL Code SVN: r26532 - in labs/jbossesb/workspace/dbevenius/jbossas5/product: rosetta/src/org/jboss/soa/esb/listeners/deployers/mc and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 14 06:50:35 EDT 2009
Author: beve
Date: 2009-05-14 06:50:35 -0400 (Thu, 14 May 2009)
New Revision: 26532
Modified:
labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml
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/overview.html
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
Log:
Updated the overview.html. Made EsbDeployer more configurable.
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-05-14 10:33:44 UTC (rev 26531)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/install/esb-deployers-jboss-beans.xml 2009-05-14 10:50:35 UTC (rev 26532)
@@ -1,20 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- JBoss ESB + JBossAS5 integration -->
+<!-- JBoss ESB 4.x + JBossAS5 integration -->
<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">
- <property name="esbDeploymentPrefix">jboss.esb:deployment=</property>
+ <property name="esbDeploymentPrefix">jboss.esb:deployment=</property>
+ <property name="warDeploymentPrefix">jboss.web.deployment:war=</property>
<property name="actionArtifactsFile">/actionArtifactMap.properties</property>
</bean>
<bean name="EsbWebServiceDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWebServiceDeployer"/>
<bean name="EsbWsdlDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWsdlDeployer"/>
-
- <!-- Will create the BeanMetaData that describes a esb deployment -->
- <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/>
+ <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer">
+ <property name="esbBeanPrefix">jboss.esb</property>
+ <property name="defaultDependencies">
+ <list elementClass="java.lang.String">
+ <value>jboss.esb:service=ESBRegistry</value>
+ <value>jboss.esb:service=JuddiRMI</value>
+ </list>
+ </property>
+ </bean>
+
</deployment>
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-05-14 10:33:44 UTC (rev 26531)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java 2009-05-14 10:50:35 UTC (rev 26532)
@@ -21,6 +21,9 @@
package org.jboss.soa.esb.listeners.deployers.mc;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Set;
import javax.management.ObjectName;
@@ -35,8 +38,7 @@
import org.jboss.deployment.DeploymentException;
/**
- * EsbDeployer takes care of the deployment of an {@link BeanMetaData}
- * instance.
+ * EsbDeployer takes care of the deployment of an {@link EsbDeployment}.
* <p/>
*
* This deployer actually only creates a BeanMetaData object describing a
@@ -46,7 +48,15 @@
* Example configuration:
*
* <pre>{@code
- * <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/>
+ * <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer">
+ * <property name="esbBeanPrefix">jboss.esb</property>
+ * <property name="defaultDependencies">
+ * <list elementClass="java.lang.String">
+ * <value>jboss.esb:service=ESBRegistry</value>
+ * <value>jboss.esb:service=JuddiRMI</value>
+ * </list>
+ * </property>
+ * </bean>
* }</pre>
*
* @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
@@ -57,13 +67,18 @@
* Logger.
*/
private Logger log = Logger.getLogger(EsbDeployer.class);
-
+
/**
* Prefix used for the BeanMetaData and for the managenment bean name.
*/
- private static final String BEAN_PREFIX = "jboss.esb";
+ private String esbBeanPrefix = "jboss.esb";
/**
+ * Default dependencies that will be added to all {@link EsbDeployment}s.
+ */
+ private List<String> defaultDeps = new ArrayList<String>();
+
+ /**
* No args constructor.
*/
public EsbDeployer()
@@ -119,20 +134,22 @@
private BeanMetaData createBeanMetaData(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData) throws DeploymentException, IOException
{
log.debug(esbMetaData);
- BeanMetaDataBuilder bmdBuilder = BeanMetaDataBuilder.createBuilder(BEAN_PREFIX + "." + deploymentUnit.getName(), EsbDeployment.class.getName());
+ BeanMetaDataBuilder bmdBuilder = BeanMetaDataBuilder.createBuilder(esbBeanPrefix + "." + 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());
// Setup the third constructor argument (the name of the mbean).
- final String mbeanName = BEAN_PREFIX + ":deployment=" + deploymentUnit.getSimpleName();
+ final String mbeanName = esbBeanPrefix + ":deployment=" + deploymentUnit.getSimpleName();
bmdBuilder.addConstructorParameter(String.class.getName(), mbeanName);
// Add management annotation.
bmdBuilder.addAnnotation("@org.jboss.aop.microcontainer.aspects.jmx.JMX(registerDirectly=true, exposedInterface=void.class, name=\"" + mbeanName + "\")");
- // Add dependencies to the Registry and Juddi
- bmdBuilder.addDependency(BEAN_PREFIX + ":service=ESBRegistry");
- bmdBuilder.addDependency(BEAN_PREFIX + ":service=JuddiRMI");
+ // Add default dependencies.
+ for (String dependency : defaultDeps)
+ {
+ bmdBuilder.addDependency(dependency);
+ }
// Add the dependencies for this deployment.
Set<ObjectName> dependencies = esbMetaData.getDependencies();
@@ -153,5 +170,28 @@
return bmdBuilder.getBeanMetaData();
}
+
+ public void setEsbBeanPrefix(final String prefix)
+ {
+ this.esbBeanPrefix = prefix;
+ }
+
+ public String getEsbBeanPrefix()
+ {
+ return esbBeanPrefix;
+ }
+
+ public void setDefaultDependencies(final List<String> deps)
+ {
+ if (deps != null)
+ {
+ defaultDeps.addAll(deps);
+ }
+ }
+
+ public List<String> getDefaultDependencies()
+ {
+ return Collections.unmodifiableList(defaultDeps);
+ }
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/overview.html
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/overview.html 2009-05-14 10:33:44 UTC (rev 26531)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/overview.html 2009-05-14 10:50:35 UTC (rev 26532)
@@ -4,19 +4,22 @@
JBossAS 5.x deployers for JBossESB 4.x
<h1>Overview</h1>
- This package contains a number of JBoss AS deployers and supporting classes to deployer .esb (4.x) archives on JBoss AS 5.x.
+ This package contains a number of JBoss AS deployers and supporting classes to deploy .esb (4.x) archives on JBoss AS 5.x.
<p/>
<h2>Overview of the deployers</h2>
- The deployers come into play at different stages of the deployment. This is set in thier respective constructors.
- The deployers don't really deploy anything but only create metadata describing an EsbDeployment. The MicroContainer
- will take care of creating the real instance and calling its lifecycle metods for us.
- <ul>
- <li>EsbConfigParser -> Is active a the PARSE deployment stage. It is responsible for parsing the .esb configuration and creating an EsbMetaData instance representing the deployment.</li>
- <li>EsbWebServiceDeployer -> Is active a the POST_PARSE deployment stage. It is responsible for examining the EsbMetaData and generating web service metadata that will be picked up by WS deployers</li>
- <li>EsbWsdlDeployer -> Is active a the POST_CLASSLOADER deployment stage. It is responsible for examining the EsbMetaData and generating the wsdl and also adding the wsdl file to an inmemory virtual filesystem</li>
- <li>EsbDeployer -> Is also active a the POST_CLASSLOADER deployment stage. This is where the actual bean meta data that represents an esb deployment is created, EsbDeployment</li>
- </ul>
+ The different deployers come into play at different stages of the deployment. This is set in thier respective constructors.
+ The deployers don't really deploy anything but only create/adding metadata describing an EsbDeployment. The MicroContainer
+ will take care of creating the real EsbDeployment instance and take care of calling its lifecycle metods for us. <br><br>
+ <table border="1">
+ <tr><td><b>DeploymentStage</b></td><td><b>Deployer</b></td><td><b>Description</b></td></tr>
+ <tr><td><i>PARSE</i></td><td><i>EsbConfigParser</i></td><td>Is responsible for parsing the .esb configuration and creating an EsbMetaData instance representing the deployment.</td></tr>
+ <tr><td><i>POST_PARSE</i></td><td><i>EsbWebServiceDeployer</i></td><td>Is responsible for examining the EsbMetaData and generating web service metadata that will be picked up by WS deployers.</td></tr>
+ <tr><td><i>POST_CLASSLOADER</i></td><td><i>EsbWsdlDeployer</i></td><td>Is responsible for examining the EsbMetaData and generating the wsdl, which requries usage of classloaders, and also adding the wsdl file to an inmemory virtual filesystem.</td></tr>
+ <tr><td><i>POST_CLASSLOADER</td><td><i>EsbDeployer</i></td><td>This is where the actual bean meta data that represents an esb deployment is created, EsbDeployment.</td></tr>
+ </table>
+ <br>
+
For details about specific deployers please refer to the javadocs for the deployer in question. Hopefully this will give you an overview and more importantly give you the order in which the deployers
are applied.
</body>
Modified: 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 2009-05-14 10:33:44 UTC (rev 26531)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java 2009-05-14 10:50:35 UTC (rev 26532)
@@ -21,6 +21,7 @@
package org.jboss.soa.esb.listeners.deployers.mc;
import java.net.URL;
+import java.util.List;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
@@ -53,6 +54,11 @@
esbDeployer.deploy(deploymentUnit, esbMetaData);
Object attachment = deploymentUnit.getAttachment(BeanMetaData.class.getName() + "_ESB");
assertTrue(attachment instanceof BeanMetaData);
+
+ EsbDeployer esbDeployer = (EsbDeployer) getBean("EsbDeployer");
+ List<String> defaultDependencies = esbDeployer.getDefaultDependencies();
+ assertEquals(2, defaultDependencies.size());
+ assertEquals("jboss.esb", esbDeployer.getEsbBeanPrefix());
}
}
Modified: 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 2009-05-14 10:33:44 UTC (rev 26531)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.xml 2009-05-14 10:50:35 UTC (rev 26532)
@@ -3,10 +3,18 @@
<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="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer">
+ <property name="esbBeanPrefix">jboss.esb</property>
+ <property name="defaultDependencies">
+ <list elementClass="java.lang.String">
+ <value>jboss.esb:service=ESBRegistry</value>
+ <value>jboss.esb:service=JuddiRMI</value>
+ </list>
+ </property>
+ </bean>
<bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
<property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
More information about the jboss-svn-commits
mailing list