2013-02-19 71 views
1

我有,随着可选的分辨率,无指定版本中导入一个包(org.objectweb.asm)束(新泽西服务器):OSGi - 是否可以使用片段覆盖bundle的导入包版本?

org.objectweb.asm;resolution:=optional 

目前,我们的应用程序部署到Apache Karaf(使用春分框架) ,导出该软件包的新版本(org.objectweb.asm),即版本4.0。我试图解决的问题是,由于泽西服务器软件包没有指定该软件包的版本,因此将其连接到4.0。但是,我使用的泽西服务器版本(1.12)与此版本不兼容。我在容器中有一个3.1版本的包,我需要泽西服务器包来连接。

我试图使用一个片段来满足我的需求,但它似乎没有工作。我不完全了解如何在Equinox(或Felix)中使用片段导入包解决冲突解决方案来知道我试图做什么甚至是可能的。也许还有另一种方式?

回答

1

不,片段只是加法的。即他们可以将额外的导入添加到主机包中,但不能替换或删除主机的导入。

jersey-server捆绑被简单破坏,必须修复。

+1

以及它的工作原理虽然:) – 2013-02-19 12:26:40

+1

我担心这是事实。在我的搜索中,我看到了关于片段分辨率实现细节的各种信息,并希望我能解决这个问题。我想我只需要用我自己的清单创建一个新的'jersey-server'包... – Joe 2013-02-19 14:01:29

+1

@AchimNierbeck那么它只有在你幸运地用它的依赖关系的正确版本部署它时才有效。 OSGi的目的是什么......你可能只是使用类路径;-) – 2013-02-19 23:28:18

相关问题