Author: buildbot
Date: Sat Mar  7 21:56:15 2015
New Revision: 942795

Log:
Staging update by buildbot for felix

Modified:
    websites/staging/felix/trunk/content/   (props changed)
    
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/dependency-configuration.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat Mar  7 21:56:15 2015
@@ -1 +1 @@
-1664924
+1664925

Modified: 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/dependency-configuration.html
==============================================================================
--- 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/dependency-configuration.html
 (original)
+++ 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/dependency-configuration.html
 Sat Mar  7 21:56:15 2015
@@ -75,6 +75,7 @@
 <p>Annotation attributes:</p>
 <ul>
 <li><em>pid</em>: Returns the pid for a given service (by default, the pid is 
the service class name).</li>
+<li><em>pidClass</em>: Will the the name of the specified class as the the pid 
for a given service (by default, the pid is the service class name).</li>
 <li><em>propagate</em>: Returns true if the configuration properties must be 
published along with the service. Any additional service properties specified 
directly are merged with these.</li>
 <li><em>heading</em>: The label used to display the tab name (or section) 
where the properties are displayed. Example: "Printer Service".</li>
 <li><em>description</em>: A human readable description of the PID this 
annotation is associated with. Example: "Configuration for the PrinterService 
bundle".</li>
@@ -94,36 +95,45 @@
 </pre></div>
 
 
