Diff
Modified: trunk/etc/project.properties (781 => 782)
--- trunk/etc/project.properties 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/etc/project.properties 2005-11-10 14:07:10 UTC (rev 782)
@@ -81,9 +81,11 @@
cglib_version=2.1_3
cglib_full_version=2.0
commons_beanutils_version=1.7.0
+commons_betwixt_version=0.7
commons_codec_version=1.3
commons_collections_version=3.1
commons_dbcp_version=1.2
+commons_digester_version=1.7
commons_discovery_version=0.2
commons_httpclient_version=3.0-rc2
commons_io_version=1.0
@@ -106,8 +108,12 @@
geronimo_system_version=1.0-SNAPSHOT
geronimo_remoting_version=1.0-SNAPSHOT
geronimo_network_version=1.0-SNAPSHOT
+geronimo_common_version=1.0-SNAPSHOT
+geronimo_connector_version=1.0-SNAPSHOT
geronimo_core_version=1.0-SNAPSHOT
+geronimo_deployment_version=1.0-SNAPSHOT
geronimo_deployment_plugin_version=1.0-SNAPSHOT
+geronimo_j2ee_version=1.0-SNAPSHOT
geronimo_security_version=1.0-SNAPSHOT
geronimo_spec_activation_version=1.0.2-rc4
geronimo_spec_ejb_version=2.1-rc4
@@ -121,6 +127,7 @@
geronimo_spec_jta_version=1.0.1B-rc4
geronimo_spec_jsp_version=2.0-rc4
geronimo_spec_servlet_version=2.4-rc4
+geronimo_transaction_version=1.0-SNAPSHOT
groovy_version=1.0-jsr-03
hsqldb_version=1.7.3.3
janino_version=2.3.2
Added: trunk/servicemix-gbean/maven.xml (781 => 782)
--- trunk/servicemix-gbean/maven.xml 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/maven.xml 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project default="installGeronimo"
+ xmlns:ant="jelly:ant"
+ xmlns:deploy="geronimo:deploy">
+
+ <goal name="installGeronimo">
+ <ant:delete dir="${maven.build.dir}/geronimo"/>
+ <deploy:unpackServer
+ geronimoVersion="1.0-SNAPSHOT"/>
+ </goal>
+
+</project>
Added: trunk/servicemix-gbean/project.xml (781 => 782)
--- trunk/servicemix-gbean/project.xml 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/project.xml 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE project>
+<project>
+ <pomVersion>3</pomVersion>
+ <extend>${basedir}/../etc/project.xml</extend>
+
+ <name>ServiceMix :: GBeans</name>
+ <id>servicemix-gbean</id>
+ <shortDescription>Geronimo / GBean support</shortDescription>
+ <description>ServiceMix GBeans used for integration into Apache Geronimo</description>
+
+ <package>org.servicemix.gbean</package>
+ <packageGroups>
+ <packageGroup>
+ <title>Geronimo / GBean support</title>
+ <packages>org.servicemix.gbean</packages>
+ </packageGroup>
+ </packageGroups>
+
+ <!-- ============ -->
+ <!-- Dependencies -->
+ <!-- ============ -->
+ <dependencies>
+
+ <dependency>
+ <groupId>servicemix</groupId>
+ <artifactId>servicemix-jbi</artifactId>
+ <version>${pom.currentVersion}</version>
+ <properties>
+ <eclipse.dependency>true</eclipse.dependency>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>servicemix</groupId>
+ <artifactId>servicemix-core</artifactId>
+ <version>${pom.currentVersion}</version>
+ <properties>
+ <eclipse.dependency>true</eclipse.dependency>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>org.xbean</groupId>
+ <artifactId>xbean-spring</artifactId>
+ <version>${xbean_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>springframework</groupId>
+ <artifactId>spring</artifactId>
+ <version>${spring_version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons_logging_version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-kernel</artifactId>
+ <version>${geronimo_kernel_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-system</artifactId>
+ <version>${geronimo_system_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-deployment</artifactId>
+ <version>${geronimo_deployment_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-common</artifactId>
+ <version>${geronimo_common_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-j2ee</artifactId>
+ <version>${geronimo_j2ee_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-connector</artifactId>
+ <version>${geronimo_connector_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-transaction</artifactId>
+ <version>${geronimo_transaction_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-jta</artifactId>
+ <version>${geronimo_spec_jta_version}</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-j2ee-connector</artifactId>
+ <version>${geronimo_spec_j2ee_connector_version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jencks</groupId>
+ <artifactId>jencks</artifactId>
+ <version>${jencks_version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>mx4j</groupId>
+ <artifactId>mx4j</artifactId>
+ <version>${mx4j_version}</version>
+ </dependency>
+ </dependencies>
+
+</project>
Added: trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixConfigBuilder.java (781 => 782)
--- trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixConfigBuilder.java 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixConfigBuilder.java 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,196 @@
+package org.servicemix.gbean;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.deployment.ConfigurationBuilder;
+import org.apache.geronimo.deployment.DeploymentContext;
+import org.apache.geronimo.deployment.util.DeploymentUtil;
+import org.apache.geronimo.gbean.GBeanData;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.config.ConfigurationData;
+import org.apache.geronimo.kernel.config.ConfigurationModuleType;
+import org.servicemix.jbi.config.spring.XBeanProcessor;
+import org.servicemix.jbi.deployment.Descriptor;
+import org.springframework.core.io.UrlResource;
+import org.xbean.spring.context.ResourceXmlApplicationContext;
+
+import javax.management.ObjectName;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import java.util.jar.JarFile;
+
+public class ServiceMixConfigBuilder implements ConfigurationBuilder {
+
+ private static final Log log = LogFactory.getLog(ServiceMixConfigBuilder.class);
+
+ private final List defaultParentId;
+ private final Kernel kernel;
+ private final ServiceMixContainer servicemix;
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(ServiceMixConfigBuilder.class, NameFactory.CONFIG_BUILDER);
+ infoFactory.addInterface(ConfigurationBuilder.class);
+ infoFactory.addAttribute("defaultParentId", List.class, true);
+ infoFactory.addReference("servicemix", ServiceMixContainer.class);
+ infoFactory.addAttribute("kernel", Kernel.class, false);
+ infoFactory.setConstructor(new String[]{"defaultParentId", "kernel", "servicemix"});
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+ public ServiceMixConfigBuilder(List defaultParentId, Kernel kernel, ServiceMixContainer servicemix) {
+ this.defaultParentId = defaultParentId;
+ this.kernel = kernel;
+ this.servicemix = servicemix;
+ }
+
+ /**
+ * Builds a deployment plan specific to this builder from a planFile and/or
+ * module if this builder can process it.
+ * @param planFile the deployment plan to examine; can be null
+ * @param module the URL of the module to examine; can be null
+ * @return the deployment plan, or null if this builder can not handle the module
+ * @throws org.apache.geronimo.common.DeploymentException if there was a problem with the configuration
+ */
+ public Object getDeploymentPlan(File planFile, JarFile module) throws DeploymentException {
+ log.debug("Checking for ServiceMix deployment.");
+ System.err.println("Checking for ServiceMix deployment.");
+ if (module == null) {
+ return null;
+ }
+
+ // Check that the jbi descriptor is present
+ try {
+ URL url = "" "META-INF/jbi.xml");
+ Descriptor descriptor = buildDescriptor(url);
+ if (descriptor != null) {
+ return descriptor;
+ }
+ return null;
+ } catch (Exception e) {
+ log.debug("Not a ServiceMix deployment: no jbi.xml found.", e);
+ //no jbi.xml, not for us
+ return null;
+ }
+ }
+
+ /**
+ * Checks what configuration URL will be used for the provided module.
+ * @param plan the deployment plan
+ * @param module the module to build
+ * @return the ID that will be used for the Configuration
+ * @throws IOException if there was a problem reading or writing the files
+ * @throws org.apache.geronimo.common.DeploymentException if there was a problem with the configuration
+ */
+ public URI getConfigurationID(Object plan, JarFile module) throws IOException, DeploymentException {
+ try {
+ Descriptor descriptor = (Descriptor) plan;
+ if (descriptor.getComponent() != null) {
+ return new URI("org/servicemix/components/" + descriptor.getComponent().getIdentification().getName());
+ } else if (descriptor.getServiceAssembly() != null) {
+ return new URI("org/servicemix/assemblies/" + descriptor.getServiceAssembly().getIdentification().getName());
+ } else if (descriptor.getSharedLibrary() != null) {
+ return new URI("org/servicemix/libraries/" + descriptor.getSharedLibrary().getIdentification().getName());
+ } else {
+ throw new DeploymentException("Unable to construct configuration ID " + module.getName() + ": unrecognized jbi package. Should be a component, assembly or library.");
+ }
+ } catch (URISyntaxException e) {
+ throw new DeploymentException("Unable to construct configuration ID " + module.getName(), e);
+ }
+ }
+
+ /**
+ * Build a configuration from a local file
+ *
+ * @param plan the deployment plan
+ * @param module the module to build
+ * @param outfile the file in which the configiguration files should be written
+ * @return the Configuration information
+ * @throws IOException if there was a problem reading or writing the files
+ * @throws org.apache.geronimo.common.DeploymentException if there was a problem with the configuration
+ */
+ public ConfigurationData buildConfiguration(Object plan, JarFile module, File outfile) throws IOException, DeploymentException {
+ if (plan == null) {
+ log.warn("Expected a Descriptor but received null");
+ return null;
+ }
+ if (plan instanceof Descriptor == false) {
+ log.warn("Expected a Descriptor but received a " + plan.getClass().getName());
+ return null;
+ }
+
+ DeploymentContext context = null;
+ try {
+ URI configId = getConfigurationID(plan, module);
+ List parentId = new ArrayList();
+ if (parentId != null) {
+ for (Iterator iter = defaultParentId.iterator(); iter.hasNext();) {
+ String element = (String) iter.next();
+ parentId.add(new URI(element));
+ }
+ }
+ context = new DeploymentContext(outfile, configId, ConfigurationModuleType.SERVICE, parentId, null, null, kernel);
+
+ // Create the JBI deployment managed object
+ Properties props = new Properties();
+ props.put("jbiType", "JBIModule");
+ props.put("name", configId.toString());
+ ObjectName name = ObjectName.getInstance(context.getDomain(), props);
+ GBeanData gbeanData = new GBeanData(name, ServiceMixDeployment.GBEAN_INFO);
+ gbeanData.setAttribute("name", module.getName());
+ context.addGBean(gbeanData);
+
+ try {
+ servicemix.getContainer().getInstallationService().install(module.getName());
+ } catch (javax.jbi.management.DeploymentException e) {
+ throw new DeploymentException("Could not deploy jbi package", e);
+ }
+ } catch (Exception e) {
+ throw new DeploymentException("Unable to deploy", e);
+ } finally {
+ if (context != null) {
+ context.close();
+ }
+ }
+
+ return context.getConfigurationData();
+ }
+
+ /**
+ * Build a Descriptor from a file archieve
+ *
+ * @param tmpDir
+ * @return the Descriptor object
+ */
+ protected static Descriptor buildDescriptor(URL url) {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(Descriptor.class.getClassLoader());
+ ResourceXmlApplicationContext context = new ResourceXmlApplicationContext(
+ new UrlResource(url),
+ Arrays.asList(new Object[] { new XBeanProcessor()}));
+ return (Descriptor) context.getBean("jbi");
+ } finally {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
+ }
+
+}
Added: trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixContainer.java (781 => 782)
--- trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixContainer.java 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixContainer.java 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,8 @@
+package org.servicemix.gbean;
+
+import org.servicemix.jbi.container.JBIContainer;
+
+public interface ServiceMixContainer {
+
+ public JBIContainer getContainer();
+}
Added: trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixDeployment.java (781 => 782)
--- trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixDeployment.java 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixDeployment.java 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,57 @@
+package org.servicemix.gbean;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+
+public class ServiceMixDeployment implements GBeanLifecycle {
+
+ private Log log = LogFactory.getLog(getClass().getName());
+
+ private String name;
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("ServiceMix Deployment", ServiceMixDeployment.class, "JBIDeployment");
+ infoFactory.addAttribute("name", String.class, true);
+ infoFactory.setConstructor(new String[]{"name"});
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+ public ServiceMixDeployment(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Starts the GBean. This informs the GBean that it is about to transition to the running state.
+ *
+ * @throws Exception if the target failed to start; this will cause a transition to the failed state
+ */
+ public void doStart() throws Exception {
+ log.info("Starting JBI deployment: " + name );
+ }
+
+ /**
+ * Stops the target. This informs the GBean that it is about to transition to the stopped state.
+ *
+ * @throws Exception if the target failed to stop; this will cause a transition to the failed state
+ */
+ public void doStop() throws Exception {
+ log.info("Stopping JBI deployment: " + name);
+ }
+
+ /**
+ * Fails the GBean. This informs the GBean that it is about to transition to the failed state.
+ */
+ public void doFail() {
+ log.info("Failing JBI deployment: " + name);
+ }
+
+}
Added: trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixGBean.java (781 => 782)
--- trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixGBean.java 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/src/main/java/org/servicemix/gbean/ServiceMixGBean.java 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,120 @@
+package org.servicemix.gbean;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.transaction.context.GeronimoTransactionManager;
+import org.apache.geronimo.transaction.context.TransactionContextManager;
+import org.servicemix.jbi.container.JBIContainer;
+
+import javax.jbi.JBIException;
+import javax.transaction.TransactionManager;
+
+public class ServiceMixGBean implements GBeanLifecycle, ServiceMixContainer {
+
+ private Log log = LogFactory.getLog(getClass().getName());
+
+ private JBIContainer container;
+ private String name;
+ private String directory;
+ private TransactionContextManager transactionContextManager;
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("ServiceMix JBI Container", ServiceMixGBean.class, "JBIContainer");
+ infoFactory.addInterface(ServiceMixContainer.class);
+ infoFactory.addAttribute("name", String.class, true);
+ infoFactory.addAttribute("directory", String.class, true);
+ infoFactory.addReference("transactionContextManager", TransactionContextManager.class);
+ infoFactory.setConstructor(new String[]{"name", "directory"});
+ infoFactory.setConstructor(new String[]{"name", "directory", "transactionContextManager"});
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+ public ServiceMixGBean(String name, String directory) {
+ this(name, directory, null);
+ }
+
+ public ServiceMixGBean(String name, String directory, TransactionContextManager transactionContextManager) {
+ this.name = name;
+ this.directory = directory;
+ this.transactionContextManager = transactionContextManager;
+ }
+
+ /**
+ * Starts the GBean. This informs the GBean that it is about to transition to the running state.
+ *
+ * @throws Exception if the target failed to start; this will cause a transition to the failed state
+ */
+ public void doStart() throws Exception {
+ ClassLoader old = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(ServiceMixGBean.class.getClassLoader());
+ try {
+ if (container == null) {
+ container = createContainer();
+ container.init();
+ container.start();
+ }
+ } finally {
+ Thread.currentThread().setContextClassLoader(old);
+ }
+ }
+
+ /**
+ * Stops the target. This informs the GBean that it is about to transition to the stopped state.
+ *
+ * @throws Exception if the target failed to stop; this will cause a transition to the failed state
+ */
+ public void doStop() throws Exception {
+ if (container != null) {
+ JBIContainer temp = container;
+ container = null;
+ temp.shutDown();
+ }
+ }
+
+ /**
+ * Fails the GBean. This informs the GBean that it is about to transition to the failed state.
+ */
+ public void doFail() {
+ if (container != null) {
+ JBIContainer temp = container;
+ container = null;
+ try {
+ temp.shutDown();
+ }
+ catch (JBIException e) {
+ log.info("Caught while closing due to failure: " + e, e);
+ }
+ }
+ }
+
+ private JBIContainer createContainer() {
+ JBIContainer container = new JBIContainer();
+ container.setName(name);
+ container.setRootDir(directory);
+ container.setTransactionManager(getTransactionManager());
+ container.setMonitorInstallationDirectory(false);
+ container.setWorkManager(null);
+ return container;
+ }
+
+ public TransactionManager getTransactionManager() {
+ if (transactionContextManager != null) {
+ return new GeronimoTransactionManager(transactionContextManager);
+ }
+ return null;
+ }
+
+ public JBIContainer getContainer() {
+ return container;
+ }
+
+}
Added: trunk/servicemix-gbean/src/main/resources/plan.xml (781 => 782)
--- trunk/servicemix-gbean/src/main/resources/plan.xml 2005-11-10 14:04:36 UTC (rev 781)
+++ trunk/servicemix-gbean/src/main/resources/plan.xml 2005-11-10 14:07:10 UTC (rev 782)
@@ -0,0 +1,51 @@
+<configuration
+ xmlns="http://geronimo.apache.org/xml/ns/deployment"
+ configId="org/servicemix/JBIContainer"
+ parentId="org/apache/geronimo/Server"
+ >
+ <dependency>
+ <uri>servicemix/jars/servicemix-gbean-2.1-SNAPSHOT.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>servicemix/jars/servicemix-2.1-SNAPSHOT.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>backport-util-concurrent/jars/backport-util-concurrent-2.0_01_pd.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>activemq/jars/activemq-core-3.2.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>jencks/jars/jencks-1.1.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>springframework/jars/spring-1.2.5.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>commons-beanutils/jars/commons-beanutils-1.7.0.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>geronimo/jars/geronimo-deployment-1.0-SNAPSHOT.jar</uri>
+ </dependency>
+ <dependency>
+ <uri>xbean/jars/xbean-spring-2.0.jar</uri>
+ </dependency>
+
+ <gbean name="ServiceMixJBIContainer" class="org.servicemix.gbean.ServiceMixGBean">
+ <attribute name="name">ServiceMix</attribute>
+ <attribute name="directory">var/servicemix</attribute>
+ <reference name="transactionContextManager">
+ <module>org/apache/geronimo/Server</module>
+ <type>TransactionContextManager</type>
+ <name>TransactionContextManager</name>
+ </reference>
+ </gbean>
+
+ <gbean name="ServiceMixConfigBuilder" class="org.servicemix.gbean.ServiceMixConfigBuilder">
+ <attribute name="defaultParentId">org/servicemix/JBIContainer</attribute>
+ <reference name="servicemix">
+ <type>JBIContainer</type>
+ <name>ServiceMixJBIContainer</name>
+ </reference>
+ </gbean>
+</configuration>