Community
Participate
Working Groups
Build Identifier: org.eclipse.osgi_3.6.1.R36x_v20100806 Equinox does not complain when you install a plain old JAR lacking the required OSGi manifest headers. Bundle-SymbolicName is mandatory according to the OSGi 4.2 Core Spec. You can even start a non-bundle. The Equinox shell lists each such non-bundle under the name of "unknown_0.0.0". After installing multiple non-bundles, ss <id> with the id of any given non-bundle will list _all_ non-bundles. (This may sound contrived, but I ran into this working with Glassfish 3.1 which indeed installs 5 non-bundles.) Reproducible: Always Steps to Reproduce: java -jar org.eclipse.osgi_XXX.jar osgi> install file:/path/to/plainOld.jar osgi> install file:/path/to/anotherPlainOld.jar osgi> start 1 2 osgi> ss Framework is launched. id State Bundle 0 ACTIVE org.eclipse.osgi_3.6.1.R36x_v20100806 1 ACTIVE unknown_0.0.0 [1] 2 ACTIVE unknown_0.0.0 [2] osgi> ss 1 Framework is launched. id State Bundle 1 ACTIVE unknown_0.0.0 [1] 2 ACTIVE unknown_0.0.0 [2]
(In reply to comment #0) > Equinox does not complain when you install a plain old JAR lacking the required > OSGi manifest headers. Bundle-SymbolicName is mandatory according to the OSGi > 4.2 Core Spec. > BSN is only required for Bundle-ManifestVersion: 2. So a plain old jar is a valid bundle in the R3 sense. Perhaps not very useful, but another bundle could load classes and resources from it via the Bundle methods. I suppose it would be useful for some warning if a jar is installed that contains no OSGi manifest headers. But, while unusual, it certainly is not an error.
As BJ points out, this is the spec'ed behavior of the OSGi framework.