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

kwin pushed a commit to branch feature/update-osgi-r7
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 6f2f05bdc7bc76f969998e7f4a3cd07cf9720c11
Author: Konrad Windszus <[email protected]>
AuthorDate: Mon Jul 3 20:33:01 2023 +0200

    OAK-9837 Update to individual OSGi R7 dependencies
    
    Update annotations to R7 as well
---
 oak-api/pom.xml                                    | 12 +------
 oak-auth-external/pom.xml                          |  8 ++---
 oak-authorization-cug/pom.xml                      |  9 ++---
 oak-authorization-principalbased/pom.xml           |  9 ++---
 oak-blob-cloud-azure/pom.xml                       |  9 +++--
 oak-blob-cloud/pom.xml                             |  9 +++--
 oak-blob-plugins/pom.xml                           | 17 ++++-----
 oak-blob/pom.xml                                   |  6 ++--
 oak-commons/pom.xml                                |  2 +-
 oak-core-spi/pom.xml                               |  6 ++--
 .../apache/jackrabbit/oak/osgi/OsgiWhiteboard.java |  6 ++--
 .../jackrabbit/oak/osgi/OsgiWhiteboardTest.java    |  4 +--
 oak-core/pom.xml                                   |  6 ++--
 .../plugins/metric/StatisticsProviderFactory.java  |  6 ++--
 oak-exercise/pom.xml                               | 12 +++----
 oak-http/pom.xml                                   | 12 -------
 oak-jcr/pom.xml                                    | 10 ++----
 .../jackrabbit/oak/jcr/osgi/RepositoryManager.java | 12 +++----
 oak-lucene/pom.xml                                 |  9 ++---
 oak-parent/pom.xml                                 | 40 +++++++++++++++-------
 oak-query-spi/pom.xml                              |  3 +-
 oak-search-elastic/pom.xml                         |  9 ++---
 oak-search-mt/pom.xml                              | 15 --------
 oak-search/pom.xml                                 | 12 +------
 oak-security-spi/pom.xml                           |  9 ++---
 oak-segment-aws/pom.xml                            |  9 ++---
 .../oak/segment/aws/AwsSegmentStoreService.java    |  6 ++--
 oak-segment-azure/pom.xml                          |  9 ++---
 .../segment/azure/AzureSegmentStoreService.java    |  3 +-
 oak-segment-remote/pom.xml                         |  6 ++--
 .../RemotePersistentCacheService.java              |  3 +-
 oak-segment-tar/pom.xml                            |  9 +++--
 .../segment/standby/store/StandbyStoreService.java |  4 +--
 oak-shaded-guava/pom.xml                           |  5 ---
 oak-solr-core/pom.xml                              |  5 ++-
 oak-solr-osgi/pom.xml                              |  9 +----
 oak-store-composite/pom.xml                        |  7 ++--
 .../composite/MountInfoProviderServiceTest.java    |  4 ++-
 oak-store-document/pom.xml                         |  7 ++--
 oak-store-spi/pom.xml                              |  7 +---
 40 files changed, 137 insertions(+), 208 deletions(-)

diff --git a/oak-api/pom.xml b/oak-api/pom.xml
index 37ea9a91d3..9e0c8c79fa 100644
--- a/oak-api/pom.xml
+++ b/oak-api/pom.xml
@@ -61,17 +61,7 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
 
diff --git a/oak-auth-external/pom.xml b/oak-auth-external/pom.xml
index 9c5b3def59..8820b1ebf2 100644
--- a/oak-auth-external/pom.xml
+++ b/oak-auth-external/pom.xml
@@ -61,12 +61,12 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -81,8 +81,8 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
-            <scope>provided</scope>        
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
         </dependency>
 
         <!-- Jackrabbit dependencies -->