-<p>This other example shows how to specify a configuration dependency, as well 
as meta data used to customize the WebConsole GUI. Using these meta data, you 
can specify for example the default value for your configurations data, some 
descriptions, the cardinality of configuration values, etc ...</p>
-<div class="codehilite"><pre><span class="kn">package</span> <span 
class="n">org</span><span class="o">.</span><span class="na">apache</span><span 
class="o">.</span><span class="na">felix</span><span class="o">.</span><span 
class="na">sample</span><span class="o">;</span>
+<p>This other example shows how to specify a configuration dependency, as well 
as meta data used to customize the 
+WebConsole GUI. Using these meta data, you can specify for example the default 
value for your 
+configurations data, some descriptions, the cardinality of configuration 
values, etc ...
+(we use here standard bnd metatype annotations, <a 
href="http://www.aqute.biz/Bnd/MetaType";>see bnd metatype documentation 
here</a>.</p>
+<p>First, we define the configuration metadata, using standard bndtools 
metatatype annotations:</p>
+<div class="codehilite"><pre> <span class="p">:::</span><span 
class="n">java</span>
+ <span class="n">package</span> <span class="n">sample</span><span 
class="p">;</span>
+ <span class="n">import</span> <span class="n">aQute</span><span 
class="p">.</span><span class="n">bnd</span><span class="p">.</span><span 
class="n">annotation</span><span class="p">.</span><span 
class="n">metatype</span><span class="p">.</span><span 
class="n">Meta</span><span class="p">.</span><span class="n">AD</span><span 
class="p">;</span>
+ <span class="n">import</span> <span class="n">aQute</span><span 
class="p">.</span><span class="n">bnd</span><span class="p">.</span><span 
class="n">annotation</span><span class="p">.</span><span 
class="n">metatype</span><span class="p">.</span><span 
class="n">Meta</span><span class="p">.</span><span class="n">OCD</span><span 
class="p">;</span>
 
-<span class="nd">@Component</span>
-<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">Printer</span> <span class="o">{</span>
-    <span class="nd">@ConfigurationDependency</span><span class="o">(</span>
-        <span class="n">heading</span> <span class="o">=</span> <span 
class="s">&quot;Printer Service&quot;</span><span class="o">,</span>
-        <span class="n">description</span> <span class="o">=</span> <span 
class="s">&quot;Declare here parameters used to configure the Printer 
service&quot;</span><span class="o">,</span>
-        <span class="n">metadata</span> <span class="o">=</span> <span 
class="o">{</span>
-            <span class="nd">@PropertyMetaData</span><span 
class="o">(</span><span class="n">heading</span> <span class="o">=</span> <span 
class="s">&quot;Ip Address&quot;</span><span class="o">,</span>
-                              <span class="n">description</span> <span 
class="o">=</span> <span class="s">&quot;Enter the ip address for the Printer 
service&quot;</span><span class="o">,</span>
-                              <span class="n">defaults</span> <span 
class="o">=</span> <span class="o">{</span> <span 
class="s">&quot;127.0.0.1&quot;</span> <span class="o">},</span>
-                              <span class="n">type</span> <span 
class="o">=</span> <span class="n">String</span><span class="o">.</span><span 
class="na">class</span><span class="o">,</span>
-                              <span class="n">id</span> <span 
class="o">=</span> <span class="s">&quot;IPADDR&quot;</span><span 
class="o">,</span>
-                              <span class="n">cardinality</span> <span 
class="o">=</span> <span class="mi">0</span><span class="o">),</span>
-            <span class="nd">@PropertyMetaData</span><span 
class="o">(</span><span class="n">heading</span> <span class="o">=</span> <span 
class="s">&quot;Port Number&quot;</span><span class="o">,</span>
-                              <span class="n">description</span> <span 
class="o">=</span> <span class="s">&quot;Enter the port number for the Printer 
service&quot;</span><span class="o">,</span>
-                              <span class="n">defaults</span> <span 
class="o">=</span> <span class="o">{</span> <span 
class="s">&quot;4444&quot;</span> <span class="o">},</span>
-                              <span class="n">type</span> <span 
class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span 
class="na">class</span><span class="o">,</span>
-                              <span class="n">id</span> <span 
class="o">=</span> <span class="s">&quot;PORTNUM&quot;</span><span 
class="o">,</span>
-                              <span class="n">cardinality</span> <span 
class="o">=</span> <span class="mi">0</span><span class="o">)</span>
-             <span class="o">}</span>
-    <span class="o">)</span>
-    <span class="kt">void</span> <span class="nf">updated</span><span 
class="o">(</span><span class="n">Dictionary</span> <span 
class="n">config</span><span class="o">)</span> <span class="o">{</span>
-        <span class="c1">// load configuration from the provided 
dictionary.</span>
-    <span class="o">}</span>
-<span class="o">}</span>
+ <span class="p">@</span><span class="n">OCD</span><span 
class="p">(</span><span class="n">description</span> <span class="p">=</span> 
&quot;<span class="n">Declare</span> <span class="n">here</span> <span 
class="n">the</span> <span class="n">Printer</span> <span 
class="n">Configuration</span><span class="p">.</span>&quot;<span 
class="p">)</span>
+ <span class="n">public</span> <span class="n">interface</span> <span 
class="n">PrinterConfiguration</span> <span class="p">{</span>
+     <span class="p">@</span><span class="n">AD</span><span 
class="p">(</span><span class="n">description</span> <span class="p">=</span> 
&quot;<span class="n">Enter</span> <span class="n">the</span> <span 
class="n">printer</span> <span class="n">ip</span> <span 
class="n">address</span>&quot;<span class="p">)</span>
+     <span class="n">String</span> <span class="n">ipAddress</span><span 
class="p">();</span>
+
+     <span class="p">@</span><span class="n">AD</span><span 
class="p">(</span><span class="n">description</span> <span class="p">=</span> 
&quot;<span class="n">Enter</span> <span class="n">the</span> <span 
class="n">printer</span> <span class="n">address</span> <span 
class="n">port</span> <span class="n">number</span><span 
class="p">.</span>&quot;<span class="p">)</span>
+     <span class="n">int</span> <span class="n">portNumber</span><span 
class="p">();</span>
+ <span class="p">}</span>
+</pre></div>
+
+
+<p>Next, we define our Printer service which instantiates the 
PrinterConfiguration using the *Configurable" bndlib helper:</p>
+<div class="codehilite"><pre> <span class="n">package</span> <span 
class="n">sample</span><span class="p">;</span>
+ <span class="n">import</span> <span class="n">aQute</span><span 
class="p">.</span><span class="n">bnd</span><span class="p">.</span><span 
class="n">annotation</span><span class="p">.</span><span 
class="n">metatype</span><span class="o">.*</span><span class="p">;</span>
+
+ <span class="p">@</span><span class="n">Component</span>
+ <span class="n">public</span> <span class="n">class</span> <span 
class="n">Printer</span> <span class="p">{</span>
+     <span class="p">@</span><span 
class="n">ConfigurationDependency</span><span class="p">(</span><span 
class="n">pidClass</span> <span class="p">=</span> <span 
class="n">PrinterConfiguration</span><span class="p">.</span><span 
class="n">class</span><span class="p">)</span> <span class="o">//</span> <span 
class="n">Will</span> <span class="n">use</span> <span class="n">pid</span> 
&quot;<span class="n">sample</span><span class="p">.</span><span 
class="n">PrinterConfiguration</span>&quot;
+     <span class="n">void</span> <span class="n">updated</span><span 
class="p">(</span><span class="n">Dictionary</span> <span 
class="n">props</span><span class="p">)</span> <span class="p">{</span>
+         <span class="o">//</span> <span class="n">load</span> <span 
class="n">configuration</span> <span class="n">from</span> <span 
class="n">the</span> <span class="n">provided</span> <span 
class="n">dictionary</span><span class="p">,</span> <span class="n">or</span> 
<span class="n">throw</span> <span class="n">an</span> <span 
class="n">exception</span> <span class="n">of</span> <span class="n">any</span> 
<span class="n">configuration</span> <span class="n">error</span><span 
class="p">.</span>
+         <span class="n">PrinterConfig</span> <span class="n">cnf</span> <span 
class="p">=</span> <span class="n">Configurable</span><span 
class="p">.</span><span class="n">createConfigurable</span><span 
class="p">(</span><span class="n">PrinterConfig</span><span 
class="p">.</span><span class="n">class</span><span class="p">,</span> <span 
class="n">props</span><span class="p">);</span>
+         <span class="n">String</span> <span class="n">ip</span> <span 
class="p">=</span> <span class="n">cnf</span><span class="p">.</span><span 
class="n">ipAddress</span><span class="p">();</span>
+         <span class="n">int</span> <span class="n">port</span> <span 
class="p">=</span> <span class="n">cnf</span><span class="p">.</span><span 
class="n">portNumber</span><span class="p">();</span>
+         <span class="p">...</span>
+     <span class="p">}</span>
+ <span class="p">}</span>
 </pre></div>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; 
text-align: right;">
-        Rev. 1664040 by marrs on Wed, 4 Mar 2015 15:21:58 +0000
+        Rev. 1664925 by pderop on Sat, 7 Mar 2015 21:56:01 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache 
Felix project


Reply via email to