SLING-2363 : Replace JavaDoc SCR annotations with Java SCR annotations

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1357150 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/espblog/pom.xml b/espblog/pom.xml
index 94afaf9..59f94b1 100644
--- a/espblog/pom.xml
+++ b/espblog/pom.xml
@@ -94,6 +94,10 @@
       <artifactId>slf4j-api</artifactId>
       <scope>provided</scope>
     </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
   </dependencies>
   
 </project>
diff --git a/espblog/src/main/java/org/apache/sling/samples/espblog/internal/ThumbnailGenerator.java b/espblog/src/main/java/org/apache/sling/samples/espblog/internal/ThumbnailGenerator.java
index c6c571b..feaf910 100644
--- a/espblog/src/main/java/org/apache/sling/samples/espblog/internal/ThumbnailGenerator.java
+++ b/espblog/src/main/java/org/apache/sling/samples/espblog/internal/ThumbnailGenerator.java
@@ -39,6 +39,9 @@
 import javax.jcr.observation.EventListener;
 import javax.jcr.observation.ObservationManager;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
@@ -48,20 +51,18 @@
  * Observe the espblog content for changes, and generate
  * thumbnails when images are added.
  *
- * @scr.component immediate="true" metatype="false"
- * @scr.property name="service.description" value="Sling ESP blog sample thumbnails generator"
- * @scr.property name="service.vendor" value="Apache Software Foundation"
- *
  */
