Automate OSGi metadata creation and fix metadata for other slf4j-modules

Only use the maven-bundle-plugin to generate all OSGi metadata into
slf4j's Manifest.MF files. This unifies the resulting MANIFEST.MFs
that are currently partly generated and partly statically defined and
fixes the following aspects:

- Fix the package-export of slf4j-jdk-platform-logging (from
'slf4j.jdk.platform.logging' to 'org.slf4j.jdk.platform.logging')
- Import missing packages for slf4j-reload4j and log4j-over-slf4j
- Replace the deprecated 'Bundle-RequiredExecutionEnvironment' by a
corresponding required 'osgi.ee' capability
- Restores the exported packages of jcl-over-slf4j

Fixes https://jira.qos.ch/browse/SLF4J-578

Signed-off-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
This commit is contained in:
Hannes Wellmann 2023-01-12 23:13:47 +01:00 committed by Ceki Gülcü
parent 661869eeb2
commit df44ace9c3
15 changed files with 48 additions and 111 deletions

View File

@ -27,7 +27,7 @@
<properties> <properties>
<module-name>org.apache.commons.logging</module-name> <module-name>org.apache.commons.logging</module-name>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
@ -39,5 +39,19 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<_exportcontents>org.apache.commons.logging*;version=${jcl.version};-noimport:=true</_exportcontents>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View File

@ -1,9 +0,0 @@
Implementation-Title: jcl-over-slf4j
Bundle-ManifestVersion: 2
Bundle-SymbolicName: jcl.over.slf4j
Bundle-Name: jcl-over-slf4j
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.apache.commons.logging;version=1.2,
org.apache.commons.logging.impl;version=1.2
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, org.slf4j.spi;version=${parsedVersion.osgiVersion}

View File

@ -1,8 +1,2 @@
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: jul.to.slf4j
Bundle-Name: jul-to-slf4j
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.bridge;version=${parsedVersion.osgiVersion};uses:="org.slf4j,org.slf4j.spi"
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},org.slf4j.spi;version=${parsedVersion.osgiVersion}
Automatic-Module-Name: jul.to.slf4j Automatic-Module-Name: jul.to.slf4j

View File

@ -1,13 +1,5 @@
Implementation-Title: log4j-over-slf4j
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: log4j.over.slf4j
Bundle-Name: log4j-over-slf4j
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.apache.log4j;version=${reload4j.version}, Export-Package: org.apache.log4j;version=${reload4j.version},
org.apache.log4j.helpers;version=${reload4j.version}, org.apache.log4j.helpers;version=${reload4j.version},
org.apache.log4j.spi;version=${reload4j.version}, org.apache.log4j.spi;version=${reload4j.version},
org.apache.log4j.xml;version=${reload4j.version} org.apache.log4j.xml;version=${reload4j.version}
Import-Package: org.slf4j;version=${slf4j.api.minimum.compatible.version},
org.slf4j.helpers;version=${slf4j.api.minimum.compatible.version},
org.slf4j.spi;version=${slf4j.api.minimum.compatible.version}

View File

@ -37,8 +37,27 @@
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId> <artifactId>slf4j-simple</artifactId>
<version>${project.version}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-SymbolicName>org.slf4j.osgi-over-slf4j</Bundle-SymbolicName>
<Bundle-Activator>org.slf4j.osgi.logservice.impl.Activator</Bundle-Activator>
<Bundle-Category>osgi</Bundle-Category>
<_exportcontents combine.self="override" />
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View File

@ -1,8 +0,0 @@
Implementation-Title: osgi-over-slf4j
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.slf4j.osgi-over-slf4j
Bundle-Name: OSGi LogService implemented over SLF4J
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-Activator: org.slf4j.osgi.logservice.impl.Activator
Bundle-Category: osgi
Import-Package: org.osgi.framework;version="[1.5,2)",org.osgi.service.log;version="[1.3,2)",org.slf4j;version=${parsedVersion.osgiVersion}

19
pom.xml
View File

@ -44,10 +44,10 @@
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding> <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- used in integration testing --> <!-- used in integration testing -->
<slf4j.api.minimum.compatible.version>1.6.0</slf4j.api.minimum.compatible.version>
<cal10n.version>0.8.1</cal10n.version> <cal10n.version>0.8.1</cal10n.version>
<reload4j.version>1.2.22</reload4j.version> <reload4j.version>1.2.22</reload4j.version>
<logback.version>1.2.10</logback.version> <logback.version>1.2.10</logback.version>
<jcl.version>1.2</jcl.version>
<junit.version>4.13.1</junit.version> <junit.version>4.13.1</junit.version>
<maven-site-plugin.version>3.7.1</maven-site-plugin.version> <maven-site-plugin.version>3.7.1</maven-site-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
@ -58,8 +58,6 @@
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
<maven-jxr-plugin.version>3.1.1</maven-jxr-plugin.version> <maven-jxr-plugin.version>3.1.1</maven-jxr-plugin.version>
<maven-bundle-plugin.version>5.1.8</maven-bundle-plugin.version> <maven-bundle-plugin.version>5.1.8</maven-bundle-plugin.version>
<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
</properties> </properties>
<developers> <developers>
@ -308,21 +306,6 @@
</executions> </executions>
</plugin> </plugin>
<!-- as suggested in http://jira.qos.ch/browse/SLF4J-143 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId> <artifactId>maven-site-plugin</artifactId>

