This is an automated email from the ASF dual-hosted git repository.

stbischof pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git

commit 9db6a2288f7c03704529b8272457bfffe840222c
Author: Vaclav Haisman <[email protected]>
AuthorDate: Wed Dec 11 23:57:29 2024 +0100

    felix.log: Use OSGi annotations to produce OSGi MANIFEST.MF entries.
---
 log/pom.xml                                        | 49 ++++++++++++++++------
 .../main/java/org/apache/felix/log/Activator.java  |  8 ++++
 .../org/apache/felix/log/LogReaderServiceImpl.java |  7 ++++
 .../java/org/apache/felix/log/LogServiceImpl.java  |  9 ++++
 .../java/org/apache/felix/log/LoggerAdminImpl.java |  7 ++++
 5 files changed, 67 insertions(+), 13 deletions(-)

diff --git a/log/pom.xml b/log/pom.xml
index 70b132a877..9ee6fe0a4c 100644
--- a/log/pom.xml
+++ b/log/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>6</version>
+    <version>9</version>
     <relativePath>../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -49,36 +49,59 @@
       <groupId>org.osgi</groupId>
       <artifactId>osgi.core</artifactId>
       <version>6.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.cm</artifactId>
+      <version>1.6.0</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>org.osgi.service.log</artifactId>
       <version>1.5.0</version>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.annotation.bundle</artifactId>
+      <version>1.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
+      <version>1.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.namespace.service</artifactId>
+      <version>1.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component.annotations</artifactId>
+      <version>1.5.1</version>
+      <scope>provided</scope>
+    </dependency>
    </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
-        <version>3.5.0</version>
+        <version>5.1.9</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
             
<Export-Package>org.osgi.service.log,org.osgi.service.log.admin</Export-Package>
-            <Private-Package>org.apache.felix.log</Private-Package>
-            <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
-            <Bundle-Activator>${pom.artifactId}.Activator</Bundle-Activator>
+            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
             
<Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES</Include-Resource>
-            <Require-Capability><![CDATA[
-                
osgi.service;filter:="(objectClass=org.osgi.service.cm.ConfigurationAdmin)";effective:=active
-            ]]></Require-Capability>
-            <Provide-Capability><![CDATA[
-                
osgi.service;objectClass:List<String>="org.osgi.service.log.LogReaderService";uses:="org.osgi.service.log,org.osgi.service.log.admin",
-                
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",
-                
osgi.service;objectClass:List<String>="org.osgi.service.log.admin.LoggerAdmin";uses:="org.osgi.service.log,org.osgi.service.log.admin"
-            ]]></Provide-Capability>
+            <_reproducible>true</_reproducible>
+            <niceManifest>true</niceManifest>
           </instructions>
         </configuration>
       </plugin>
diff --git a/log/src/main/java/org/apache/felix/log/Activator.java 
b/log/src/main/java/org/apache/felix/log/Activator.java
index b1c0a50033..e88d600f1b 100644
--- a/log/src/main/java/org/apache/felix/log/Activator.java
+++ b/log/src/main/java/org/apache/felix/log/Activator.java
@@ -21,10 +21,14 @@ package org.apache.felix.log;
 import java.util.Dictionary;
 import java.util.Hashtable;
 
+import org.osgi.annotation.bundle.Header;
+import org.osgi.annotation.bundle.Requirement;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.namespace.service.ServiceNamespace;
+import org.osgi.resource.Namespace;
 import org.osgi.service.log.LogLevel;
 import org.osgi.service.log.LogReaderService;
 import org.osgi.service.log.LogService;
@@ -54,6 +58,10 @@ import org.osgi.service.log.admin.LoggerContext;
  *       the historic log information. The default value is false.</dd>
  * </dl>
  */
