在servicemix中安装功能

时间:2013-10-17 08:57:23

标签: java maven apache-karaf apache-servicemix jtidy

我正在运行Apache servicemix 4.5.2。我想安装一个功能,即一个jar文件。 我想要的功能是jtidy

pom依赖是:

<dependency>
    <groupId>jtidy</groupId>
    <artifactId>jtidy</artifactId>
    <version>4aug2000r7-dev</version>
</dependency>

并且存储库是

http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar

我知道命令功能:安装webconsole ,但jtidy不在我的功能:列表中。我也尝试过使用addurl命令,但它没有用。 ( addurl mvn:http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev ) Karaf文档建议使用Features XML架构添加功能描述符,但遗憾的是链接已断开。

我知道我做的是下载jtidy.jar并将其复制到我的deploy目录。它有效,但我不认为这是正确的方法。

有人知道如何在servicemix中正确安装jtidy吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

安装功能和安装单个JAR或OSGi包之间存在差异。

功能在XML文件中定义。一个功能包括许多捆绑,配置,......安装在一起。请查看http://karaf.apache.org/manual/latest-2.3.x/users-guide/provisioning.html以了解有关Karaf功能的更多信息。

在这种情况下,您希望将单个JAR安装到容器中。您可以使用命令osgi:install执行此操作,然后使用指向JAR的URL(例如mvn:jtidy/jtidy/4aug2000r7-dev)。

但是,在您的情况下,还有一个复杂性。 jtidy本身不是OSGi包。添加必要的OSGi元数据的最简单方法是使用wrap:协议自动将OSGi元数据添加到JAR。

所以,为了解决问题 - 在Apache ServiceMix中安装此jtidy依赖项,您可以使用

osgi:install wrap:mvn:jtidy/jtidy/4aug2000r7-dev