qos-ch / slf4j

Simple Logging Facade for Java
http://www.slf4j.org
MIT License
2.32k stars 980 forks source link

load slf4j 2.0.x Exceptions in OSGI , the version number and check mode are incorrect. #412

Open yuhJohn opened 4 months ago

yuhJohn commented 4 months ago

Failed to load slf4j-api in the OSIG environment.

ERROR log : Unresolved requirement: Import-Package: org.slf4j -> Export-Package: org.slf4j; bundle-symbolic-name="slf4j.api"; bundle-version="2.0.12"; version="1.7.36" slf4j.api [9] Unresolved requirement: Require-Capability: osgi.extender; filter:="(&(osgi.extender=osgi.serviceloader.processor)(version>=1.0.0)(!(version>=2.0.0)))" Unresolved requirement: Import-Package: org.slf4j.helpers -> Export-Package: org.slf4j.helpers; bundle-symbolic-name="slf4j.api"; bundle-version="2.0.12"; version="1.7.36"

in parent pom.xml slf4j-master/slf4j-master/parent/pom.xml <latest.1.version>1.7.36</latest.1.version>

in slf4j-api pom.xml

<plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Import-Package>org.slf4j.spi;version="${range;[===,+);${version_cleanup;${project.version}}}"</Import-Package>
            <!-- Export the client/user package of slf4j-api version 1 to make the slf4j-api bundle in version 2 usable for bundles that only import slf4j-1.x -->
            <_exportcontents><![CDATA[
              *,\
              **org.slf4j;version="${latest.1.version}",\
              org.slf4j.helpers;version="${latest.1.version}"**
            ]]></_exportcontents>
            <Require-Capability><![CDATA[
              **osgi.extender;filter:="(&(osgi.extender=osgi.serviceloader.processor)(version>=1.0.0)(!(version>=2.0.0)))",**
              osgi.serviceloader;filter:="(osgi.serviceloader=org.slf4j.spi.SLF4JServiceProvider)";osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider"
            ]]></Require-Capability>
          </instructions>
        </configuration>
      </plugin>

Please help to check the verification logic of the version number and filter. Thanks