+@Header(name = Constants.BUNDLE_ACTIVATOR, value = "${@class}")
+@Requirement(namespace = ServiceNamespace.SERVICE_NAMESPACE,
+             filter = "(objectClass=org.osgi.service.cm.ConfigurationAdmin)",
+             effective = Namespace.EFFECTIVE_ACTIVE)
 public final class Activator implements BundleActivator
 {
     /** The name of the property that defines the maximum size of the log. */
diff --git a/log/src/main/java/org/apache/felix/log/LogReaderServiceImpl.java 
b/log/src/main/java/org/apache/felix/log/LogReaderServiceImpl.java
index d5ce5f4823..46547df7a4 100644
--- a/log/src/main/java/org/apache/felix/log/LogReaderServiceImpl.java
+++ b/log/src/main/java/org/apache/felix/log/LogReaderServiceImpl.java
@@ -23,6 +23,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
+import org.osgi.annotation.bundle.Capability;
+import org.osgi.namespace.service.ServiceNamespace;
 import org.osgi.service.log.LogEntry;
 import org.osgi.service.log.LogListener;
 import org.osgi.service.log.LogReaderService;
@@ -37,6 +39,11 @@ import org.osgi.service.log.LogReaderService;
  * notifications about {@link org.osgi.service.log.LogEntry} objects when they 
are created
  * through the {@link org.osgi.service.log.LogService}.
  */
+@Capability(
+        namespace = ServiceNamespace.SERVICE_NAMESPACE,
+        attribute = { 
"objectClass:List<String>=\"org.osgi.service.log.LogReaderService\"" },
+        uses = { LogReaderServiceImpl.class, LogReaderService.class }
+)
 final class LogReaderServiceImpl implements LogReaderService
 {
     /** The log implementation. */
diff --git a/log/src/main/java/org/apache/felix/log/LogServiceImpl.java 
b/log/src/main/java/org/apache/felix/log/LogServiceImpl.java
index 7a9acf3282..3a838806e7 100644
--- a/log/src/main/java/org/apache/felix/log/LogServiceImpl.java
+++ b/log/src/main/java/org/apache/felix/log/LogServiceImpl.java
@@ -18,14 +18,23 @@
  */
 package org.apache.felix.log;
 
+import org.osgi.annotation.bundle.Capability;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceReference;
+import org.osgi.namespace.service.ServiceNamespace;
 import org.osgi.service.log.LogService;
 import org.osgi.service.log.Logger;
+import org.osgi.service.log.LoggerFactory;
+import org.osgi.service.log.admin.LoggerAdmin;
 
 /**
  * Implementation of the OSGi {@link LogService}.
  */
+@Capability(
+        namespace = ServiceNamespace.SERVICE_NAMESPACE,
+        attribute = { 
"objectClass:List<String>=\"org.osgi.service.log.LogService,org.osgi.service.log.LoggerFactory\""
 },
+        uses = { LogServiceImpl.class, LogService.class, LoggerFactory.class, 
LoggerAdmin.class }
+)
 final class LogServiceImpl implements LogService
 {
     /** The bundle associated with this implementation. */
diff --git a/log/src/main/java/org/apache/felix/log/LoggerAdminImpl.java 
b/log/src/main/java/org/apache/felix/log/LoggerAdminImpl.java
index aa53e37f8d..400e91508c 100644
--- a/log/src/main/java/org/apache/felix/log/LoggerAdminImpl.java
+++ b/log/src/main/java/org/apache/felix/log/LoggerAdminImpl.java
@@ -24,12 +24,19 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
+import org.osgi.annotation.bundle.Capability;
 import org.osgi.framework.Bundle;
+import org.osgi.namespace.service.ServiceNamespace;
 import org.osgi.service.log.FormatterLogger;
 import org.osgi.service.log.Logger;
 import org.osgi.service.log.admin.LoggerAdmin;
 import org.osgi.service.log.admin.LoggerContext;
 
+@Capability(
+        namespace = ServiceNamespace.SERVICE_NAMESPACE,
+        attribute = { 
"objectClass:List<String>=\"org.osgi.service.log.admin.LoggerAdmin\"" },
+        uses = { LoggerAdminImpl.class, LoggerAdmin.class }
+)
 public class LoggerAdminImpl implements LoggerAdmin {
 
     private final Log m_log;

Reply via email to