创建自定义Service Mix分发的步骤是什么

时间:2015-01-28 02:01:10

标签: apache-karaf provisioning apache-servicemix

ServiceMix documentation关于创建自定义分发,仅说明了创建自定义karaf分发的步骤。我知道Karaf是ServiceMix的骨干,而ServiceMix是Karaf的定制发行版。

有没有人真正在servicemix上构建自定义esb而不是在karaf之上?如果是这样你是怎么做到的?

您是如何使用servicemix的src上演项目的?

2 个答案:

答案 0 :(得分:2)

以下是我希望在尝试解决这个问题时的一些步骤......

  1. 下载您要构建的服务组合版本的来源:https://github.com/apache/servicemix/releases
  2. 将源zip包解压缩到任何文件夹中。
  3. 使用以下布局创建项目:

    • MyESB
      • 的pom.xml
      • SRC
        • 的java
  4. 将位于 apache-service-mix-xxx-src / assembly 中的 pom.xml 中的内容复制到 pom.xml < /强>

  5. pom.xml 中,替换artifactId,并将name命名为:
  6. <parent>
      <groupId>org.apache.servicemix</groupId>
      <artifactId>parent</artifactId>
      <version>5.4.0</version>
    </parent>
    
    <groupId>com.mycompany.esb</groupId>
    <artifactId>mycustom-esb</artifactId>
    
    <packaging>pom</packaging>
    <name>Custom :: ESB</name>
    
    • apache-service-mix-x.x.x-src / assembly / src / main 的资源目录复制到 MyESB / src / main
    • org.apache.karaf.tooling:features-maven-plugin 或您刚刚复制的资源目录中的configuratoin文件进行所需的自定义。
      

    例如,如果要添加特定功能,可以对pom.xml进行以下编辑:

         
        
    • 将feature.xml添加到add-features-to-repo配置描述符
    •   
    • 将myfeature添加到add-features-to-repo功能列表
    •   
    • 要默认启动该功能,请将功能添加到位于此处的 featuresBoot 属性: MyESB \ src \ main \ filtered-resources \ etc \ org.apache.karaf.features .CFG
    •   
    1. 运行maven安装目标!这将在 MyESB / target 文件夹中构建一个zip文件。现在你可以取消它并运行 servicemix.bat

    2. 启动ESB后,通过在Karaf控制台中输入以下命令来验证您的功能是否已安装:

        

      功能:列表| grep myfeature

答案 1 :(得分:0)

好吧,就像servicemix本身一样。这就是它在Karaf文档中所描述的方式。 例如,您可能希望查看here

简而言之,在自定义程序集POM中定义它,请查看以下代码段:

    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>${karaf.version}</version>
            <executions>
                <execution>
                    <id>add-features-to-repo</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>features-add-to-repository</goal>
                    </goals>
                    <configuration>
                        <descriptors>
                            <descriptor>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</descriptor>
                            <descriptor>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</descriptor>
                            <descriptor>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</descriptor>
                            <descriptor>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features</descriptor>
                            <descriptor>mvn:org.apache.camel.karaf/apache-camel/${camel.version}/xml/features</descriptor>
                            <descriptor>mvn:org.apache.cxf.karaf/apache-cxf/${cxf.version}/xml/features</descriptor>
                            <descriptor>file:${basedir}/target/classes/internal.xml</descriptor>
                            <descriptor>file:${basedir}/target/classes/features.xml</descriptor>
                            <descriptor>file:${basedir}/target/classes/examples.xml</descriptor>
                        </descriptors>
                        <features>
                            <feature>cxf</feature>
                            <feature>obr</feature>
                            <feature>config</feature>
                            <feature>standard</feature>
                            <feature>package</feature>
                            <feature>kar</feature>
                            <feature>ssh</feature>
                            <feature>management</feature>
                            <feature>eventadmin</feature>
                            <feature>activemq-broker-noweb</feature>
                            <feature>activemq-service</feature>
                            <feature>camel</feature>
                            <feature>camel-cxf</feature>
                            <feature>activemq-camel</feature>
                            <feature>camel-blueprint</feature>
                            <feature>war</feature>
                            <feature>jaxrs-api</feature>
                        </features>
                        <includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>
                        <repository>target/features-repo</repository>
                    </configuration>
                    <inherited>false</inherited>
                </execution>
            </executions>
        </plugin>

如果您需要自己的自定义捆绑/功能,请确保您 a)拥有自己的捆绑包的特征描述符
b)定义特征描述符
c)告诉插件使用相应的功能