Skip to content

Commit 4ed9280

Browse files
committed
felix.log: Use OSGi annotations to produce OSGi MANIFEST.MF entries.
1 parent 7ea9a14 commit 4ed9280

5 files changed

Lines changed: 66 additions & 13 deletions

File tree

log/pom.xml

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<groupId>org.apache.felix</groupId>
2222
<artifactId>felix-parent</artifactId>
23-
<version>6</version>
23+
<version>9</version>
2424
<relativePath>../pom/pom.xml</relativePath>
2525
</parent>
2626
<modelVersion>4.0.0</modelVersion>
@@ -49,36 +49,58 @@
4949
<groupId>org.osgi</groupId>
5050
<artifactId>osgi.core</artifactId>
5151
<version>6.0.0</version>
52+
<scope>provided</scope>
53+
</dependency>
54+
<dependency>
55+
<groupId>org.osgi</groupId>
56+
<artifactId>org.osgi.service.cm</artifactId>
57+
<version>1.6.0</version>
58+
<scope>provided</scope>
5259
</dependency>
5360
<dependency>
5461
<groupId>org.osgi</groupId>
5562
<artifactId>org.osgi.service.log</artifactId>
5663
<version>1.5.0</version>
5764
</dependency>
65+
<dependency>
66+
<groupId>org.osgi</groupId>
67+
<artifactId>org.osgi.annotation.bundle</artifactId>
68+
<version>1.0.0</version>
69+
<scope>provided</scope>
70+
</dependency>
71+
<dependency>
72+
<groupId>org.osgi</groupId>
73+
<artifactId>org.osgi.annotation.versioning</artifactId>
74+
<version>1.0.0</version>
75+
<scope>provided</scope>
76+
</dependency>
77+
<dependency>
78+
<groupId>org.osgi</groupId>
79+
<artifactId>org.osgi.namespace.service</artifactId>
80+
<version>1.0.0</version>
81+
<scope>provided</scope>
82+
</dependency>
83+
<dependency>
84+
<groupId>org.osgi</groupId>
85+
<artifactId>org.osgi.service.component.annotations</artifactId>
86+
<version>1.5.1</version>
87+
<scope>provided</scope>
88+
</dependency>
5889
</dependencies>
5990
<build>
6091
<plugins>
6192
<plugin>
6293
<groupId>org.apache.felix</groupId>
6394
<artifactId>maven-bundle-plugin</artifactId>
64-
<version>3.5.0</version>
95+
<version>5.1.9</version>
6596
<extensions>true</extensions>
6697
<configuration>
6798
<instructions>
6899
<Export-Package>org.osgi.service.log,org.osgi.service.log.admin</Export-Package>
69-
<Private-Package>org.apache.felix.log</Private-Package>
70-
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
71-
<Bundle-Activator>${pom.artifactId}.Activator</Bundle-Activator>
100+
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
72101
<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
73102
<Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES</Include-Resource>
74-
<Require-Capability><![CDATA[
75-
osgi.service;filter:="(objectClass=org.osgi.service.cm.ConfigurationAdmin)";effective:=active
76-
]]></Require-Capability>
77-
<Provide-Capability><![CDATA[
78-
osgi.service;objectClass:List<String>="org.osgi.service.log.LogReaderService";uses:="org.osgi.service.log,org.osgi.service.log.admin",
79-
osgi.service;objectClass:List<String>="org.osgi.service.log.LogService,org.osgi.service.log.LoggerFactory";uses:="org.osgi.service.log,org.osgi.service.log.admin",
80-
osgi.service;objectClass:List<String>="org.osgi.service.log.admin.LoggerAdmin";uses:="org.osgi.service.log,org.osgi.service.log.admin"
81-
]]></Provide-Capability>
103+
<_reproducible>true</_reproducible>
82104
</instructions>
83105
</configuration>
84106
</plugin>

log/src/main/java/org/apache/felix/log/Activator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@
2121
import java.util.Dictionary;
2222
import java.util.Hashtable;
2323

