问题1:-
我正在做一个大量使用OSGi的项目。我是OSGi新手。在我的项目中,我看到了equinox和knopflerfish/and或knopflerfish束的罐子。
问题2:-
我如何在Equinox和Knoplerfish中确定OSGI在我的项目中使用哪个容器?我假设OSGI不能同时使用这两个容器。
问题3:-
这个链接提到Equinox框架需要org.eclipse.osgi_
来实现OSGI核心。那么这是否意味着它不需要核心OSGI jar,来自OSGI网站的OSGI.core-6.0.0
。
equinox jarorg.eclipse.osgi_
是核心OSGI jarOSGI.core-6.0.0
的包装器吗?
equinox jarorg.eclipse.osgi_
和核心OSGI jarOSGI.core-6.0.0
之间是否存在任何关系和依赖关系,或者这两个jar是相互独立的?
问题4:-
假设我正在使用Equinox容器。并且我需要将我的项目更新到最新的OSGI版本。要将项目更新到最新的OSGI jar,我要用最新的jar替换哪个jar。
我是将Core OSGI jar
替换为[OSGI网站]最新的OSGI.core-6.0.0
(OSGI的最新版本),还是将equinox jarorg.eclipse.osgi_
更新为其最新版本?
OSGi.core-6.0.0是一个提供规范、接口和类的包,由OSGi联盟发布。jar是OSGi框架的equinox实现。
在OSGi中,提供API实现的包也嵌入相同的API是很常见的。对于equinox框架,情况就是这样。在jar中,您还可以找到core的所有API接口。
这样做主要是为了方便,所以人们可以只启动jar,而不必找到正确的API jar并部署它。
对于框架的升级,只需替换equinox jar。通常,equinox jar并不是唯一实现OSGi规范的jar。您可能还会有config admin服务的实现,可能还有Core外部的其他OSGi规范。要更新这些,还必须替换这些罐子。在大多数情况下,您可以单独更新它们,尽管它们通常可以很好地配合在一起。
我有一个java应用程序,其中启动Equinox OSGi容器(版本3.10.1.V20140909-1633)并加载apache catalina springsource包和其他相关包。下面是我的config.ini文件。 当我连接到OSGi控制台并使用命令列出所有包时,我看到以下结果 在这里,包和是片段包,其父包是。 我们可以看到这3个捆绑包都是刚刚安装的。当我尝试用命令手动启动包时,我看到
我试图在一个普通的Java应用程序中运行多个Equinox实例。 目前,我正在我的应用程序中启动Equinox的一个实例,使用: 然而,对于一个需要大量捆绑包启动、停止和更新的新用例来说,这种方法已经不够了。 相反,我希望能够同时持有两个安装了不同bundle的框架,并在必要时在它们之间进行交换。在某些情况下,我仍然需要停止并重新启动一些捆绑包,但这样的方法可以解决大部分问题。 你知道我怎么能建立
Knopflerfish项目的目的是实现相关OSGI技术规范并提供易于使用,开源的OSGI开发工具与应用程序。
我试图在OSGi容器中添加一个BundleWatcher钩子,这样我就可以在包加载时监视它们。我在config.ini中做了以下更改, > 在osgi.bundles属性中添加了对我的jar的引用,如下所示,osgi.bundles=,reference\:file\:../lib/my.jar@2:start 设置属性osgi.framework.extensions=mybundle 在osg
我有一个OSGI应用程序,其包需要两个版本的IBM MQSeries:6.0.2和7.0.1。我们安装了以下IBM MQ包(仅提及主要包) Bundle B 我们还定义了。没有伙伴类加载,没有动态类加载。 现在,当Bundle A加载时,使用 我希望Equinox从包加载该类。事实并非如此!?!??MQQueueConnectionFactory是从Bundle加载的!! 因此,包A使用MQ 6.
我对equinox和OSGI版本有很多疑问。如果有人能帮助我理解这一点,那将是非常有帮助的。 1)OSGI版本和Eclipse Equinox版本不同吗?(我想是的)2)如果我运行的项目使用Equinox容器,那么如何找到该项目使用的是哪个版本的Equinox容器? MO:在运行的项目中,我在eclipse的osgi控制台中尝试了'ss'命令,它显示了不同类型的jar org.eclipse.eq