Folks,
My first shot at OSGi work for slf4j-api can be taken from here (not yet ready for pulling into the main repo):
Now the Felix Bundle plugin creates the manifest. It looks like below (not the plain manifest, but the output of analyzing with BND). As you can see all the issues I recently brought up are addressed, e.g. naming convention for Bundle-Symbolicname, execution environment bumped up to 1.4, etc.
As all the logging backends are fragments I excluded org.slf4j.impl package from imported packages. This means you can install the slf4j-api bundle in an OSGi container successfully without a backend. Not sure whether this is what we want.
Very important: The whole build still succeeds.
What do you think? Can we proceed this way?
Heiko
slf4j$ bnd print slf4j-api/target/slf4j-api-1.6.2-SNAPSHOT.jar
+++ Starting BND +++
[MANIFEST slf4j-api-1.6.2-SNAPSHOT.jar]
Bnd-LastModified 1284623539661
Build-Jdk 1.6.0_20
Built-By hseeberger
Bundle-Description The slf4j API
Bundle-ManifestVersion 2
Bundle-Name SLF4J API Module
Bundle-RequiredExecutionEnvironment J2SE-1.4
Bundle-SymbolicName org.slf4j.api
Bundle-Vendor QOS.ch
Bundle-Version 1.6.2.SNAPSHOT
Created-By Apache Maven Bundle Plugin
Export-Package org.slf4j.spi;uses:="org.slf4j";version="1.6.2.SNAPSHOT",org.slf4j.helpers;uses:="org.slf4j.spi,org.slf4j";version="1.6.2.SNAPSHOT",org.slf4j;uses:="org.slf4j.helpers,org.slf4j.spi";version="1.6.2.SNAPSHOT"
Ignore-Package org.slf4j.impl
Implementation-Title slf4j-api
Import-Package org.slf4j;version="[1.6.2.SNAPSHOT,1.7)",org.slf4j.helpers;version="[1.6.2.SNAPSHOT,1.7)",org.slf4j.spi;version="[1.6.2.SNAPSHOT,1.7)"
Manifest-Version 1.0
Tool Bnd-0.0.357
[IMPEXP]
Export-Package
org.slf4j {version=1.6.2.SNAPSHOT}
org.slf4j.helpers {version=1.6.2.SNAPSHOT}
org.slf4j.spi {version=1.6.2.SNAPSHOT}
[USES]
org.slf4j org.slf4j.helpers
org.slf4j.impl
org.slf4j.spi
org.slf4j.helpers org.slf4j
org.slf4j.spi
org.slf4j.spi org.slf4j