Title: [782] trunk: SM-140 : GBean for geronimo integration
Revision
782
Author
gnt
Date
2005-11-10 09:07:10 -0500 (Thu, 10 Nov 2005)

Log Message

SM-140 : GBean for geronimo integration

Modified Paths


Added Paths

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>

Reply via email to