我对equinox和OSGI版本有很多怀疑。如果有人能帮助我理解这一点,将会非常有帮助。
1)OSGI版本和Eclipse Equinox版本是否不同? (我想是的) 2)如果我正在运行一些使用equinox容器的项目,那么如何找到该项目正在使用的equinox容器版本?
MO:我在运行项目的eclipse中尝试了osgs控制台中的'ss'命令,它显示了不同类型的jar org.eclipse.equinox.common.3.6v,org.eclipse.equinox.jetty.1.6v等等这是否意味着eclipse equinox的版本是3.6,它附加在常见的jar后面? 要么 就是这样,Equinox带有eclipse,它的版本完全依赖于Eclipse Version。说Equinox 4.5是一个包含公共汽车,码头,注册表的罐子,它们有自己的版本?确认?3)什么是equinox容器?我们如何在equinox容器中运行应用程序。
答案 0 :(得分:4)
OSGi是一个规范,Equinox是本规范的一个实现,如Felix或Knopflerfish。
Equinox的版本与规范的版本不匹配。当前版本的equinox if 3.10,它实现了osgi r6(afaik)。
您可以通过查看ID为" 0"的捆绑包,查看您正在使用的OSGi实施版本。它是导出JRE和OSGi API的系统包。在Equinox中,您可以使用命令b 0
或headers 0
:
在Karaf中,命令headers 0
输出如下内容:
OSGi System Bundle (0)
----------------------
Archiver-Version = Plexus Archiver
Build-Jdk = 1.7.0_51
Built-By = e4Build
Created-By = Apache Maven 3.1.1
Eclipse-BundleShape = jar
Eclipse-ExtensibleAPI = true
Eclipse-SourceReferences = scm:git:git://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git;path="bundles/org.eclipse.osgi";tag="M20150204-0900";commitId=ddc1d34dfb9d45074257a5f147900781ff7ab8da
Eclipse-SystemBundle = true
Main-Class = org.eclipse.core.runtime.adaptor.EclipseStarter
Manifest-Version = 1.0
Bundle-Activator = org.eclipse.osgi.internal.framework.SystemBundleActivator
Bundle-Copyright = Copyright (c) 2003, 2014 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and i
s available at http://www.eclipse.org/legal/epl-v10.html
Bundle-Description = OSGi System Bundle
Bundle-DocUrl = http://www.eclipse.org
Bundle-Localization = systembundle
Bundle-ManifestVersion = 2
Bundle-Name = OSGi System Bundle
Bundle-SymbolicName = org.eclipse.osgi; singleton:=true
Bundle-Vendor = Eclipse.org - Equinox
Bundle-Version = 3.10.2.v20150203-1939
您可以在标题Bundle-Version = 3.10.2.v20150203-1939