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/21 15:23:51 UTC

svn commit: r1001429 - in /websites/staging/sling/trunk/content: ./ documentation/bundles/models.html

Author: buildbot
Date: Mon Nov 21 15:23:50 2016
New Revision: 1001429

Log:
Staging update by buildbot for sling

Modified:
    websites/staging/sling/trunk/content/   (props changed)
    websites/staging/sling/trunk/content/documentation/bundles/models.html

Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Nov 21 15:23:50 2016
@@ -1 +1 @@
-1770697
+1770699

Modified: websites/staging/sling/trunk/content/documentation/bundles/models.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/models.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/models.html Mon Nov 21 15:23:50 2016
@@ -147,6 +147,7 @@ h2:hover > .headerlink, h3:hover > .head
 <li><a href="#specifying-an-alternate-adapter-class-since-110">Specifying an Alternate Adapter Class (since 1.1.0)</a></li>
 <li><a href="#associating-a-model-class-with-a-resource-type-since-130">Associating a Model Class with a Resource Type (since 1.3.0)</a></li>
 <li><a href="#exporter-framework-since-130">Exporter Framework (since 1.3.0)</a></li>
+<li><a href="#registration-of-sling-models-classes-via-bnd-plugin-since-134">Registration of Sling Models classes via BND plugin (since 1.3.4)</a></li>
 </ul>
 </div>
 <p>Many Sling projects want to be able to create model objects - POJOs which are automatically mapped from Sling objects, typically resources, but also request objects. Sometimes these POJOs need OSGi services as well.</p>
@@ -212,6 +213,8 @@ can be listed in a comma-separated list
 </pre></div>
 
 
+<p>Alternatively it is possible to list all classes individually that are Sling Models classes via the <code>Sling-Model-Classes</code> header.</p>
+<p>If you use the Sling Models BND plugin all required bundle headers are generated automatically at build time (see chapter 'Registration of Sling Models classes via BND plugin' below).</p>
 <h1 id="client-code">Client Code<a class="headerlink" href="#client-code" title="Permanent link">&para;</a></h1>
 <h2 id="adaptto">adaptTo()<a class="headerlink" href="#adaptto" title="Permanent link">&para;</a></h2>
 <p>Client code doesn't need to be aware that Sling Models is being used. It just uses the Sling Adapter framework:</p>
@@ -735,8 +738,46 @@ currently includes a single exporter, us
 <p>results in the registration of a servlet with the resource type and extension specified and a selector of 'model' (overridable 
 through the <code>@Exporter</code> annotation's <code>selector</code> attribute). When this servlet is invoked, the <code>Resource</code> will be adapted to the 
 model, exported as a <code>java.lang.String</code> (via the named Exporter) and then returned to the client.</p>
+<h1 id="registration-of-sling-models-classes-via-bnd-plugin-since-134">Registration of Sling Models classes via BND plugin (since 1.3.4)<a class="headerlink" href="#registration-of-sling-models-classes-via-bnd-plugin-since-134" title="Permanent link">&para;</a></h1>
+<p>Since Sling Models Implementation 1.3.4 it is possible to automatically generated the necessary bundle header to register the Sling Models classes contained in the Maven bundle project by using the Sling Models BND plugin - either with maven-bundle-plugin or with bnd-maven-plugin. By default the plugin generates a <code>Sling-Model-Classes</code> header.</p>
+<p>Example configuration:</p>
+<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17</pre></div></td><td class="code"><div class="codehilite"><pre><span class="nt">&lt;plugin&gt;</span>
+    <span class="nt">&lt;groupId&gt;</span>org.apache.felix<span class="nt">&lt;/groupId&gt;</span>
+    <span class="nt">&lt;artifactId&gt;</span>maven-bundle-plugin<span class="nt">&lt;/artifactId&gt;</span>
+    <span class="nt">&lt;extensions&gt;</span>true<span class="nt">&lt;/extensions&gt;</span>
+    <span class="nt">&lt;configuration&gt;</span>
+        <span class="nt">&lt;instructions&gt;</span>
+            <span class="nt">&lt;_plugin&gt;</span>org.apache.sling.bnd.models.ModelsScannerPlugin<span class="nt">&lt;/_plugin&gt;</span>
+        <span class="nt">&lt;/instructions&gt;</span>
+    <span class="nt">&lt;/configuration&gt;</span>
+    <span class="nt">&lt;dependencies&gt;</span>
+        <span class="nt">&lt;dependency&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>org.apache.sling.bnd.models<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;/dependencies&gt;</span>
+<span class="nt">&lt;/plugin&gt;</span>
+</pre></div>
+</td></tr></table>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1770697 by sseifert on Mon, 21 Nov 2016 15:15:30 +0000
+        Rev. 1770699 by sseifert on Mon, 21 Nov 2016 15:23:35 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project