diff --git a/oak-authorization-cug/pom.xml b/oak-authorization-cug/pom.xml
index 4321115db6..9ef85283b7 100644
--- a/oak-authorization-cug/pom.xml
+++ b/oak-authorization-cug/pom.xml
@@ -117,17 +117,12 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-authorization-principalbased/pom.xml 
b/oak-authorization-principalbased/pom.xml
index db29754887..adef1c42d9 100644
--- a/oak-authorization-principalbased/pom.xml
+++ b/oak-authorization-principalbased/pom.xml
@@ -59,17 +59,12 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/oak-blob-cloud-azure/pom.xml b/oak-blob-cloud-azure/pom.xml
index fa1e23d62c..f65dc654d2 100644
--- a/oak-blob-cloud-azure/pom.xml
+++ b/oak-blob-cloud-azure/pom.xml
@@ -58,12 +58,17 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/oak-blob-cloud/pom.xml b/oak-blob-cloud/pom.xml
index f97e1e4565..e83009b9ae 100644
--- a/oak-blob-cloud/pom.xml
+++ b/oak-blob-cloud/pom.xml
@@ -57,12 +57,17 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/oak-blob-plugins/pom.xml b/oak-blob-plugins/pom.xml
index 6f608bcf5d..05b2948457 100644
--- a/oak-blob-plugins/pom.xml
+++ b/oak-blob-plugins/pom.xml
@@ -50,17 +50,22 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.scr.annotations</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.scr.annotations</artifactId>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
 
@@ -196,10 +201,6 @@
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
-    </dependency>
 
   </dependencies>
 </project>
diff --git a/oak-blob/pom.xml b/oak-blob/pom.xml
index fb69c2e0f7..26ff309c95 100644
--- a/oak-blob/pom.xml
+++ b/oak-blob/pom.xml
@@ -52,17 +52,17 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-commons/pom.xml b/oak-commons/pom.xml
index 622a39d610..8b49c568b6 100644
--- a/oak-commons/pom.xml
+++ b/oak-commons/pom.xml
@@ -75,7 +75,7 @@
   <dependencies>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
 
diff --git a/oak-core-spi/pom.xml b/oak-core-spi/pom.xml
index a3ab8330dc..bf2180fa39 100644
--- a/oak-core-spi/pom.xml
+++ b/oak-core-spi/pom.xml
@@ -85,17 +85,17 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
 
diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java
index bba5d22649..14aef03df7 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java
@@ -69,13 +69,13 @@ public class OsgiWhiteboard implements Whiteboard {
         Objects.requireNonNull(properties);
         checkArgument(type.isInstance(service));
 
-        Dictionary<Object, Object> dictionary = new Hashtable<Object, 
Object>();
+        Dictionary<String, Object> dictionary = new Hashtable<>();
         for (Map.Entry<?, ?> entry : properties.entrySet()) {
-            dictionary.put(entry.getKey(), entry.getValue());
+            dictionary.put((String)entry.getKey(), entry.getValue());
         }
 
         final ServiceRegistration registration =
-                context.registerService(type.getName(), service, dictionary);
+                context.registerService(type, service, dictionary);
         return new Registration() {
             private volatile boolean unregistered;
             @Override
diff --git 
a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboardTest.java
 
b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboardTest.java
index ffef1290ad..469806ca84 100644
--- 
a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboardTest.java
+++ 
b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboardTest.java
@@ -72,8 +72,8 @@ public class OsgiWhiteboardTest {
         };
 
         when(
-                bundleContext.registerService(Runnable.class.getName(), r,
-                        new Hashtable<Object, Object>())).thenReturn(sr);
+                bundleContext.registerService(Runnable.class, r,
+                        new Hashtable<String, Object>())).thenReturn(sr);
         Registration reg = w.register(Runnable.class, r,
                 new HashMap<String, Object>());
         reg.unregister();
diff --git a/oak-core/pom.xml b/oak-core/pom.xml
index b2bd9a024f..bcfd11f751 100644
--- a/oak-core/pom.xml
+++ b/oak-core/pom.xml
@@ -214,17 +214,17 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
index 6d04f0b814..d686d2bb6f 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
@@ -47,6 +47,8 @@ import org.osgi.service.metatype.annotations.Option;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.codahale.metrics.MetricRegistry;
+
 /**
  * Factory to create StatisticsProvider depending on setup. It detects if the
  * <a href="http://metrics.dropwizard.io";>Metrics</a> library is present or 
not. If present
@@ -146,9 +148,9 @@ public class StatisticsProviderFactory {
     private StatisticsProvider createMetricsProvider(ScheduledExecutorService 
executor) {
         org.apache.jackrabbit.oak.plugins.metric.MetricStatisticsProvider 
metricProvider =
          new 
org.apache.jackrabbit.oak.plugins.metric.MetricStatisticsProvider(server, 
executor);
-        Dictionary<Object, Object> dictionary = new Hashtable<Object, 
Object>();
+        Dictionary<String, Object> dictionary = new Hashtable<>();
         dictionary.put("name", "oak");
-        
regs.add(bundleContext.registerService("com.codahale.metrics.MetricRegistry",
+        regs.add(bundleContext.registerService(MetricRegistry.class,
                 metricProvider.getRegistry(),  dictionary));
         return metricProvider;
     }
diff --git a/oak-exercise/pom.xml b/oak-exercise/pom.xml
index 29bc21afe4..7c9868ae73 100644
--- a/oak-exercise/pom.xml
+++ b/oak-exercise/pom.xml
@@ -143,7 +143,12 @@
     <!-- OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
@@ -159,11 +164,6 @@
       <artifactId>org.apache.felix.jaas</artifactId>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
 
     <dependency>
       <groupId>org.slf4j</groupId>
diff --git a/oak-http/pom.xml b/oak-http/pom.xml
index e233ceb46d..5472789045 100644
--- a/oak-http/pom.xml
+++ b/oak-http/pom.xml
@@ -48,18 +48,6 @@
   </build>
 
   <dependencies>
-    <!-- Optional OSGi dependencies, used only when running within OSGi -->
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
     <dependency>
       <groupId>org.apache.jackrabbit</groupId>
       <artifactId>oak-shaded-guava</artifactId>
diff --git a/oak-jcr/pom.xml b/oak-jcr/pom.xml
index 6dc306c066..8461fa14ee 100644
--- a/oak-jcr/pom.xml
+++ b/oak-jcr/pom.xml
@@ -189,22 +189,16 @@
   </build>
 
   <dependencies>
-    <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
-      <dependency>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.annotation</artifactId>
-          <scope>provided</scope>
-      </dependency>
       <dependency>
           <!-- somehow the 1.6.0_65 compiler crashes on osx without this. -->
           <groupId>org.apache.felix</groupId>
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
index 5e3daf3f55..e7f3101153 100644
--- 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
+++ 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.jackrabbit.oak.jcr.osgi;
 
+import java.util.Hashtable;
 import java.util.Map;
-import java.util.Properties;
 
 import javax.jcr.Repository;
 
@@ -31,23 +31,23 @@ import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceStrategy;
 import org.apache.felix.scr.annotations.References;
+import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
 import org.apache.jackrabbit.oak.plugins.commit.JcrConflictHandler;
 import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
-import org.apache.jackrabbit.oak.InitialContent;
+import org.apache.jackrabbit.oak.plugins.index.WhiteboardIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.observation.CommitRateLimiter;
 import org.apache.jackrabbit.oak.plugins.version.VersionHook;
 import org.apache.jackrabbit.oak.spi.commit.BackgroundObserver;
+import org.apache.jackrabbit.oak.spi.commit.WhiteboardEditorProvider;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
+import org.apache.jackrabbit.oak.spi.query.WhiteboardIndexProvider;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.apache.jackrabbit.oak.spi.whiteboard.Tracker;
 import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
-import org.apache.jackrabbit.oak.spi.commit.WhiteboardEditorProvider;
-import org.apache.jackrabbit.oak.plugins.index.WhiteboardIndexEditorProvider;
-import org.apache.jackrabbit.oak.spi.query.WhiteboardIndexProvider;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
@@ -206,6 +206,6 @@ public class RepositoryManager {
                 fastQueryResultSize
         );
 
-        return bundleContext.registerService(Repository.class.getName(), 
repository, new Properties());
+        return bundleContext.registerService(Repository.class, repository, new 
Hashtable<String, Object>());
     }
 }
diff --git a/oak-lucene/pom.xml b/oak-lucene/pom.xml
index 2a0eaefb20..dddc297f6e 100644
--- a/oak-lucene/pom.xml
+++ b/oak-lucene/pom.xml
@@ -152,17 +152,12 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-parent/pom.xml b/oak-parent/pom.xml
index 29c16cc1c5..8953449112 100644
--- a/oak-parent/pom.xml
+++ b/oak-parent/pom.xml
@@ -486,34 +486,50 @@
     <dependencies>
       <dependency>
         <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>4.2.0</version>
+        <artifactId>osgi.core</artifactId>
+        <version>7.0.0</version>
       </dependency>
+      <!-- OSGi R7 Compendium Specs -->
       <dependency>
         <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.compendium</artifactId>
-        <version>4.2.0</version>
+        <artifactId>org.osgi.service.component</artifactId>
+        <version>1.4.0</version>
       </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.service.metatype</artifactId>
+        <version>1.4.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.service.cm</artifactId>
+        <version>1.6.1</version>
+      </dependency>
+      <!-- OSGi R7 annotations -->
       <dependency>
         <groupId>org.osgi</groupId>
         <artifactId>org.osgi.service.component.annotations</artifactId>
-        <version>1.3.0</version>
+        <version>1.4.0</version>
       </dependency>
       <dependency>
         <groupId>org.osgi</groupId>
         <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        <version>1.3.0</version>
+        <version>1.4.0</version>
       </dependency>
-
       <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.scr.annotations</artifactId>
-        <version>1.9.6</version>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.annotation.bundle</artifactId>
+        <version>1.0.0</version><!-- R7 version, 
https://docs.osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/bundle/package-summary.html
 -->
       </dependency>
       <dependency>
         <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.annotation</artifactId>
-        <version>6.0.0</version>
+        <artifactId>org.osgi.annotation.versioning</artifactId>
+        <version>1.1.2</version><!-- R7 version, 
https://docs.osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/versioning/package-summary.html
 -->
+      </dependency>
+      <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.scr.annotations</artifactId>
+        <version>1.9.6</version>
       </dependency>
       <dependency>
         <groupId>org.jetbrains</groupId>
diff --git a/oak-query-spi/pom.xml b/oak-query-spi/pom.xml
index 78f72a3bc5..b003198e9a 100644
--- a/oak-query-spi/pom.xml
+++ b/oak-query-spi/pom.xml
@@ -60,10 +60,9 @@
     </build>
 
   <dependencies>
-    <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
 
diff --git a/oak-search-elastic/pom.xml b/oak-search-elastic/pom.xml
index ffc9c76424..93c6a5227a 100644
--- a/oak-search-elastic/pom.xml
+++ b/oak-search-elastic/pom.xml
@@ -94,17 +94,12 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-search-mt/pom.xml b/oak-search-mt/pom.xml
index ff1b1e1c7a..263ae634ae 100644
--- a/oak-search-mt/pom.xml
+++ b/oak-search-mt/pom.xml
@@ -83,21 +83,6 @@
 
     <dependencies>
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
-            <scope>provided</scope>
-        </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.scr.annotations</artifactId>
diff --git a/oak-search/pom.xml b/oak-search/pom.xml
index 0705670f92..cf692f7ef1 100644
--- a/oak-search/pom.xml
+++ b/oak-search/pom.xml
@@ -80,17 +80,7 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
 
diff --git a/oak-security-spi/pom.xml b/oak-security-spi/pom.xml
index 12a317b574..ae1042e035 100644
--- a/oak-security-spi/pom.xml
+++ b/oak-security-spi/pom.xml
@@ -73,17 +73,12 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-segment-aws/pom.xml b/oak-segment-aws/pom.xml
index 8b5fb41b03..5eff19f390 100644
--- a/oak-segment-aws/pom.xml
+++ b/oak-segment-aws/pom.xml
@@ -149,17 +149,12 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git 
a/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentStoreService.java
 
b/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentStoreService.java
index 9efe03af46..66b859de58 100644
--- 
a/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentStoreService.java
+++ 
b/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentStoreService.java
@@ -19,7 +19,7 @@
 package org.apache.jackrabbit.oak.segment.aws;
 
 import java.io.IOException;
-import java.util.Properties;
+import java.util.Hashtable;
 
 import 
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
 import org.osgi.framework.ServiceRegistration;
@@ -47,8 +47,8 @@ public class AwsSegmentStoreService {
     @Activate
     public void activate(ComponentContext context, Configuration config) 
throws IOException {
         persistence = createAwsPersistence(config);
-        registration = 
context.getBundleContext().registerService(SegmentNodeStorePersistence.class.getName(),
-                persistence, new Properties());
+        registration = 
context.getBundleContext().registerService(SegmentNodeStorePersistence.class,
+                persistence, new Hashtable<String, Object>());
     }
 
     @Deactivate
diff --git a/oak-segment-azure/pom.xml b/oak-segment-azure/pom.xml
index e0005d6705..11a688f6eb 100644
--- a/oak-segment-azure/pom.xml
+++ b/oak-segment-azure/pom.xml
@@ -101,17 +101,12 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git 
a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentStoreService.java
 
b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentStoreService.java
index 0ccf7fe475..e76372f99c 100644
--- 
a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentStoreService.java
+++ 
b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentStoreService.java
@@ -39,6 +39,7 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.security.InvalidKeyException;
+import java.util.Hashtable;
 import java.util.Objects;
 import java.util.Properties;
 
@@ -63,7 +64,7 @@ public class AzureSegmentStoreService {
     public void activate(ComponentContext context, Configuration config) 
throws IOException {
         AzurePersistence persistence = createAzurePersistenceFrom(config);
         registration = context.getBundleContext()
-            .registerService(SegmentNodeStorePersistence.class.getName(), 
persistence, new Properties() {{
+            .registerService(SegmentNodeStorePersistence.class, persistence, 
new Hashtable<String, Object>() {{
                 put(SERVICE_PID, String.format("%s(%s, %s)", 
AzurePersistence.class.getName(), config.accountName(), config.rootPath()));
                 if (!Objects.equals(config.role(), "")) {
                     put("role", config.role());
diff --git a/oak-segment-remote/pom.xml b/oak-segment-remote/pom.xml
index eddd97e546..7f71c2ad1b 100644
--- a/oak-segment-remote/pom.xml
+++ b/oak-segment-remote/pom.xml
@@ -78,17 +78,17 @@
         <!-- Optional OSGi dependencies, used only when running within OSGi -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.annotation</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git 
a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
 
b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
index c4c82f2521..a9fdd2988a 100644
--- 
a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
+++ 
b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
@@ -39,6 +39,7 @@ import org.osgi.service.component.annotations.Reference;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Hashtable;
 import java.util.Properties;
 
 @Component(
@@ -61,7 +62,7 @@ public class RemotePersistentCacheService {
         osgiWhiteboard = new OsgiWhiteboard(context.getBundleContext());
         persistentCache = createPersistentCache(config, closer);
         if (persistentCache != null) {
-            registration = 
context.getBundleContext().registerService(PersistentCache.class.getName(), 
persistentCache, new Properties());
+            registration = 
context.getBundleContext().registerService(PersistentCache.class, 
persistentCache, new Hashtable<String, Object>());
         }
     }
 
diff --git a/oak-segment-tar/pom.xml b/oak-segment-tar/pom.xml
index 5f96e2a4d2..47aa935bd3 100644
--- a/oak-segment-tar/pom.xml
+++ b/oak-segment-tar/pom.xml
@@ -265,12 +265,17 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git 
a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java
 
b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java
index 20698bf801..371aa1fa59 100644
--- 
a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java
+++ 
b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java
@@ -238,10 +238,10 @@ public class StandbyStoreService {
         StandbyClientSync standbyClientSync = builder.build();
         closer.register(standbyClientSync);
 
-        Dictionary<Object, Object> dictionary = new Hashtable<Object, 
Object>();
+        Dictionary<String, Object> dictionary = new Hashtable<>();
         dictionary.put("scheduler.period", config.interval());
         dictionary.put("scheduler.concurrent", false);
-        ServiceRegistration registration = 
context.getBundleContext().registerService(Runnable.class.getName(), 
standbyClientSync, dictionary);
+        ServiceRegistration registration = 
context.getBundleContext().registerService(Runnable.class, standbyClientSync, 
dictionary);
         closer.register(registration::unregister);
 
         log.info("Started standby on port {} with {}s sync frequency", 
config.port(), config.interval());
diff --git a/oak-shaded-guava/pom.xml b/oak-shaded-guava/pom.xml
index d169ed49cb..6a9a28022e 100644
--- a/oak-shaded-guava/pom.xml
+++ b/oak-shaded-guava/pom.xml
@@ -116,11 +116,6 @@
       <artifactId>guava</artifactId>
       <version>${shaded.guava.version}</version>
     </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
-      <scope>provided</scope>
-    </dependency>
     <dependency>
       <groupId>org.jetbrains</groupId>
       <artifactId>annotations</artifactId>
diff --git a/oak-solr-core/pom.xml b/oak-solr-core/pom.xml
index f33447b0f2..14ff3d1be6 100644
--- a/oak-solr-core/pom.xml
+++ b/oak-solr-core/pom.xml
@@ -216,17 +216,16 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.service.component</artifactId>
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>
-
         <dependency>
             <groupId>javax.jcr</groupId>
             <artifactId>jcr</artifactId>
diff --git a/oak-solr-osgi/pom.xml b/oak-solr-osgi/pom.xml
index 6d71ee820b..e6b036018f 100644
--- a/oak-solr-osgi/pom.xml
+++ b/oak-solr-osgi/pom.xml
@@ -89,15 +89,8 @@
     <dependencies>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
             <scope>provided</scope>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-            <optional>true</optional>
         </dependency>
 
         <dependency>
diff --git a/oak-store-composite/pom.xml b/oak-store-composite/pom.xml
index df01935981..b833748d4b 100644
--- a/oak-store-composite/pom.xml
+++ b/oak-store-composite/pom.xml
@@ -77,20 +77,19 @@
   </build>
 
   <dependencies>
-    <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.annotation.versioning</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git 
a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/MountInfoProviderServiceTest.java
 
b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/MountInfoProviderServiceTest.java
index 12da8a04e5..8a2e3cc371 100644
--- 
a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/MountInfoProviderServiceTest.java
+++ 
b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/MountInfoProviderServiceTest.java
@@ -20,6 +20,8 @@
 package org.apache.jackrabbit.oak.composite;
 
 import org.apache.jackrabbit.guava.common.collect.ImmutableMap;
+
+import java.util.Hashtable;
 import java.util.Properties;
 import org.apache.jackrabbit.oak.spi.mount.Mount;
 import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
@@ -185,7 +187,7 @@ public class MountInfoProviderServiceTest {
 
     private void registerActivateMountInfoConfig(MountInfoConfig.Props 
mountInfoProps) {
         MountInfoConfig mountInfoConfig = new MountInfoConfig();
-        
context.bundleContext().registerService(MountInfoConfig.class.getName(), 
mountInfoConfig, new Properties());
+        context.bundleContext().registerService(MountInfoConfig.class, 
mountInfoConfig, new Hashtable<String, Object>());
         mountInfoConfig.activate(context.bundleContext(), mountInfoProps);
     }
 
diff --git a/oak-store-document/pom.xml b/oak-store-document/pom.xml
index c681406338..e25fe1dec5 100644
--- a/oak-store-document/pom.xml
+++ b/oak-store-document/pom.xml
@@ -78,20 +78,19 @@
   </profiles>
 
   <dependencies>
-    <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>org.osgi.service.component</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation</artifactId>
+      <artifactId>org.osgi.service.cm</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/oak-store-spi/pom.xml b/oak-store-spi/pom.xml
index 02c60af701..351d1c78c2 100644
--- a/oak-store-spi/pom.xml
+++ b/oak-store-spi/pom.xml
@@ -69,12 +69,7 @@
     <!-- Optional OSGi dependencies, used only when running within OSGi -->
     <dependency>
       <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
+      <artifactId>osgi.core</artifactId>
       <scope>provided</scope>
     </dependency>
 


Reply via email to