sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From k...@apache.org
Subject svn commit: r1771567 - /sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext
Date Sun, 27 Nov 2016 11:47:16 GMT
Author: kwin
Date: Sun Nov 27 11:47:16 2016
New Revision: 1771567

URL: http://svn.apache.org/viewvc?rev=1771567&view=rev
Log:
SLING-6249 update documentation with examples how to use OSGi DS annotations

Modified:
    sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext

Modified: sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext?rev=1771567&r1=1771566&r2=1771567&view=diff
==============================================================================
--- sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext (original)
+++ sling/site/trunk/content/documentation/the-sling-engine/servlets.mdtext Sun Nov 27 11:47:16
2016
@@ -28,19 +28,23 @@ If `sling.servlet.methods` is not specif
 
 #### Registering a Servlet using Java Annotations
 
-If you are working with the default Apache Sling development stack you can use Java Annotations
from [Apache Felix Maven SCR Plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html)
to register your Sling
-servlets and describe their binding details.
+If you are working with the default Apache Sling development stack you can either use 
+* [OSGi DS annotations](https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html)
(introduced with DS 1.2/OSGi 5, properly supported since [bnd 3.0](https://github.com/bndtools/bndtools/wiki/Changes-in-3.0.0),
being used in [maven-bundle-plugin 3.0.0](http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html))
or 
+* Generic Felix SCR or Sling-specific `@SlingServlet` annotations from [Apache Felix Maven
SCR Plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html)
to register your Sling servlets:
 
-There are two ways of doing this, either with a Sling-specific @SlingServlet annotation or
with the more generic maven-scr-plugin annotations:
 
-1. The `@SlingServlet` annotation
+1. OSGi DS annotations (recommended)
 
         :::java
-        @SlingServlet(
-            resourceTypes = "sling/servlet/default",
-            selectors = "hello",
-            extensions = "html",
-            methods = "GET")
+        @Component(
+        service = { Servlet.class },
+        property = { 
+            SLING_SERVLET_RESOURCE_TYPES + "=/apps/my/type"
+            SLING_SERVLET_METHODS + "=GET",
+            SLING_SERVLET_EXTENSIONS + "=html",
+            SLING_SERVLET_SELECTORS + "=hello",
+          }
+        )
         public class MyServlet extends SlingSafeMethodsServlet {
 
             @Override
@@ -49,17 +53,16 @@ There are two ways of doing this, either
             }
         }
 
-2. The `@Properties` and `@Property` annotations
+Custom OSGi DS annotations (e.g. for Sling servlets) are not yet supported by the OSGi spec
(and therefore by bnd), but this is supposed to be fixed with DS 1.4 (OSGi 7), see also [FELIX-5396](https://issues.apache.org/jira/browse/FELIX-5396)).
+
+2. The `@SlingServlet` annotation (evaluated by maven-scr-plugin)
 
         :::java
-        @Component(metatype = true)
-        @Service(Servlet.class)
-        @Properties({
-            @Property(name = "sling.servlet.resourceTypes", value = "sling/servlet/default"),
-            @Property(name = "sling.servlet.selectors", value = "hello"),
-            @Property(name = "sling.servlet.extensions", value = "html"),
-            @Property(name = "sling.servlet.methods", value = "GET")
-        })
+        @SlingServlet(
+            resourceTypes = "/apps/my/type",
+            selectors = "hello",
+            extensions = "html",
+            methods = "GET")
         public class MyServlet extends SlingSafeMethodsServlet {
 
             @Override



Mime
View raw message