zoukankan      html  css  js  c++  java
  • OSGi karaf-maven-plugin

    karaf-maven-plugin

    1. 配制 karaf 启动时加载 bundle

    项目中需要在 karaf 中集成 cxf-dosgi-discovery-distributed 特性,所以需要在 karaf 开启时启动 cxf-dosgi-discovery-distributed 的 feature,只需要在 etc/org.apache.karaf.features.cfg 中加入如下的片段即可:

    featuresRepositories=mvn:org.apache.karaf.features/standard/3.0.3/xml/features,mvn:org.apache.karaf.features/enterprise/3.0.3/xml/features,mvn:org.ops4j.pax.web/pax-web-features/3.1.4/xml/features,mvn:org.apache.karaf.features/spring/3.0.3/xml/features,mvn:org.apache.cxf.dosgi/cxf-dosgi/1.6.0/xml/features
    
    featuresBoot=config,standard,region,package,kar,ssh,management,cxf-dosgi-discovery-distributed
    

    其中:“mvn:org.apache.cxf.dosgi/cxf-dosgi/1.6.0/xml/features” 和 “cxf-dosgi-discovery-distributed” 为加入的部分。

    上述配置以后,karaf 启动时就会从 maven 仓库下载所需要的 feature 并启动。
    但是这样需要每次都从 maven 仓库中取,网络状况不好的时候很费时。最好的方式是把这些 feature 都放在本地。幸好 karaf 的 system 目录就是专干这个的。可以把 feature 相关的 bundle 都放在 system 中,这样就不再需要去 maven 仓库中取了。

    2. karaf-maven-plugin 制作本地 feature 仓库

    利用 karaf-maven-plugin 的 features-add-to-repository 即可实现:

    <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>3.0.3</version>
        <executions>
            <execution>
                <id>features-add-to-repo</id>
                <phase>generate-resources</phase>
                <goals>
                    <goal>features-add-to-repository</goal>
                </goals>
                <configuration>
                    <descriptors>
                        <descriptor>mvn:org.apache.cxf.dosgi/cxf-dosgi/1.6.0/xml/features</descriptor>
                        <descriptor>mvn:org.apache.karaf.features/standard/3.0.3/xml/features</descriptor>
                    </descriptors>
                    <features>
                        <feature>http-whiteboard</feature>
                        <feature>cxf-dosgi-discovery-distributed</feature>
                    </features>
                    <repository>target/features-repo</repository>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    生成的 maven 结构的目录会放在 target/features-repo 中,只需要把里面的目录原封不动拷贝到 karaf 的 system 目录下即可。下次启动时 feature 就会从这里面获取了。

  • 相关阅读:
    静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)
    SQLLITE
    SQLite数据表和视图
    SQLite
    DELPHI 泛型
    indy10 学习2
    indy10 线程池
    indy
    Indy10 控件的使用(2)TidTCpServer组件学习
    Socket心跳包机制
  • 原文地址:https://www.cnblogs.com/binarylei/p/8628251.html
Copyright © 2011-2022 走看看