The way to deploy a servicemix.xml file on an existing is not yet document. Here are the steps to proceed (with svn head).

o in the servicemix-lwcontainer directory, run "maven jbi:install". This should generate in the target\directory, a file named servicemix-lwcontainer-installer-2.1-SNAPSHOT.zip. This is a jbi component that can be installed in a jbi container using
by copying it in the install directory which is monitored

o modify your servicemix.xml file to change the "container" tag to a "serviceunit"

   o put your servicemix.xml in a zip (which will be a service unit)

o create a service assembly descriptor like this one, and zip it along with your service unit <jbi xmlns="http://java.sun.com/xml/ns/jbi"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://java.sun.com/xml/ns/jbi"; version="1.0">

<service-assembly>
    <identification>
      <name>AU_1</name>
      <description>Sample AU</description>
    </identification>
    <service-unit>
      <identification>
        <name>SU_1</name>
        <description>Sample</description>
      </identification>
      <target>
        <artifacts-zip>su1.zip</artifacts-zip>
        <component-name>servicemix-lwcontainer</component-name>
      </target>
    </service-unit>
   </service-assembly>

</jbi>


o drop your service assembly in the deploy directory of the servicemix container

These steps are covered in http://docs.codehaus.org/display/SM/Geronimo+Integration#GeronimoIntegration-DeployingJBIComponents
but this doc is not up-to-date yet.
This is still work in progress, so do not hesitate to ask if you have any problems.

Cheers,

Guillaume Nodet

[EMAIL PROTECTED] wrote:

Below is the current servicemix.xml that I have working for a simple example. Everything functions properly, but I'd like to extract the various activationSpec components from the servicemix.xml file and create something like a service assembly (I might be using the wrong terminology here) so that I can hot deploy these components to the JBI container. I can't tell from any of the examples a good way that I might achieve this. It seems like all I have to do is create a .zip file that contains all of my configuration files, and another jbi.xml file that defines my components, but none of the examples illustrate how to do this with something like the ChainedComponent or XsltComponent. Any help would be greatly appreciated. <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0";
    xmlns:spring="http://xbean.org/schemas/spring/1.0";
    xmlns:sm="http://servicemix.org/config/1.0";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://xbean.org/schemas/spring/1.0 /opt/apps/servicemix/current/conf/spring-beans.xsd <http://xbean.org/schemas/spring/1.0/opt/apps/servicemix/current/conf/spring-beans.xsd> http://servicemix.org/config/1.0 /opt/apps/servicemix/current/conf/servicemix.xsd <http://servicemix.org/config/1.0/opt/apps/servicemix/current/conf/servicemix.xsd>"
    xmlns:foo="http://servicemix.org/demo/";>
<!-- the JBI container --> <sm:container
      spring:id="jbi"
      name="bus_2"
      useMBeanServer="true"
      createMBeanServer="true"
      monitorInstallationDirectory="false"
      dumpStats="true"
      statsInterval="10"
flowName="jms?jmsURL=reliable:(tcp://uscobrmfa-ad-98:61616,tcp://uscobrmfa-ad-99:61616)"
      transactionManager="#transactionManager"
      rmiPort="5099">
    <sm:activationSpecs>
<!-- Create a http server binding on port 8914 and have it forward to the foo:chain -->
      <sm:activationSpec componentName="httpReceiver"
          service="foo:httpReceiver"
          endpoint="httpReceiver"
          destinationService="foo:chain">
        <sm:component>
          <bean xmlns="http://xbean.org/schemas/spring/1.0";
              class="org.servicemix.components.http.HttpConnector">
<property name="host" value="10.128.1.211 <http://10.128.1.211>"/>
            <property name="port" value="8914"/>
            <property name="defaultInOut" value="true"/>
          </bean>
        </sm:component>
      </sm:activationSpec>

      <!-- Lets create a message router -->
      <sm:activationSpec componentName="chain" service="foo:chain">
        <sm:component>
<bean xmlns="" class="org.servicemix.components.util.ChainedComponent">
            <property name="services">
              <list>
                <bean class="javax.xml.namespace.QName">
                  <constructor-arg value="http://servicemix.org/demo/"; />
                  <constructor-arg value="soapExtractor" />
                </bean>

                <bean class="javax.xml.namespace.QName">
                  <constructor-arg value="http://servicemix.org/demo/"; />
                  <constructor-arg value="getPerson" />
                </bean>
<bean class="javax.xml.namespace.QName">
                  <constructor-arg value="http://servicemix.org/demo/"; />
                  <constructor-arg value="soapExtractor" />
                </bean>
<bean class="javax.xml.namespace.QName">
                  <constructor-arg value="http://servicemix.org/demo/"; />
                  <constructor-arg value="soapInjector" />
                </bean>
</list>
            </property>
          </bean>
        </sm:component>
      </sm:activationSpec>

      <!-- Provide a service to strip SOAP headers -->
      <sm:activationSpec componentName="soapExtractor"
          service="foo:soapExtractor">
        <sm:component>
          <bean xmlns="http://xbean.org/schemas/spring/1.0";
              class="org.servicemix.components.xslt.XsltComponent">
            <property name="xsltResource" value="SoapExtractor.xsl"/>
          </bean>
        </sm:component>
      </sm:activationSpec>

      <!-- Provide a service to add SOAP headers -->
      <sm:activationSpec componentName="soapInjector"
          service="foo:soapInjector">
        <sm:component>
          <bean xmlns="http://xbean.org/schemas/spring/1.0";
              class="org.servicemix.components.xslt.XsltComponent">
            <property name="xsltResource" value="SoapInjector.xsl"/>
          </bean>
        </sm:component>
      </sm:activationSpec>
<!-- This just invokes a SOAP web service -->
      <sm:activationSpec componentName="getPerson"
          service="foo:getPerson"
          endpoint="getPerson">
        <sm:component>
          <bean xmlns="http://xbean.org/schemas/spring/1.0";
              class="org.servicemix.components.saaj.SaajBinding">
            <property name="soapEndpoint">
              <bean class="javax.xml.messaging.URLEndpoint">
<constructor-arg value="http://10.128.1.211:8080/systinet/server/CexpObjectTest/CexpObjectTest/"/ <http://10.128.1.211:8080/systinet/server/CexpObjectTest/CexpObjectTest/%22/>>
              </bean>
            </property>
          </bean>
        </sm:component>
      </sm:activationSpec>
    </sm:activationSpecs>
  </sm:container>

<bean id="transactionContextManager" class="org.jencks.factory.TransactionContextManagerFactoryBean"/>

<bean id="transactionManager" class="org.jencks.factory.GeronimoTransactionManagerFactoryBean" />

</beans>

Reply via email to