Java OBR服务器实现

Java OBR服务器实现,java,osgi,obr,Java,Osgi,Obr,我在玩OSGi。据我所知,为了安装和启动捆绑包,您需要已经解决了它的依赖关系。由于手动安装其直接(和indrect)依赖项可能会很痛苦,因此引入了OBR 我使用Felix作为OSGi框架实现,我希望通过OBR(即guava库)自动解决捆绑包的依赖关系。正是出于这个原因,我在客户端上使用了org.apache.felix.bundlerepository 我不确定在服务器端该做什么。我找不到关于该做什么的可靠信息。我相信Felix可以很容易地在服务器上配置,以充当“OBR服务器”,但我不知道如何做

我在玩OSGi。据我所知,为了安装和启动捆绑包,您需要已经解决了它的依赖关系。由于手动安装其直接(和indrect)依赖项可能会很痛苦,因此引入了OBR

我使用Felix作为OSGi框架实现,我希望通过OBR(即guava库)自动解决捆绑包的依赖关系。正是出于这个原因,我在客户端上使用了
org.apache.felix.bundlerepository

我不确定在服务器端该做什么。我找不到关于该做什么的可靠信息。我相信Felix可以很容易地在服务器上配置,以充当“OBR服务器”,但我不知道如何做到这一点。 你能帮帮我吗?代码将被高度赞赏。如果您无法发布代码,请至少告诉我成功设置存储库所需的一般步骤(或链接资源)(如felix framework或其他实现此功能的软件所需的捆绑包)

我现在的设置:

  • 费利克斯
  • 霓虹灯
  • Maven for eclipse(1.7)

谢谢你的回复

有一个用于的OBR插件,它允许您提供与OBR兼容的存储库。它还可以用来代理现有的Maven存储库


但是,在设置您自己的存储库之前,您可能还需要了解它们的特性和解决依赖关系的方法。Bndtools还允许您依赖现有的Maven存储库,这些存储库不明确支持OBR。有一个解释了他们的方法的索引文件。

提供了一个OSGI捆绑包存储库。

OBR存储库的“服务器端”只是由一个索引文件组成,该文件又包含到捆绑包的URL链接。您可以在不使用任何特殊服务器软件的情况下提供此功能。例如,一台Apache或Nginx HTTP服务器就足够了。

您所说的“在服务器端”是什么意思?您想知道如何将捆绑包部署到OSGi实例,或者如何设置一个存储库,在解析依赖项(如maven存储库)时可以从中提取捆绑包?如果我不清楚,请原谅。我想建立一个存储库,在那里我可以从OSGi实例获取捆绑包来解决依赖关系。我知道OBR只包含在一个XML文件中,而且我知道有一些工具(如BNDTools或maven捆绑包插件),在开发中的项目中,它们可以生成正确的XML文件。但假设您需要添加其他依赖项(如“guava”库):手动创建这样的xml是愚蠢的。是否有工具可以帮助您自动添加数据?比如:“我想添加到我的OBR repo'com.google.guava:19.0'do'OBR add/home/koldar/com.google.guava.jar。生成索引的工具称为bindex。有很多方法可以使用它。最简单的是,只要您的repo内容发生更改,您就可以将其作为命令行工具运行。或者,有一些方法可以让文件在repo更改时自动生成索引,但这需要一些额外的服务器端逻辑。也许你可以说你希望它以什么方式工作,我会告诉你是否可以以及如何做到。它能在felix上运行吗?我知道框架实现可以为自己定义特定的配置(即Felix.Auto.Dealth.dir),它是捆绑包的集合,因此它当然可以在Felix上运行,但是您应该考虑使用它在Karaf容器中,更容易配置、管理和运行。使用开发中的捆绑包更新本地maven存储库中的OBR repo。但是第三方捆绑包(比如com.google.guava)呢?如果我下载源代码(如果有的话),创建一个maven项目并使用maven bundle插件来更新OBR repository.xml文件,那就太傻了。也许(也可能)我遗漏了什么。没有办法说“请在我的OBR存储库中添加以下bundle x.jar”。再次,如果我的问题不清楚,很抱歉