OSGi捆绑存储库(如何在服务器上托管它们)?

OSGi捆绑存储库(如何在服务器上托管它们)?,osgi,Osgi,我想发布一个产品,它仅仅是一个配置好的OSGi容器。当容器启动时,它应该根据容器的配置下载并安装应用程序——包括应用程序所有功能的最新捆绑包。当应用程序的较新版本可用时,我希望应用程序自动下载并更新/安装捆绑包的较新版本,以便最终用户能够无缝地看到它 基于ApacheFelixOSGibundle存储库文档(目前已经过时)的详细信息,我认为这就是OBR的目的。对吗 如果没有,那么对于这种情况有什么解决方案 如果是: OBR存储库是什么样子的?我设想它看起来有点像一个maven存储库,可以通过In

我想发布一个产品,它仅仅是一个配置好的OSGi容器。当容器启动时,它应该根据容器的配置下载并安装应用程序——包括应用程序所有功能的最新捆绑包。当应用程序的较新版本可用时,我希望应用程序自动下载并更新/安装捆绑包的较新版本,以便最终用户能够无缝地看到它

基于ApacheFelixOSGibundle存储库文档(目前已经过时)的详细信息,我认为这就是OBR的目的。对吗

如果没有,那么对于这种情况有什么解决方案

如果是:

  • OBR存储库是什么样子的?我设想它看起来有点像一个maven存储库,可以通过Internet通过一个描述存储库中可用捆绑包的XML文件进行访问

  • 如何管理可以从Internet访问的存储库

  • 上述文件指出:

    OBR“存储库服务器”不是必需的,因为所有功能都可能驻留在客户端

    但我假设确实存在一些“OBR存储库服务器”,用于那些应该可以从Internet访问的存储库。在本例中,我希望存储库不位于客户端,而是位于服务器上,这样客户端就可以轻松更新。为了实现这一点,我是否只需要设置一个HTTP服务器,该服务器承载1)一些描述存储库中可用捆绑包的xml文件,以及2)捆绑包


    最后,是否有一个简单的例子来说明所有这些是如何协同工作的?

    您的理解完全正确。使用OBR时要注意的主要问题是,当SOE规范最终确定时,XML格式发生了很大变化。有时“OBR支持”指旧样式,有时指新样式。只要客户机和服务器是一致的,两者都可以。新的格式更加丰富,但目前旧样式得到了更广泛的支持

    要设置自己的http主机,可以使用(以前称为bindex)。ApacheAries也有一个

    将“索引”目标与maven bundle插件结合使用将生成OBR元数据,以及

    最后,如果您不想直接管理http服务器,Nexus和Karaf Cave提供了OBR存储库托管


    您可能也会发现这个问题很有帮助:

    这是我为一个用Maven编译的项目所做的一次

    您需要的:

    • 用于部署jar文件的Maven存储库(如Sonatype Nexus)

    • 用于上载repository.xml文件的ftp或webDAV服务器(Nexus Pro可以这样做,但您必须付费…)

    在我的POM文件中,我添加了以下内容

    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.7</version>
            <extensions>true</extensions>
            <executions>
                <execution>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <remoteOBR>repository.xml</remoteOBR>
                <altDeploymentRepository>my.obr.name::default::ftp://obr.example.com</altDeploymentRepository>
                <prefixUrl>http://my.maven.repository.com/content/groups/public</prefixUrl>
                <ignoreLock />
            </configuration>
    </plugin>
    
    我仍然存在的唯一问题是,repository.xml文件中没有列出依赖项

    也许您可以使用Eclipse Orbit来检索一些依赖项:

    但我还没有试过

    g! obr:repos add ftp://obr.example.com/repository.xml
    g! obr:deploy my-artifact