24+
import org.osgi.annotation.bundle.Header;
25+
import org.osgi.annotation.bundle.Requirement;
2426
import org.osgi.framework.BundleActivator;
2527
import org.osgi.framework.BundleContext;
2628
import org.osgi.framework.Constants;
2729
import org.osgi.framework.ServiceRegistration;
30+
import org.osgi.namespace.service.ServiceNamespace;
31+
import org.osgi.resource.Namespace;
2832
import org.osgi.service.log.LogLevel;
2933
import org.osgi.service.log.LogReaderService;
3034
import org.osgi.service.log.LogService;
@@ -54,6 +58,10 @@
5458
* the historic log information. The default value is false.</dd>
5559
* </dl>
5660
*/
61+
@Header(name = Constants.BUNDLE_ACTIVATOR, value = "${@class}")
62+
@Requirement(namespace = ServiceNamespace.SERVICE_NAMESPACE,
63+
filter = "(objectClass=org.osgi.service.cm.ConfigurationAdmin)",
64+
effective = Namespace.EFFECTIVE_ACTIVE)
5765
public final class Activator implements BundleActivator
5866
{
5967
/** The name of the property that defines the maximum size of the log. */

log/src/main/java/org/apache/felix/log/LogReaderServiceImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.List;
2424
import java.util.Vector;
2525

26+
import org.osgi.annotation.bundle.Capability;
27+
import org.osgi.namespace.service.ServiceNamespace;
2628
import org.osgi.service.log.LogEntry;
2729
import org.osgi.service.log.LogListener;
2830
import org.osgi.service.log.LogReaderService;
@@ -37,6 +39,11 @@
3739
* notifications about {@link org.osgi.service.log.LogEntry} objects when they are created
3840
* through the {@link org.osgi.service.log.LogService}.
3941
*/
42+
@Capability(
43+
namespace = ServiceNamespace.SERVICE_NAMESPACE,
44+
attribute = { "objectClass:List<String>=\"org.osgi.service.log.LogReaderService\"" },
45+
uses = { LogReaderServiceImpl.class, LogReaderService.class }
46+
)
4047
final class LogReaderServiceImpl implements LogReaderService
4148
{
4249
/** The log implementation. */

log/src/main/java/org/apache/felix/log/LogServiceImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,23 @@
1818
*/
1919
package org.apache.felix.log;
2020

21+
import org.osgi.annotation.bundle.Capability;
2122
import org.osgi.framework.Bundle;
2223
import org.osgi.framework.ServiceReference;
24+
import org.osgi.namespace.service.ServiceNamespace;
2325
import org.osgi.service.log.LogService;
2426
import org.osgi.service.log.Logger;
27+
import org.osgi.service.log.LoggerFactory;
28+
import org.osgi.service.log.admin.LoggerAdmin;
2529

2630
/**
2731
* Implementation of the OSGi {@link LogService}.
2832
*/
33+
@Capability(
34+
namespace = ServiceNamespace.SERVICE_NAMESPACE,
35+
attribute = { "objectClass:List<String>=\"org.osgi.service.log.LogService,org.osgi.service.log.LoggerFactory\"" },
36+
uses = { LogServiceImpl.class, LogService.class, LoggerFactory.class, LoggerAdmin.class }
37+
)
2938
final class LogServiceImpl implements LogService
3039
{
3140
/** The bundle associated with this implementation. */

log/src/main/java/org/apache/felix/log/LoggerAdminImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,19 @@
2424
import java.util.concurrent.ConcurrentHashMap;
2525
import java.util.concurrent.ConcurrentMap;
2626

27+
import org.osgi.annotation.bundle.Capability;
2728
import org.osgi.framework.Bundle;
29+
import org.osgi.namespace.service.ServiceNamespace;
2830
import org.osgi.service.log.FormatterLogger;
2931
import org.osgi.service.log.Logger;
3032
import org.osgi.service.log.admin.LoggerAdmin;
3133
import org.osgi.service.log.admin.LoggerContext;
3234

35+
@Capability(
36+
namespace = ServiceNamespace.SERVICE_NAMESPACE,
37+
attribute = { "objectClass:List<String>=\"org.osgi.service.log.admin.LoggerAdmin\"" },
38+
uses = { LoggerAdminImpl.class, LoggerAdmin.class }
39+
)
3340
public class LoggerAdminImpl implements LoggerAdmin {
3441

3542
private final Log m_log;

0 commit comments

Comments
 (0)