You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2016/11/27 11:57:45 UTC
svn commit: r1001707 - in /websites/staging/sling/trunk/content: ./
documentation/the-sling-engine/servlets.html
Author: buildbot
Date: Sun Nov 27 11:57:45 2016
New Revision: 1001707
Log:
Staging update by buildbot for sling
Modified:
websites/staging/sling/trunk/content/ (props changed)
websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html
Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sun Nov 27 11:57:45 2016
@@ -1 +1 @@
-1771571
+1771572
Modified: websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html (original)
+++ websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html Sun Nov 27 11:57:45 2016
@@ -176,35 +176,34 @@ to a script or and servlet.</p>
<p>If you are working with the default Apache Sling development stack you can either use </p>
<ul>
<li><a href="https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html">OSGi DS annotations</a> (introduced with DS 1.2/OSGi 5, properly supported since <a href="https://github.com/bndtools/bndtools/wiki/Changes-in-3.0.0">bnd 3.0</a>, being used in <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">maven-bundle-plugin 3.0.0</a>) or </li>
-<li>
-<p>Generic Felix SCR or Sling-specific <code>@SlingServlet</code> annotations from <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html">Apache Felix Maven SCR Plugin</a> to register your Sling servlets:</p>
-</li>
-<li>
-<p>OSGi DS annotations (recommended)</p>
-<div class="codehilite"><pre><span class="nd">@Component</span><span class="o">(</span>
-<span class="n">service</span> <span class="o">=</span> <span class="o">{</span> <span class="n">Servlet</span><span class="o">.</span><span class="na">class</span> <span class="o">},</span>
-<span class="n">property</span> <span class="o">=</span> <span class="o">{</span>
- <span class="n">SLING_SERVLET_RESOURCE_TYPES</span> <span class="o">+</span> <span class="s">"=/apps/my/type"</span>
- <span class="n">SLING_SERVLET_METHODS</span> <span class="o">+</span> <span class="s">"=GET"</span><span class="o">,</span>
- <span class="n">SLING_SERVLET_EXTENSIONS</span> <span class="o">+</span> <span class="s">"=html"</span><span class="o">,</span>
- <span class="n">SLING_SERVLET_SELECTORS</span> <span class="o">+</span> <span class="s">"=hello"</span><span class="o">,</span>
- <span class="o">}</span>
-<span class="o">)</span>
-<span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyServlet</span> <span class="kd">extends</span> <span class="n">SlingSafeMethodsServlet</span> <span class="o">{</span>
+<li>Generic Felix SCR or Sling-specific <code>@SlingServlet</code> annotations from <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html">Apache Felix Maven SCR Plugin</a> to register your Sling servlets:</li>
+</ul>
+<p>The following examples show example code how you can register Servlets with Sling
+1. OSGi DS annotations (recommended)</p>
+<div class="codehilite"><pre> <span class="p">:::</span><span class="n">java</span>
+ <span class="p">@</span><span class="n">Component</span><span class="p">(</span>
+ <span class="n">service</span> <span class="p">=</span> <span class="p">{</span> <span class="n">Servlet</span><span class="p">.</span><span class="n">class</span> <span class="p">},</span>
+ <span class="n">property</span> <span class="p">=</span> <span class="p">{</span>
+ <span class="n">SLING_SERVLET_RESOURCE_TYPES</span> <span class="o">+</span> "<span class="p">=</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">my</span><span class="o">/</span><span class="n">type</span>"
+ <span class="n">SLING_SERVLET_METHODS</span> <span class="o">+</span> "<span class="p">=</span><span class="n">GET</span>"<span class="p">,</span>
+ <span class="n">SLING_SERVLET_EXTENSIONS</span> <span class="o">+</span> "<span class="p">=</span><span class="n">html</span>"<span class="p">,</span>
+ <span class="n">SLING_SERVLET_SELECTORS</span> <span class="o">+</span> "<span class="p">=</span><span class="n">hello</span>"<span class="p">,</span>
+ <span class="p">}</span>
+ <span class="p">)</span>
+ <span class="n">public</span> <span class="n">class</span> <span class="n">MyServlet</span> <span class="n">extends</span> <span class="n">SlingSafeMethodsServlet</span> <span class="p">{</span>
+
+ <span class="p">@</span><span class="n">Override</span>
+ <span class="n">protected</span> <span class="n">void</span> <span class="n">doGet</span><span class="p">(</span><span class="n">SlingHttpServletRequest</span> <span class="n">request</span><span class="p">,</span> <span class="n">SlingHttpServletResponse</span> <span class="n">response</span><span class="p">)</span> <span class="n">throws</span> <span class="n">ServletException</span><span class="p">,</span> <span class="n">IOException</span> <span class="p">{</span>
+ <span class="p">...</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
- <span class="nd">@Override</span>
- <span class="kd">protected</span> <span class="kt">void</span> <span class="nf">doGet</span><span class="o">(</span><span class="n">SlingHttpServletRequest</span> <span class="n">request</span><span class="o">,</span> <span class="n">SlingHttpServletResponse</span> <span class="n">response</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ServletException</span><span class="o">,</span> <span class="n">IOException</span> <span class="o">{</span>
- <span class="o">...</span>
- <span class="o">}</span>
-<span class="o">}</span>
+<span class="n">Custom</span> <span class="n">OSGi</span> <span class="n">DS</span> <span class="n">annotations</span> <span class="p">(</span><span class="n">e</span><span class="p">.</span><span class="n">g</span><span class="p">.</span> <span class="k">for</span> <span class="n">Sling</span> <span class="n">servlets</span><span class="p">)</span> <span class="n">are</span> <span class="n">not</span> <span class="n">yet</span> <span class="n">supported</span> <span class="n">by</span> <span class="n">the</span> <span class="n">OSGi</span> <span class="n">spec</span> <span class="p">(</span><span class="n">and</span> <span class="n">therefore</span> <span class="n">by</span> <span class="n">bnd</span><span class="p">),</span> <span class="n">but</span> <span class="n">this</span> <span class="n">is</span> <span class="n">supposed</span> <span class="n">to</span> <span class="n">be</span> <span class="n">fixed</span> <span class="n">with</span> <span class="n">DS</span> 1<span class
="p">.</span>4 <span class="p">(</span><span class="n">OSGi</span> 7<span class="p">),</span> <span class="n">see</span> <span class="n">also</span> <span class="p">[</span><span class="n">FELIX</span><span class="o">-</span>5396<span class="p">](</span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">issues</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">jira</span><span class="o">/</span><span class="n">browse</span><span class="o">/</span><span class="n">FELIX</span><span class="o">-</span>5396<span class="p">).</span>
</pre></div>
-<p>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 <a href="https://issues.apache.org/jira/browse/FELIX-5396">FELIX-5396</a>.</p>
-</li>
-<li>
-<p>The <code>@SlingServlet</code> annotation (evaluated by maven-scr-plugin)</p>
-<div class="codehilite"><pre><span class="nd">@SlingServlet</span><span class="o">(</span>
+<ol>
+<li>The <code>@SlingServlet</code> annotation (evaluated by maven-scr-plugin)<div class="codehilite"><pre><span class="nd">@SlingServlet</span><span class="o">(</span>
<span class="n">resourceTypes</span> <span class="o">=</span> <span class="s">"/apps/my/type"</span><span class="o">,</span>
<span class="n">selectors</span> <span class="o">=</span> <span class="s">"hello"</span><span class="o">,</span>
<span class="n">extensions</span> <span class="o">=</span> <span class="s">"html"</span><span class="o">,</span>
@@ -220,7 +219,7 @@ to a script or and servlet.</p>
</li>
-</ul>
+</ol>
<h3 id="automated-tests">Automated tests<a class="headerlink" href="#automated-tests" title="Permanent link">¶</a></h3>
<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/">launchpad/test-services</a> module contains test servlets that use various combinations of the above properties.</p>
<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/">launchpad/integration-tests</a> module contains a number of tests (like the [ExtensionServletTest|http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolution/ExtensionServletTest.java] for example) that verify the results.</p>
@@ -295,7 +294,7 @@ The mechanism helping the provider here
<h2 id="error-handler-servlets-or-scripts">Error Handler Servlet(s) or Scripts<a class="headerlink" href="#error-handler-servlets-or-scripts" title="Permanent link">¶</a></h2>
<p>Error handling support is described on the <a href="/documentation/the-sling-engine/errorhandling.html">Errorhandling</a> page.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1771571 by kwin on Sun, 27 Nov 2016 11:55:54 +0000
+ Rev. 1771572 by kwin on Sun, 27 Nov 2016 11:57:36 +0000
</div>
<div class="trademarkFooter">
Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project