Search code examples
apacheapache-servicemix

Apache ServiceMix 5.x full version


I need to run Apache ServiceMix on servers with no direct connection to the internet. I am unable to find a "full" assembly for Apache ServiceMix 5.1.4. An older version of ServiceMix (4.5.3) has a full version available for download.

Is a full version of 5.1.4 is available and if so where?

http://servicemix.apache.org/downloads/servicemix-5.1.4.html http://servicemix.apache.org/downloads/servicemix-4.5.3.html


Solution

  • Thanks to KSobkowiak's answer which pointed me in the right direction. I am posting the steps I used to get a custom ServiceMix 5.x up and running in case anyone else needs to do the same. The instructions assume Linux, but windows steps should be similar.

    1) Download and unzip ServiceMix and Maven

    cd /opt
    unzip apache-servicemix-5.1.4.zip
    unzip apache-maven-3.0.3.zip
    

    2) Configure maven proxy, if needed:

    3) Create a maven project directory

    mkdir serviceMix_features
    cd serviceMix_features
    

    4) Create a maven pom file with the following xml. I got the list of descriptors by running features:listurl command in the servicemix console. The features would be whatever you need in your custom servicemix distro, in this case I am adding the webconsole and several camel components.

    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>my.group</groupId>
      <artifactId>custom-servicemix</artifactId>
      <version>1.0</version>
      <packaging>pom</packaging>
      <name>My custom service mix repository</name>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>features-maven-plugin</artifactId>
            <version>2.3.9</version>
            <executions>
              <execution>
                <id>add-features-to-repo</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>add-features-to-repo</goal>
                </goals>
                <configuration>
                  <descriptors>
                    <descriptor>mvn:org.apache.camel.karaf/apache-camel/2.13.3/xml/features</descriptor>
                    <descriptor>mvn:org.apache.servicemix/apache-servicemix/5.1.4/xml/internal</descriptor>
                    <descriptor>mvn:org.apache.activemq/activemq-karaf/5.10.0/xml/features</descriptor>
                    <descriptor>mvn:org.apache.karaf.assemblies.features/standard/2.3.9/xml/features</descriptor>
                    <descriptor>mvn:org.apache.karaf.assemblies.features/enterprise/2.3.9/xml/features</descriptor>
                    <descriptor>mvn:org.apache.jclouds.karaf/jclouds-karaf/1.7.2/xml/features</descriptor>
                    <descriptor>mvn:org.apache.cxf.karaf/apache-cxf/2.7.13/xml/features</descriptor>
                    <descriptor>mvn:org.apache.servicemix/apache-servicemix/5.1.4/xml/features</descriptor>
                    <descriptor>mvn:org.apache.servicemix/apache-servicemix/5.1.4/xml/examples</descriptor>
                    <descriptor>mvn:org.ops4j.pax.cdi/pax-cdi-features/0.8.0/xml/features</descriptor>
                    <descriptor>mvn:org.apache.activemq/activemq-karaf/5.10.0/xml/features-core</descriptor>
                  </descriptors>
                   <features>
                    <feature>webconsole</feature>
                    <feature>camel-restlet</feature>
                    <feature>camel-jackson</feature>
                  </features>
                  <repository>target/features-repo</repository>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    

    5) Execute the maven project. I noticed that sometimes maven would get part way through and fail. After retrying, I noticed that it pulled in additional jars each run, and finnally succeeded on the fourth try.

    /opt/apache-maven-3.0.3/bin/mvn install
    

    6) Overlay the maven files on the default service mix distro.

    cp -Rvn target/features_repo/* /opt/apache-servicemix-5.1.4/system/
    

    7) zip or tar your custom service mix distro and move it where you need to. If you were using a proxy, you can deconfigure the maven proxy and clear your maven repo to verify service mix was correctly updated from the service mix console.

    features:install webconsole