diff --git a/pom.xml b/pom.xml
index 6bdb924..19f99da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,12 @@
             <artifactId>org.apache.felix.scr.annotations</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.annotation</artifactId>
+            <version>6.0.1</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.code.findbugs</groupId>
             <artifactId>jsr305</artifactId>
             <version>2.0.1</version>
diff --git a/src/main/java/org/apache/sling/mom/MessageFilter.java b/src/main/java/org/apache/sling/mom/MessageFilter.java
index bce593e..6d1c41d 100644
--- a/src/main/java/org/apache/sling/mom/MessageFilter.java
+++ b/src/main/java/org/apache/sling/mom/MessageFilter.java
@@ -19,11 +19,14 @@
 
 package org.apache.sling.mom;
 
+import org.osgi.annotation.versioning.ProviderType;
+
 import java.util.Map;
 
 /**
  * Filter inbound messages, optionally implemented by QueueReaders.
  */
+@ProviderType
 public interface MessageFilter {
     /**
      * Provides message filtering, the implementation should return true if it wants to get the message, false if not.
diff --git a/src/main/java/org/apache/sling/mom/QueueManager.java b/src/main/java/org/apache/sling/mom/QueueManager.java
index c3a0260..b2ca144 100644
--- a/src/main/java/org/apache/sling/mom/QueueManager.java
+++ b/src/main/java/org/apache/sling/mom/QueueManager.java
@@ -19,11 +19,14 @@
 
 package org.apache.sling.mom;
 
+import org.osgi.annotation.versioning.ProviderType;
+
 import java.util.Map;
 
 /**
  * Manages named queues allowing messages to be added to the queue and a queue reader to be opened to read messages from a queue.
  */
+@ProviderType
 public interface QueueManager {
 
     /**
diff --git a/src/main/java/org/apache/sling/mom/QueueReader.java b/src/main/java/org/apache/sling/mom/QueueReader.java
index e1f414f..044afaf 100644
--- a/src/main/java/org/apache/sling/mom/QueueReader.java
+++ b/src/main/java/org/apache/sling/mom/QueueReader.java
@@ -19,6 +19,8 @@
 
 package org.apache.sling.mom;
 
+import org.osgi.annotation.versioning.ProviderType;
+
 import java.util.Map;
 
 /**
@@ -28,6 +30,7 @@
  * This interface should be implemented as an OSGi Service. The implementation of the MoM API should register any services
  * implementing QueueReader using the OSGi Whiteboard pattern.
  */
+@ProviderType
 public interface QueueReader  {
 
 
diff --git a/src/main/java/org/apache/sling/mom/Subscriber.java b/src/main/java/org/apache/sling/mom/Subscriber.java
index 38106eb..ed5ce19 100644
--- a/src/main/java/org/apache/sling/mom/Subscriber.java
+++ b/src/main/java/org/apache/sling/mom/Subscriber.java
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.mom;
 
+import org.osgi.annotation.versioning.ProviderType;
+
 import java.util.Map;
 
 /**
@@ -26,6 +28,7 @@
  * which will implement a OSGi Whiteboard pattern will register it based on the values in the OSGi property "topics".
  * The component may optionally implement MessageFilter if it wants to separate filtering messages sooner.
  */
+@ProviderType
 public interface Subscriber {
 
     /**
diff --git a/src/main/java/org/apache/sling/mom/TopicManager.java b/src/main/java/org/apache/sling/mom/TopicManager.java
index dcc5490..fcb4af7 100644
--- a/src/main/java/org/apache/sling/mom/TopicManager.java
+++ b/src/main/java/org/apache/sling/mom/TopicManager.java
@@ -20,6 +20,8 @@
 package org.apache.sling.mom;
 
 
+import org.osgi.annotation.versioning.ProviderType;
+
 import javax.annotation.Nonnull;
 import java.util.Collections;
 import java.util.HashSet;
@@ -32,6 +34,7 @@
  * To create a subscriber implement the Subscriber interface and the implementation of TopicManager should
  * implement the OSGi whiteboard pattern.
  */
+@ProviderType
 public interface TopicManager {
 
 