+@Component(immediate=true)
+@Property(name="service.description", value="Sling ESP blog sample thumbnails generator")
 public class ThumbnailGenerator implements EventListener {
 
     private Session session;
     private ObservationManager observationManager;
 
-	/** @scr.reference */
+	@Reference
 	private SlingRepository repository;
 
-    /** @scr.property value="/content/espblog" */
+    @Property(value="/content/espblog")
     private static final String CONTENT_PATH_PROPERTY = "content.path";
 
 	private static final Logger log = LoggerFactory
diff --git a/path-based-rtp/pom.xml b/path-based-rtp/pom.xml
index 14f5dc5..b714d5b 100644
--- a/path-based-rtp/pom.xml
+++ b/path-based-rtp/pom.xml
@@ -130,6 +130,10 @@
             <artifactId>slf4j-simple</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
 
     </dependencies>
 </project>
diff --git a/path-based-rtp/src/main/java/org/apache/sling/samples/pathbasedrtp/PathBasedResourceDecorator.java b/path-based-rtp/src/main/java/org/apache/sling/samples/pathbasedrtp/PathBasedResourceDecorator.java
index 0ab24a8..a9857c7 100644
--- a/path-based-rtp/src/main/java/org/apache/sling/samples/pathbasedrtp/PathBasedResourceDecorator.java
+++ b/path-based-rtp/src/main/java/org/apache/sling/samples/pathbasedrtp/PathBasedResourceDecorator.java
@@ -24,6 +24,10 @@
 import javax.jcr.RepositoryException;
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.PropertyUnbounded;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceDecorator;
 import org.apache.sling.api.resource.ResourceWrapper;
@@ -41,12 +45,10 @@
  *  mapping applies, and "2" is the (1-based) index of the path component to
  *  use as the resource type.
  *
- * @scr.component immediate="true" label="%defaultRtp.name"
- *                description="%defaultRtp.description"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- * @scr.property name="service.description" value="Sling Sample Resource Decorator"
- * @scr.service
  */
+@Component(metatype=true, label="%defaultRtp.name", description="%defaultRtp.description")
+@Service
+@Property(name="service.description", value="Sling Sample Resource Decorator")
 public class PathBasedResourceDecorator implements ResourceDecorator {
 
     /**
@@ -54,10 +56,8 @@
      *  specify the use of path component 2 for the /content path, and add a similar
      *  definition for the /sling-test-pbrt path that is used in integration testing.
      *
-     * @scr.property
-     *  values.1="/content:2"
-     *  values.2="/sling-test-pbrt:2"
      */
+    @Property(value={"/content:2", "/sling-test-pbrt:2"}, unbounded=PropertyUnbounded.ARRAY)
     private static final String PROP_PATH_MAPPING = "path.mapping";
 
     private final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/post-servlet-extensions/pom.xml b/post-servlet-extensions/pom.xml
index 2eddd4e..7dddf40 100644
--- a/post-servlet-extensions/pom.xml
+++ b/post-servlet-extensions/pom.xml
@@ -110,6 +110,10 @@
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
         
     </dependencies>
 </project>
diff --git a/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkOperation.java b/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkOperation.java
index c13385a..6228925 100644
--- a/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkOperation.java
+++ b/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkOperation.java
@@ -20,27 +20,24 @@
 
 import javax.jcr.Item;
 import javax.jcr.Node;
-import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.Value;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.request.RequestParameter;
-import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.HtmlResponse;
 import org.apache.sling.servlets.post.AbstractSlingPostOperation;
 import org.apache.sling.servlets.post.Modification;
-import org.apache.sling.servlets.post.SlingPostOperation;
-import org.apache.sling.servlets.post.SlingPostProcessor;
 
 /**
  * This operation allows to create links between nodes.
- * 
- * @scr.component metatype="no" immediate="true"
- * @scr.service interface="org.apache.sling.servlets.post.SlingPostOperation"
- * @scr.property name="sling.post.operation" value="link"
+ *
  */
+@Component
+@Service(value=org.apache.sling.servlets.post.SlingPostOperation.class)
+@org.apache.felix.scr.annotations.Property(name="sling.post.operation", value="link")
 public class LinkOperation extends AbstractSlingPostOperation {
 
     public final LinkHelper linkHelper = new LinkHelper();
diff --git a/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkProcessor.java b/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkProcessor.java
index b234fa4..3810880 100644
--- a/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkProcessor.java
+++ b/post-servlet-extensions/src/main/java/org/apache/sling/samples/postservletextensions/internal/LinkProcessor.java
@@ -22,6 +22,9 @@
 import javax.jcr.Node;
 import javax.jcr.Session;
 
+import org.apache.felix.scr.annotations.Component;
+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.request.RequestParameter;
 import org.apache.sling.servlets.post.Modification;
@@ -30,20 +33,20 @@
 
 /**
  * This processor allows to create links between nodes.
- * 
- * @scr.component metatype="no" immediate="true"
- * @scr.service interface="org.apache.sling.servlets.post.SlingPostProcessor"
- * @scr.property name="sling.post.processor" value="link"
+ *
  */
+@Component
+@Service(value=SlingPostProcessor.class)
+@Property(name="sling.post.processor", value="link")
 public class LinkProcessor implements SlingPostProcessor {
 
 	public final LinkHelper linkHelper = new LinkHelper();
-	
+
 	public void process(SlingHttpServletRequest request,
 			List<Modification> changes) throws Exception {
 
 		Session session = request.getResourceResolver().adaptTo(Session.class);
-		
+
 		RequestParameter linkParam = request.getRequestParameter(":link");
 		if (linkParam != null){
 			String linkPath = linkParam.getString();
@@ -53,7 +56,7 @@
 				// is it possible to add the response to the method header ?
 				String resourcePath = changes.get(0).getSource();
 				Node source = (Node) session.getItem(resourcePath);
-				
+
 				// create a symetric link
 				if (session.itemExists(linkPath)) {
 					Item targetItem = session.getItem(linkPath);
@@ -63,7 +66,7 @@
 				}
 			}
 		}
-		
+
 
 	}
 }
diff --git a/simple-demo/pom.xml b/simple-demo/pom.xml
index a554c38..fb33ccb 100644
--- a/simple-demo/pom.xml
+++ b/simple-demo/pom.xml
@@ -173,5 +173,9 @@
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/simple-demo/src/main/java/org/apache/sling/sample/Navigation.java b/simple-demo/src/main/java/org/apache/sling/sample/Navigation.java
index 4983cc9..985f9b8 100644
--- a/simple-demo/src/main/java/org/apache/sling/sample/Navigation.java
+++ b/simple-demo/src/main/java/org/apache/sling/sample/Navigation.java
@@ -24,6 +24,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.SlingConstants;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
@@ -36,13 +40,14 @@
  * considered a "page" if the Content object is an instance of the
  * {@link SamplePage} class.
  *
- * @scr.component immediate="true" metatype="no"
- * @scr.property name="service.description" value="Sample Navigation Component"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- * @scr.property name="sling.servlet.resourceTypes" value="sling/sample.navigation"
- * @scr.property name="sling.servlet.methods" value="html"
- * @scr.service interface="javax.servlet.Servlet"
  */
+@Component
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+    @Property(name="service.description", value="Sample Navigation Component"),
+    @Property(name="sling.servlet.resourceTypes", value="sling/sample.navigation"),
+    @Property(name="sling.servlet.methods", value="html")
+})
 public class Navigation extends SlingSafeMethodsServlet {
 
     public static final String RESOURCE_TYPE = "sling/sample.navigation";
diff --git a/simple-demo/src/main/java/org/apache/sling/sample/filter/ZipFilter.java b/simple-demo/src/main/java/org/apache/sling/sample/filter/ZipFilter.java
index 5c6bd3c..17d8681 100644
--- a/simple-demo/src/main/java/org/apache/sling/sample/filter/ZipFilter.java
+++ b/simple-demo/src/main/java/org/apache/sling/sample/filter/ZipFilter.java
@@ -38,6 +38,10 @@
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
+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.wrappers.SlingHttpServletResponseWrapper;
@@ -61,13 +65,14 @@
  * and in fact even slows response time down !!
  * </ul>
  *
- * @scr.component metatype="no" enabled="no"
- * @scr.property name="service.description" value="Sample Request Filter"
- * @scr.property name="service.vendor" value="The Apache Software Foundation"
- * @scr.property name="filter.scope" value="request" private="true"
- * @scr.property name="filter.order" value="-2147483648" type="Integer" private="true"
- * @scr.service
  */
+@Component(enabled=false)
+@Service
+@Properties({
+    @Property(name="service.description", value="Sample Request Filter"),
+    @Property(name="filter.scope", value="request", propertyPrivate=true),
+    @Property(name="filter.order", intValue=-2147483648, propertyPrivate=true)
+})
 public class ZipFilter implements Filter {
 
     /**
diff --git a/webloader/service/pom.xml b/webloader/service/pom.xml
index be404de..2f8056b 100644
--- a/webloader/service/pom.xml
+++ b/webloader/service/pom.xml
@@ -108,5 +108,9 @@
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/webloader/service/src/main/java/org/apache/sling/samples/webloader/internal/WebLoaderImpl.java b/webloader/service/src/main/java/org/apache/sling/samples/webloader/internal/WebLoaderImpl.java
index 87c77f5..9f60218 100644
--- a/webloader/service/src/main/java/org/apache/sling/samples/webloader/internal/WebLoaderImpl.java
+++ b/webloader/service/src/main/java/org/apache/sling/samples/webloader/internal/WebLoaderImpl.java
@@ -21,47 +21,41 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.mime.MimeTypeService;
+import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.samples.webloader.Webloader;
 import org.apache.sling.samples.webloader.WebloaderJobStatus;
-import org.apache.sling.jcr.api.SlingRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/** Webloader implementation, manages WebloaderJobs
- *  
- * @scr.service
- *
- * @scr.component
- *  immediate="true"
- *  metatype="no"
- *
- * @scr.property
- *  name="service.description"
- *  value="Sling Webloader service"
- *
- * @scr.property
- *  name="service.vendor"
- *  value="The Apache Software Foundation"
+/**
+ * Webloader implementation, manages WebloaderJobs
  *
  */
+@Component(immediate=true)
+@Service
+@Property(name="service.description", value="Sling Webloader service")
 public class WebLoaderImpl implements Webloader {
-    
+
     private static final Logger log = LoggerFactory.getLogger(WebLoaderImpl.class);
-    
+
     private final Map<String, WebloaderJob> jobs = new HashMap<String, WebloaderJob>();
-    
-    /** @scr.reference */
+
+    @Reference
     private SlingRepository repository;
-    
-    /** @scr.reference */
+
+    @Reference
     private MimeTypeService mimeTypeService;
 
     /** @inheritDoc */
-    public String createJob(String webQuery, String storagePath, String 
+    public String createJob(String webQuery, String storagePath, String
             fileExtensions, int maxDocsToRetrieve, int maxDocSizeInKb) {
         deleteFinishedJobs();
-        final WebloaderJob j = new WebloaderJob(repository, mimeTypeService, 
+        final WebloaderJob j = new WebloaderJob(repository, mimeTypeService,
                 webQuery, storagePath, fileExtensions, maxDocsToRetrieve, maxDocSizeInKb);
         synchronized (jobs) {
             jobs.put(j.getJobId(), j);
@@ -83,7 +77,7 @@
                 toDelete.add(j);
             }
         }
-        
+
         synchronized (jobs) {
             for(WebloaderJob j : toDelete) {
                 jobs.remove(j.getJobId());