SLING-1993 - replace @scr tags with annotations

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1074109 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/HttpServiceExtFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/HttpServiceExtFilter.java
index 1f2a12f..cbcb678 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/HttpServiceExtFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/HttpServiceExtFilter.java
@@ -16,17 +16,21 @@
  */
 package org.apache.sling.launchpad.testservices.filters;
 
-/** Example/test Filter.
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Filter"
- *
- * @scr.property name="service.description" value="Test HttpService Filter"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * Register this filter with the whiteboard-specific registration property
- * @scr.property name="pattern" value="/.*"
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
+/** Example/test Filter, registered
+ *  with the whiteboard-specific registration property
  */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Filter.class)
+@Properties({
+    @Property(name="service.description", value="Test HttpService Filter"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="pattern", value="/.*")
+})
 public class HttpServiceExtFilter extends TestFilter {
 
     @Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
index e07e003..72974bc 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
@@ -16,18 +16,19 @@
  */
 package org.apache.sling.launchpad.testservices.filters;
 
-/** Example/test Sling Servlet registered with two extensions
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Filter"
- *
- * @scr.property name="service.description" value="Test Filter"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.filter.scope" value="request"
- *
- * Register this filter with the no pattern registration properties
- */
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
+/** Example/test filter */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Filter.class)
+@Properties({
+    @Property(name="service.description", value="NoProperty Test Filter"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.filter.scope", value="request")
+})
 public class NoPropertyFilter extends TestFilter {
 
     @Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
index aa30b5c..ed807b1 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
@@ -16,18 +16,20 @@
  */
 package org.apache.sling.launchpad.testservices.filters;
 
-/** Example/test Sling Servlet registered with two extensions
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Filter"
- * @scr.property name="sling.filter.scope" value="request"
- *
- * @scr.property name="service.description" value="Test Filter"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * Register this filter with the Sling-specific registration property
- * @scr.property name="filter.scope" value="request"
- */
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
+/** Example/test Filter */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Filter.class)
+@Properties({
+    @Property(name="service.description", value="SlingFilter Test Filter"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="filter.scope", value="request"),
+    @Property(name="sling.filter.scope", value="request")
+})
 public class SlingFilter extends TestFilter {
 
     @Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/TestFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/TestFilter.java
index 75a0c29..92996e8 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/TestFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/TestFilter.java
@@ -28,9 +28,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-/**
- * Example/test Filter.
- */
+/** Base class for test filters */
 abstract class TestFilter implements Filter {
 
     public void init(FilterConfig filterConfig) throws ServletException {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/jcr/StartupTestContentLoader.java b/src/main/java/org/apache/sling/launchpad/testservices/jcr/StartupTestContentLoader.java
index fccbdae..d7997e3 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/jcr/StartupTestContentLoader.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/jcr/StartupTestContentLoader.java
@@ -20,31 +20,27 @@
 
 import javax.jcr.RepositoryException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
 import org.apache.sling.jcr.jackrabbit.server.TestContentLoader;
 import org.osgi.service.component.ComponentContext;
 
 /**
  * Component which loads the JCR test content on startup.
- *
- * @scr.component enabled="false" metatype="no"
- *
- * @scr.property name="service.description" value="Test Content Loader"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
  */
+@Component(enabled=false, metatype=false)
+@Properties({
+    @Property(name="service.description", value="Test Content Loader"),
+    @Property(name="service.vendor", value="The Apache Software Foundation")
+})
 public class StartupTestContentLoader {
 
-    /** @scr.reference */
+    @Reference
     private TestContentLoader loader;
 
-    // ---------- SCR integration
-
     protected void activate(ComponentContext context) throws RepositoryException, IOException {
         loader.loadTestContent();
     }
-
-    protected void deactivate(ComponentContext context) {
-        ;
-    }
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java b/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
index 29502db..2770c34 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
@@ -19,18 +19,23 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.jcr.api.NamespaceMapper;
 
 /**
  * Test Implementation of NamespaceMapper
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="org.apache.sling.jcr.api.NamespaceMapper"
- *
- * @scr.property name="service.description" value="Test NamespaceMapper"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
  */
+@Component(immediate=true, metatype=false)
+@Service(value=org.apache.sling.jcr.api.NamespaceMapper.class)
+@Properties({
+    @Property(name="service.description", value="Test NamespaceMapper"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="filter.scope", value="request"),
+    @Property(name="sling.filter.scope", value="request")
+})
 public class TestNamespaceMapper implements NamespaceMapper {
 
     public void defineNamespacePrefixes(Session session) throws RepositoryException {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
index 1168339..7200646 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
@@ -18,17 +18,19 @@
 
 import javax.script.Bindings;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.api.BindingsValuesProvider;
-/** Example/test BindingsValuesProvider targeting groovy scripts.
-*
-* @scr.component immediate="true" metatype="no"
-* @scr.service
-*
-* @scr.property name="service.description" value="Groovy BindingsValuesProvider"
-* @scr.property name="service.vendor" value="The Apache Software Foundation"
-*
-* @scr.property name="javax.script.name" value="groovy"
-*/
+/** Example/test BindingsValuesProvider targeting groovy scripts */
+@Component(immediate=true, metatype=false)
+@Service
+@Properties({
+    @Property(name="service.description", value="Groovy BindingsValuesProvider"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="javax.script.name", value="groovy")
+})
 public class GroovyBindingsValuesProvider implements BindingsValuesProvider {
 
     public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
index 0d30f23..7e4eeed 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
@@ -18,17 +18,19 @@
 
 import javax.script.Bindings;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.api.BindingsValuesProvider;
-/** Example/test BindingsValuesProvider targeting JSP scripts.
-*
-* @scr.component immediate="true" metatype="no"
-* @scr.service
-*
-* @scr.property name="service.description" value="JSP BindingsValuesProvider"
-* @scr.property name="service.vendor" value="The Apache Software Foundation"
-*
-* @scr.property name="javax.script.name" value="JSP"
-*/
+
+/** Example/test BindingsValuesProvider targeting JSP scripts */
+@Component(immediate=true, metatype=false)
+@Service
+@Properties({
+    @Property(name="service.description", value="JSP BindingsValuesProvider"),
+    @Property(name="service.vendor", value="The Apache Software Foundation")
+})
 public class JSPBindingsValuesProvider implements BindingsValuesProvider {
 
     public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
index 5fa2cd1..ea5d7e3 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
@@ -21,6 +21,10 @@
 
 import javax.servlet.ServletException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.scripting.SlingBindings;
@@ -30,26 +34,18 @@
 /**
  * Test Servlet that executes a named script in standalone mode, i.e.
  * without a request or response. 
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description"
- *               value="StandaloneScriptExecutionServlet Test Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- *               
- * @scr.property name="sling.servlet.selectors"
- *               value = "StandaloneScriptExecutionServlet"
- *                
- * @scr.property name="sling.servlet.extensions"
- *               value = "txt"
- *
  */
-@SuppressWarnings("serial")
 
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="StandaloneScriptExecutionServlet Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.selectors", value = "StandaloneScriptExecutionServlet"),
+    @Property(name="sling.servlet.extensions",value = "txt")
+})
+@SuppressWarnings("serial")
 public class StandaloneScriptExecutionServlet extends SlingSafeMethodsServlet {
 
 	@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
index 4b160d2..fae7b0a 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
@@ -18,15 +18,18 @@
 
 import javax.script.Bindings;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.api.BindingsValuesProvider;
-/** Example/test BindingsValuesProvider targetting all scripts.
-*
-* @scr.component immediate="true" metatype="no"
-* @scr.service
-*
-* @scr.property name="service.description" value="String BindingsValuesProvider"
-* @scr.property name="service.vendor" value="The Apache Software Foundation"
-*/
+/** Example/test BindingsValuesProvider targeting all scripts */
+@Component(immediate=true, metatype=false)
+@Service
+@Properties({
+    @Property(name="service.description", value="StringBindingsValuesProvider"),
+    @Property(name="service.vendor", value="The Apache Software Foundation")
+})
 public class StringBindingsValuesProvider implements BindingsValuesProvider {
 
     public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
index 4f640e7..7170529 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
@@ -16,23 +16,20 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
-/** Example/test Sling Servlet registered with two extensions
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description" value="Default Query Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * Register this servlet for the default resource type and two selectors:
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- *
- * @scr.property name="sling.servlet.extensions"
- *               values.1 = "TEST_EXT_1"
- *               values.2 = "TEST_EXT_2"
- */
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 
+/** Example/test Sling Servlet registered with two extensions */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Extension Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.extensions", value={ "TEST_EXT_1", "TEST_EXT_2" })
+})
 @SuppressWarnings("serial")
 public class ExtensionServlet extends TestServlet {
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
index 1ee9b90..7f82498 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
@@ -16,24 +16,27 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
 /**
  * Default servlet for the html extension, see SLING-1069.
- * <p>
  * This servlet collides with the Default GET Servlet generating proper HTML not
  * expected by HtmlDefaultServletTest. For this reason this component is
  * disabled by default and must be enabled for testing in the
  * HtmlDefaultServletTest class.
- *
- * @scr.component enabled="false"
- *                name="org.apache.sling.launchpad.testservices.servlets.HtmlDefaultServlet"
- *                metatype="no" immediate="true" label="%sling.name"
- *                description="%sling.description"
- * @scr.service interface="javax.servlet.Servlet"
- * @scr.property name="sling.servlet.extensions" value="html"
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- * @scr.property name="sling.servlet.methods" value="GET"
  */
+@Component(enabled=false, immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Extension Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.extensions", value="html"),
+    @Property(name="sling.servlet.methods", value="GET")
+})
 @SuppressWarnings("serial")
 public class HtmlDefaultServlet extends TestServlet {
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
index 93f1a4e..a4bf55e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
@@ -22,24 +22,24 @@
 import javax.jcr.Session;
 import javax.servlet.ServletException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
 
 /**
  * Test Servlet which outputs the current namespace mappings.
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description"
- *               value="NamespaceMapping Test Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.servlet.paths"
- *               values.0="/testing/NamespaceTestServlet/output"
- *
  */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="NamespaceMapping Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.paths", value="/testing/NamespaceTestServlet/output")
+})
 @SuppressWarnings("serial")
 public class NamespaceTestServlet extends SlingSafeMethodsServlet {
 
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
index 08ee28c..3e10211 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
@@ -16,18 +16,22 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
-/** Servlet that registers itself for specific paths
- * 
- *  @scr.component immediate="true" metatype="no"
- *  @scr.service interface="javax.servlet.Servlet"
- * 
- *  @scr.property name="service.description" value="Paths Test Servlet"
- *  @scr.property name="service.vendor" value="The Apache Software Foundation"
- * 
- *  @scr.property name="sling.servlet.paths" 
- *                  values.0="/testing/PathsServlet/foo" 
- *                  values.1="/testing/PathsServlet/bar/more/foo.html" 
- * 
- */
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
+/** Servlet that registers itself for specific paths */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Paths Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.paths", value={
+            "/testing/PathsServlet/foo", 
+            "/testing/PathsServlet/bar/more/foo.html" 
+    })
+})
+@SuppressWarnings("serial")
 public class PathsServlet extends TestServlet {
 }
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
index a7f1eb4..4f01f90 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
@@ -16,24 +16,23 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
 /** Example/test Sling Servlet using a prefix to demonstrate how
  *  PrefixServletZero overrides PrefixServletMinusOne
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description" value="Default Query Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.servlet.prefix"
- *               value="-1"
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- * @scr.property name="sling.servlet.extensions"
- *               values.1="TEST_EXT_3"
- *               values.2="TEST_EXT_4"
  */
-
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Default Query Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.prefix", intValue=-1),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_4" })
+})
 @SuppressWarnings("serial")
 public class PrefixServletMinusOne extends TestServlet {
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
index f21ea9b..884fbe7 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
@@ -16,24 +16,23 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+
 /** Example/test Sling Servlet using a prefix to demonstrate how
  *  PrefixServletZero overrides PrefixServletMinusOne
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description" value="Default Query Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.servlet.prefix"
- *               value="0"
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- * @scr.property name="sling.servlet.extensions"
- *               values.1="TEST_EXT_3"
- *               values.2="TEST_EXT_5"
  */
-
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Default Query Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.prefix", intValue=0),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_5" })
+})
 @SuppressWarnings("serial")
 public class PrefixServletZero extends TestServlet {
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
index 05e7680..ad9a3a1 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
@@ -20,25 +20,24 @@
 
 import javax.servlet.ServletException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 
 /** Example/test Sling Servlet registered for the PUT method
  *  on a specific resource type
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description" value="Default Query Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="LAUNCHPAD_TEST_ResourceType"
- *
- * @scr.property name="sling.servlet.methods"
- *               value = "PUT"
 */
-
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Default Query Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.methods", value="PUT"),
+    @Property(name="sling.servlet.resourceTypes", value="LAUNCHPAD_TEST_ResourceType")
+})
 @SuppressWarnings("serial")
 public class PutMethodServlet extends TestServlet {
 
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
index bd03d8c..48ed8ed 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
@@ -16,24 +16,25 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.servlets.OptingServlet;
 
-/** OptingServlet that uses the RequestURI to opt in
- *  
- *  @scr.component immediate="true" metatype="no"
- *  @scr.service interface="javax.servlet.Servlet"
- * 
- *  @scr.property name="service.description" value="Request URI Opting Test Servlet"
- *  @scr.property name="service.vendor" value="The Apache Software Foundation"
- * 
- *  @scr.property name="sling.servlet.resourceTypes"
- *                  values.0="sling/servlet/default"
- *                  values.1="sling/nonexisting"
- *  @scr.property name="sling.servlet.methods" 
- *                  values.0="POST" 
- *                  values.1="GET" 
- */
+/** OptingServlet that uses the RequestURI to opt in */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Request URI Opting Test Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.resourceTypes", value={
+            "sling/servlet/default",
+            "sling/nonexisting"
+    }),
+    @Property(name="sling.servlet.methods", value={"POST","GET"})
+})
 @SuppressWarnings("serial")
 public class RequestUriOptingServlet extends TestServlet implements OptingServlet {
 
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
index 1842dfe..bdb7fcc 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
@@ -16,26 +16,21 @@
  */
 package org.apache.sling.launchpad.testservices.servlets;
 
-/** Example/test Sling Servlet registered with two selectors
- *
- * @scr.component immediate="true" metatype="no"
- * @scr.service interface="javax.servlet.Servlet"
- *
- * @scr.property name="service.description" value="Default Query Servlet"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- *
- * Register this servlet for the default resource type and two selectors:
- * @scr.property name="sling.servlet.resourceTypes"
- *               value="sling/servlet/default"
- *
- * @scr.property name="sling.servlet.selectors"
- *               values.1 = "TEST_SEL_1"
- *               values.2 = "TEST_SEL_2"
- *
- * @scr.property name="sling.servlet.extensions"
- *               value = "txt"
-*/
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 
+/** Example/test Sling Servlet registered with two selectors */
+@Component(immediate=true, metatype=false)
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Default Query Servlet"),
+    @Property(name="service.vendor", value="The Apache Software Foundation"),
+    @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
+    @Property(name="sling.servlet.selectors", value={"TEST_SEL_1","TEST_SEL_2"}),
+    @Property(name="sling.servlet.extensions", value="txt")
+})
 @SuppressWarnings("serial")
 public class SelectorServlet extends TestServlet {
 }
\ No newline at end of file