• 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 就会从这里面获取了。

  • 相关阅读:
    ThinkCMF框架任意内容包含
    网站防篡改脚本
    Apache Solr Velocity模板远程代码执行
    BurpSuite Intruder模块匹配返回包内容
    Kibana<6.6.0代码执行漏洞复现
    Thinkphp远程代码执行 payload汇总
    常用端口 简洁版
    NISP二级笔记(一) 信息安全管理
    oracle 中的角色
    oracle 用户对象权限
  • 原文地址:https://www.cnblogs.com/binarylei/p/8628251.html
Copyright © 2020-2023  润新知