diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Activate.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Activate.java
index e977b84..7775e0c 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Activate.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Activate.java
@@ -18,11 +18,7 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * The <code>Activate</code> annotation defines the method which is used
@@ -32,7 +28,7 @@
  * search strategy to find the method based on the name.
  */
 @Target( { ElementType.METHOD })
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Activate {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Component.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Component.java
index 57f05b7..20035fd 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Component.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Component.java
@@ -18,10 +18,7 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * The <code>Component</code> annotation is the only required annotation. If
@@ -37,7 +34,7 @@
  * </p>
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 public @interface Component {
 
     /**
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Deactivate.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Deactivate.java
index e0c0ebb..819b540 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Deactivate.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Deactivate.java
@@ -18,11 +18,7 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * The <code>Dectivate</code> annotation defines the method which is used
@@ -32,7 +28,7 @@
  * search strategy to find the method based on the name.
  */
 @Target( { ElementType.METHOD })
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Deactivate {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Modified.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Modified.java
index 9c7072b..1b61e31 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Modified.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Modified.java
@@ -18,11 +18,7 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * The <code>Modified</code> annotation defines the method which is used
@@ -32,7 +28,7 @@
  * search strategy to find the method based on the name.
  */
 @Target( { ElementType.METHOD })
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Modified {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Properties.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Properties.java
index 7d2d310..cfe2f16 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Properties.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Properties.java
@@ -18,17 +18,13 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * Allows to define multiple {@link Property} annotations for one type.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Properties {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Property.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
index d33f3db..0b51db8 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
@@ -33,7 +33,7 @@
  * OSGi Service Platform Service Compendium Specification for more information.
  */
 @Target( { ElementType.TYPE, ElementType.FIELD })
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Property {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/PropertyOption.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/PropertyOption.java
index dd38bc3..ff3397a 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/PropertyOption.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/PropertyOption.java
@@ -18,18 +18,14 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * Defines a {@link Property} option.
  */
 @Property(options=@PropertyOption(name="you",value="something"))
 @Target(ElementType.ANNOTATION_TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface PropertyOption {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Reference.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Reference.java
index 4b28185..1dd1201 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Reference.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Reference.java
@@ -18,11 +18,7 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * The <code>Reference</code> annotation defines references to other services
@@ -37,7 +33,7 @@
  * Service Platform Service Compendium Specification for more information.
  */
 @Target( { ElementType.TYPE, ElementType.FIELD })
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Reference {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/References.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/References.java
index 167fc75..2cee243 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/References.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/References.java
@@ -18,17 +18,13 @@
  */
 package org.apache.felix.scr.annotations;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * Allows to define multiple {@link Reference} annotations for one type.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface References {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Service.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Service.java
index 29343f0..245863f 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Service.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Service.java
@@ -30,7 +30,7 @@
  * information.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface Service {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Services.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Services.java
index d3b345c..4d7b6ad 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Services.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/Services.java
@@ -26,7 +26,7 @@
  * @deprecated Since 1.5. It's now possible to use multiple classes in the {@link Service} annotation.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 @Deprecated
 public @interface Services {
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilter.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilter.java
index 866fdc8..304593b 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilter.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilter.java
@@ -29,7 +29,7 @@
  * but this generation can be overriden.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface SlingFilter {
 
diff --git a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingServlet.java b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingServlet.java
index 526794e..06f4e0d 100644
--- a/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingServlet.java
+++ b/scrplugin/annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingServlet.java
@@ -25,7 +25,7 @@
  * Sling's resource resolver mapping.
  */
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.CLASS)
 @Documented
 public @interface SlingServlet {
 
