Skip to content

Commit

Permalink
Generate OSGi 'Service Loader Mediator' capabilities with bnd-annotation
Browse files Browse the repository at this point in the history
for all SLF4JServiceProvider implementations, which are loaded using the
ServiceLoader mechanism.

Signed-off-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
  • Loading branch information
HannesWell committed Dec 16, 2022
1 parent a3ec867 commit c6f8161
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 72 deletions.
6 changes: 6 additions & 0 deletions pom.xml
Expand Up @@ -98,6 +98,12 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bnd.annotation</artifactId>
<version>${bnd.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>

<dependencyManagement>
Expand Down
3 changes: 0 additions & 3 deletions slf4j-api/pom.xml
Expand Up @@ -59,9 +59,6 @@
<configuration>
<bnd><![CDATA[
Import-Package: org.slf4j.spi;${slf4j_self_import_version}
Require-Capability: \
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"
]]></bnd>
</configuration>
</plugin>
Expand Down
3 changes: 2 additions & 1 deletion slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
Expand Up @@ -46,7 +46,7 @@
import org.slf4j.helpers.Util;
import org.slf4j.spi.SLF4JServiceProvider;

import javax.accessibility.AccessibleComponent;
import aQute.bnd.annotation.spi.ServiceConsumer;

/**
* The <code>LoggerFactory</code> is a utility class producing Loggers for
Expand All @@ -66,6 +66,7 @@
* @author Ceki G&uuml;lc&uuml;
*
*/
@ServiceConsumer(SLF4JServiceProvider.class)
public final class LoggerFactory {

static final String CODES_PREFIX = "https://www.slf4j.org/codes.html";
Expand Down
20 changes: 0 additions & 20 deletions slf4j-jdk14/pom.xml
Expand Up @@ -35,24 +35,4 @@
</dependency>
</dependencies>

<build>
<plugins>

<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<configuration>
<bnd><![CDATA[
Provide-Capability: \
osgi.service;objectClass:List<String>="org.slf4j.spi.SLF4JServiceProvider";type=jul;effective:=active,\
osgi.serviceloader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="org.slf4j.jul.JULServiceProvider";type=jul
Require-Capability: \
osgi.extender;filter:="(&(osgi.extender=osgi.serviceloader.registrar)(version>=1.0.0)(!(version>=2.0.0)))"
]]></bnd>
</configuration>
</plugin>

</plugins>
</build>

</project>
Expand Up @@ -7,6 +7,9 @@
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;

import aQute.bnd.annotation.spi.ServiceProvider;

@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=jul" })
public class JULServiceProvider implements SLF4JServiceProvider {

/**
Expand All @@ -30,6 +33,7 @@ public IMarkerFactory getMarkerFactory() {
return markerFactory;
}

@Override
public MDCAdapter getMDCAdapter() {
return mdcAdapter;
}
Expand Down
20 changes: 0 additions & 20 deletions slf4j-nop/pom.xml
Expand Up @@ -28,24 +28,4 @@
</dependency>
</dependencies>

<build>
<plugins>

<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<configuration>
<bnd><![CDATA[
Provide-Capability: \
osgi.service;objectClass:List<String>="org.slf4j.spi.SLF4JServiceProvider";type=nop;effective:=active,\
osgi.serviceloader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="org.slf4j.nop.NOPServiceProvider";type=nop
Require-Capability: \
osgi.extender;filter:="(&(osgi.extender=osgi.serviceloader.registrar)(version>=1.0.0)(!(version>=2.0.0)))"
]]></bnd>
</configuration>
</plugin>

</plugins>
</build>

</project>
Expand Up @@ -8,6 +8,9 @@
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;

import aQute.bnd.annotation.spi.ServiceProvider;

@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=nop" })
public class NOPServiceProvider implements SLF4JServiceProvider {

/**
Expand All @@ -21,14 +24,17 @@ public class NOPServiceProvider implements SLF4JServiceProvider {
private final IMarkerFactory markerFactory = new BasicMarkerFactory();
private final MDCAdapter mdcAdapter = new NOPMDCAdapter();

@Override
public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}

@Override
public IMarkerFactory getMarkerFactory() {
return markerFactory;
}

@Override
public MDCAdapter getMDCAdapter() {
return mdcAdapter;
}
Expand All @@ -38,9 +44,9 @@ public String getRequestedApiVersion() {
return REQUESTED_API_VERSION;
}

@Override
public void initialize() {

}


}
5 changes: 0 additions & 5 deletions slf4j-reload4j/pom.xml
Expand Up @@ -66,11 +66,6 @@
Import-Package: \
org.apache.log4j;version="${range;[==,+)}",\
org.slf4j.*;${slf4j_self_import_version}
Provide-Capability: \
osgi.service;objectClass:List<String>="org.slf4j.spi.SLF4JServiceProvider";type=reload4j;effective:=active,\
osgi.serviceloader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="org.slf4j.reload4j.Reload4jServiceProvider";type=reload4j
Require-Capability: \
osgi.extender;filter:="(&(osgi.extender=osgi.serviceloader.registrar)(version>=1.0.0)(!(version>=2.0.0)))"
]]></bnd>
</configuration>
</plugin>
Expand Down
Expand Up @@ -8,6 +8,9 @@
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;

import aQute.bnd.annotation.spi.ServiceProvider;

@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=reload4j" })
public class Reload4jServiceProvider implements SLF4JServiceProvider {

/**
Expand Down Expand Up @@ -42,13 +45,11 @@ public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}


@Override
public IMarkerFactory getMarkerFactory() {
return markerFactory;
}


@Override
public MDCAdapter getMDCAdapter() {
return mdcAdapter;
Expand Down
20 changes: 0 additions & 20 deletions slf4j-simple/pom.xml
Expand Up @@ -35,24 +35,4 @@
</dependency>
</dependencies>

<build>
<plugins>

<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<configuration>
<bnd><![CDATA[
Provide-Capability: \
osgi.service;objectClass:List<String>="org.slf4j.spi.SLF4JServiceProvider";type=simple;effective:=active,\
osgi.serviceloader;osgi.serviceloader="org.slf4j.spi.SLF4JServiceProvider";register:="org.slf4j.simple.SimpleServiceProvider";type=simple
Require-Capability: \
osgi.extender;filter:="(&(osgi.extender=osgi.serviceloader.registrar)(version>=1.0.0)(!(version>=2.0.0)))"
]]></bnd>
</configuration>
</plugin>

</plugins>
</build>

</project>
Expand Up @@ -7,6 +7,9 @@
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;

import aQute.bnd.annotation.spi.ServiceProvider;

@ServiceProvider(value = SLF4JServiceProvider.class, attribute = { "type=simple" })
public class SimpleServiceProvider implements SLF4JServiceProvider {

/**
Expand All @@ -20,6 +23,7 @@ public class SimpleServiceProvider implements SLF4JServiceProvider {
private IMarkerFactory markerFactory;
private MDCAdapter mdcAdapter;

@Override
public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}
Expand Down

0 comments on commit c6f8161

Please sign in to comment.