View File

@ -73,8 +73,19 @@
</archive> </archive>
</configuration> </configuration>
</plugin> </plugin>
</plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Import-Package>ch.qos.cal10n;version="${cal10n.version}";resolution:="optional", org.slf4j, org.slf4j.*</Import-Package>
<_exportcontents>org.slf4j.ext, org.slf4j.profiler, org.slf4j.cal10n</_exportcontents>
</instructions>
</configuration>
</plugin>
</plugins>
</build> </build>
</project> </project>

View File

@ -1,8 +0,0 @@
Implementation-Title: slf4j-ext
Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.ext
Bundle-Name: slf4j-ext
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.profiler;version=${parsedVersion.osgiVersion}, org.slf4j.cal10n;version=${parsedVersion.osgiVersion}, org.slf4j.ext;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}, org.slf4j.spi;version=${parsedVersion.osgiVersion}, org.slf4j.helpers;version=${parsedVersion.osgiVersion}, ch.qos.cal10n;version=${cal10n.version};resolution:=optional

View File

@ -1,9 +0,0 @@
Implementation-Title: slf4j-jdk-platform-logging
Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.jdk.platform.logging
Bundle-Name: slf4j-jdk-platform-logging
Bundle-Vendor: SLF4J.ORG
Require-Bundle: slf4j.api
Bundle-RequiredExecutionEnvironment: JavaSE-9
Export-Package: slf4j.jdk.platform.logging;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion}

View File

@ -1,14 +1,4 @@
Implementation-Title: slf4j-jdk14
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.jdk14
Bundle-Name: slf4j-jdk14
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.jul;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},
org.slf4j.spi;version=${parsedVersion.osgiVersion},
org.slf4j.helpers;version=${parsedVersion.osgiVersion},
org.slf4j.event;version=${parsedVersion.osgiVersion}
Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s
pi.SLF4JServiceProvider";type=jul;effective:=active,osgi.serviceloade pi.SLF4JServiceProvider";type=jul;effective:=active,osgi.serviceloade
r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:=" r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="

View File

@ -1,14 +1,4 @@
Implementation-Title: slf4j-nop
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.nop
Bundle-Name: slf4j-nop
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.nop;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},
org.slf4j.spi;version=${parsedVersion.osgiVersion},
org.slf4j.helpers;version=${parsedVersion.osgiVersion},
org.slf4j.event;version=${parsedVersion.osgiVersion}
Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s
pi.SLF4JServiceProvider";type=nop;effective:=active,osgi.serviceloade pi.SLF4JServiceProvider";type=nop;effective:=active,osgi.serviceloade
r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:=" r;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="

View File

@ -1,15 +1,4 @@
Implementation-Title: slf4j-reload4j
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.reload4j
Bundle-Name: slf4j-reload4j
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.reload4j;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},
org.slf4j.spi;version=${parsedVersion.osgiVersion},
org.slf4j.helpers;version=${parsedVersion.osgiVersion},
org.slf4j.event;version=${parsedVersion.osgiVersion},
org.apache.log4j
Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s
pi.SLF4JServiceProvider";type=reload4j;effective:=active,osgi.service pi.SLF4JServiceProvider";type=reload4j;effective:=active,osgi.service
loader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";regist loader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";regist

View File

@ -1,15 +1,4 @@
Implementation-Title: slf4j-simple
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.simple
Bundle-Name: slf4j-simple
Bundle-Vendor: SLF4J.ORG
Require-Bundle: slf4j.api
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.slf4j.simple;version=${parsedVersion.osgiVersion}
Import-Package: org.slf4j;version=${parsedVersion.osgiVersion},
org.slf4j.spi;version=${parsedVersion.osgiVersion},
org.slf4j.helpers;version=${parsedVersion.osgiVersion},
org.slf4j.event;version=${parsedVersion.osgiVersion}
Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s Provide-Capability: osgi.service;objectClass:List<String>="org.slf4j.s
pi.SLF4JServiceProvider";type=simple;effective:=active,osgi.servicelo pi.SLF4JServiceProvider";type=simple;effective:=active,osgi.servicelo
ader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register ader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register