You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bu...@apache.org on 2013/02/03 07:45:22 UTC

svn commit: r849204 [28/33] - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/ documentation/subprojects/apache-felix-ipojo/ documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/ documentation/subprojects/apac...

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/using-ipojo-introspection-api.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/using-ipojo-introspection-api.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/using-ipojo-introspection-api.html Sun Feb  3 06:45:21 2013
@@ -20,9 +20,45 @@
   <head>
     <title>Apache Felix - Using iPOJO introspection API</title>
     <link rel="icon" href="/res/favicon.ico">
-    <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
-    <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+    <link rel="stylesheet" href="/site/media.data/site.css" type="text/css" media="all">
+    <link rel="stylesheet" href="/ipojo/site/superfish.css" type="text/css" media="all">
+    <link rel="stylesheet" href="/ipojo/site/style.css" type="text/css" media="all">
     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    
+    <!--
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
+    <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
+    -->
+    
+    <script type="text/javascript" src="/ipojo/site/jquery-1.js"></script>
+    <script type="text/javascript" src="/ipojo/site/hoverIntent.js"></script>
+    <script type="text/javascript" src="/ipojo/site/superfish.js"></script> 
+    <script type="text/javascript" src="/ipojo/site/supersubs.js"></script> 
+    
+    <script type="text/javascript"> 
+     
+        $(document).ready(function(){ 
+            $("ul.sf-menu").supersubs({ 
+                minWidth:    14,   // minimum width of sub-menus in em units 
+                maxWidth:    30,   // maximum width of sub-menus in em units 
+                extraWidth:  1     // extra width can ensure lines don't sometimes turn over 
+                                   // due to slight rounding differences and font-family 
+            }).superfish();  // call supersubs first, then superfish, so that subs are 
+                             // not display:none when measuring. Call before initialising 
+                             // containing tabs for same reason. 
+        }); 
+     
+    </script>
+    
   </head>
   <body>
     <div class="title">
@@ -37,301 +73,398 @@
         </a>
       </div>
     </div>
+  
+    <div class="main">
+    <div class="main">
+    <div class="page-header">
+    <img src="/ipojo/site/header.png" class="header">
+    <a href="http://ipojo.org"><img src="/ipojo/site/ipojo.png" width="225" class="header-logo"></a>
+    <ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
+    <li class="current">
+    <!-- Menu Overview -->
+    <a href="#" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+    <ul>
+        <li>
+        <a href="">Home</a>                          
+        </li>
+        <li>
+        <a href="">Why choose iPOJO</a>
+        </li>
+        <li>
+        <a href="">Success stories</a>
+        </li>
+        <li>
+        <a href="">Features</a>
+        </li>
+    </ul>
+    </li>   
     
-    <div class="menu"> 
-      <p><a href="/news.html">news</a>  <br />
-<a href="/license.html">license</a>  <br />
-<a href="/downloads.cgi">downloads</a>  <br />
-<a href="/documentation.html">documentation</a>  <br />
-<a href="/mailinglists.html">mailing lists</a>  <br />
-<a href="/documentation/community/contributing.html">contributing</a>  <br />
-<a href="/sitemap.html">site map</a>  <br />
-<a href="http://www.apache.org/">asf</a>  <br />
-<a href="http://www.apache.org/security/">security</a>  <br />
-<a href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a>  <br />
-<a href="http://www.apache.org/foundation/thanks.html">sponsors</a>  <br />
-</p>
-<iframe
-    src="http://www.apache.org/ads/button.html"
-    style="border-width:0; float: left"
-    frameborder="0"
-    scrolling="no"
-    width="135"
-    height="135">
-</iframe>
-    </div>
+    <li class="">           
+    <!-- Menu download -->
+    <li>
+    <a href="/downloads.cgi">Download </a>
+    </li>
     
-    <div class="main">
-      <div class="breadcrump" style="font-size: 80%;">
-        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a>&nbsp;&raquo&nbsp;<a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide.html">apache-felix-ipojo-userguide</a>&nbsp;&raquo&nbsp;<a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics.html">iPOJO Advanced Topics</a>
-      </div>
-
+    <li class="">                   
+    <!-- Menu Documentation -->
+    <a href="#" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+    <ul>
+        <!-- sub-menu : getting started -->
+        <li class="">
+        <a href="#" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+        <ul>
+         <li><a href="">iPOJO in 10 minutes</a></li>
+         <li><a href="">Using Annotations</a></li>
+         <li><a href="">Maven tutorial</a></li>
+         <li><a href="">Advanced tutorial</a></li>
+         <li><a href="">Using Distributed OSGi</a></li>
+         <li><a href="">Application Composition</a></li>
+        </ul>
+        </li> <!-- end of getting started -->
+        <!-- sub menu : Describing Components -->
+         <li class="">
+            <a href="" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+            <ul>
+            <li><a href="">Requiring a service</a></li>
+            <li><a href="">Providing a service</a></li>
+            <li><a href="">Lifecycle management</a></li>
+            <li><a href="">Configuration</a></li>
+            <li><a href="">Introspection</a></li>
+            <li><a href="">Impacting the lifecycle</a></li>
+            <li><a href="">Asynchronous communication</a></li>
+            <li><a href="">JMX management</a></li>
+            <li><a href="">Extender pattern</a></li>
+            <li><a href="">Whiteboard pattern</a></li>
+            <li><a href="">Temporal dependencies</a></li>
+            </ul>
+         </li> <!-- End of describing components -->
+        <!-- sub-menu : User Guide -->
+        <li class="">
+        <a href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+            <ul>
+            <li><a href="">iPOJO and config admin</a></li>
+            <li><a href="">Factories and Instances</a></li>
+            <li><a href="">XML Schemas</a></li>
+            <li><a href="">API</a></li>
+            <li><a href="">Testing components</a></li>
+            <li><a href="">Eclipse Integration</a></li>
+            <li><a href="">FAQ</a></li>
+            <li><a href="">Reference Card</a></li>
+            </ul>
+        </li> <!-- end of user guide -->
+        <!-- sub-menu : Dev Guide -->
+        <li> 
+        <a href="#" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+           <ul>
+            <li><a href="http://felix.apache.org/ipojo/api/1.6.0">Javadoc</a></li>
+            <li><a href="">Handler development</a></li>
+            <li><a href="">Manipulation Metadata </a></li>
+            <li><a href="">Dive into the iPOJO Manipulation depths</a></li>
+           </ul>
+        </li> <!-- End of Dev guide -->
+    </ul> 
+    </li> <!-- End of doc -->
+    <!-- Menu 4 : Tools -->
+    <li class="">
+    <a href="#" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+    <ul>
+       <li><a href="">Ant Task</a></li>
+       <li><a href="">Eclipse Plugin</a></li>
+       <li><a href="">Maven Plugin</a></li>
+       <li><a href="">`arch` shell command</a></li>
+       <li><a href="">Online Manipulator</a></li>
+       <li><a href="">Webconsole plugin</a></li>
+       <li><a href="">Junit4OSGi</a></li>
+    </ul>   
+    </li><!-- End of tools -->  
+    <!-- Menu 5 : Support -->
+    <li>
+    <a href="">Support </a>
+    </li>
+    <!-- End of the menu 5 -->          
+    <!-- Menu 6 : Misc -->
+    <li class="">
+    <a href="#" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+    <ul>
+       <li><a href="">Supported JVMs</a></li>
+       <li><a href="">Supported OSGi Implementations</a></li>
+       <li><a href="http://ipojo-dark-side.blogspot.com">iPOJO's Dark Side Blog</a></li>
+       <li><a href="">Article & Presentations</a></li>
+       <li><a href="http://www.apache.org/">ASF</a></li>
+       <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+       <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li>
+    </ul>
+    </li><!-- End of misc -->
+    </ul> <!-- End of the menu -->
+    </div> <!-- Page header -->
+  
+      <!-- 
       
       <div class="tip">
            This page is a translated version of <a href="/site/using-ipojo-introspection-api.html" target="felix_cwiki">/site/using-ipojo-introspection-api.html</a>. In case of
            doubt you might want to refer to the old page.
       </div>
       
+      -->
       
       <h1>Using iPOJO introspection API</h1>
-      <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Introspecting instances
-
-*iPOJO provides mechanisms to introspect and reconfigure instances. Those features are available from the instance description. Currently, only the reconfiguration of primitive instances is supported.*
-
-## Getting instance descriptions
-
-There is two way to get the instance description:
-* By using the `architecture` service exposed by an instance providing introspection support.
-* By calling the getInstanceDescription() method on a ComponentInstance object (that you create thanks to a Factory)
-
-{code:java|Getting the instance description from the ComponentInstance object}
-    /**
+      
+      <div class="content">
+        <h1 id="introspecting-instances">Introspecting instances</h1>
+<p><em>iPOJO provides mechanisms to introspect and reconfigure instances. Those features are available from the instance description. Currently, only the reconfiguration of primitive instances is supported.</em></p>
+<h2 id="getting-instance-descriptions">Getting instance descriptions</h2>
+<p>There is two way to get the instance description:
+<em> By using the <code>architecture</code> service exposed by an instance providing introspection support.
+</em> By calling the getInstanceDescription() method on a ComponentInstance object (that you create thanks to a Factory)</p>
+<p>{code:java|Getting the instance description from the ComponentInstance object}
+    /*<em>
      * Returns the instance description.
      * @return the instance description of the current instance
-     */
-    InstanceDescription getInstanceDescription();
-
-    h2. Introspecting primitive instances
-
-    Once you get the  object, cast it in  (be sure that it is really a primitive instance).
-    Then, you have access to every primitive instance aspects:
-    service dependencies
-    provided services
-    configuration properties
-    get created implementation objects
-
-    {code:java|title=Primitive Instance Description methods}
-        /**
-         * Gets the list of object created by the described instance.
-         * @return the created objects.
-         */
-        public String[] getCreatedObjects() {
-            ...
-        }
-
-        /**
-         * Gets the instance service dependencies.
-         * @return the set of dependency description or an empty array if
-         * no dependencies.
-         */
-        public DependencyDescription[] getDependencies() {
-            ...
-        }
-
-        /**
-         * Gets the instance service dependency matching with the given service specification or id.
-         * @param specification the service specification of the looked specification.
-         * @return the dependency description matching with the given service specification or id.
-         * <code>null</code> is not found.
-         * no dependencies.
-         */
-        public DependencyDescription getDependency(String specification) {
-            ...
-        }
-
-        /**
-         * Gets the instance provided service matching with the given service specification.
-         * @param specification the provided specification of the looked provided service.
-         * @return the provided service description matching with the given service specification.
-         * <code>null</code> is not found.
-         */
-        public ProvidedServiceDescription getProvidedService(String specification) {
-            ...
-        }
-
-        /**
-         * Gets the instance provided service.
-         * @return the set of provided service description or an empty array if
-         * no provided services.
-         */
-        public ProvidedServiceDescription[] getProvidedServices() {
-            ...
-        }
-
-        /**
-         * Gets the instance properties.
-         * @return the set of property descriptions or an empty array if
-         * no properties.
-         */
-        public PropertyDescription[] getProperties() {
-            ...
-        }
+     </em>/
+    InstanceDescription getInstanceDescription();</p>
+<div class="codehilite"><pre><span class="n">h2</span><span class="o">.</span> <span class="n">Introspecting</span> <span class="n">primitive</span> <span class="n">instances</span>
+
+<span class="n">Once</span> <span class="n">you</span> <span class="n">get</span> <span class="n">the</span>  <span class="n">object</span><span class="p">,</span> <span class="n">cast</span> <span class="n">it</span> <span class="n">in</span>  <span class="p">(</span><span class="n">be</span> <span class="n">sure</span> <span class="n">that</span> <span class="n">it</span> <span class="n">is</span> <span class="n">really</span> <span class="n">a</span> <span class="n">primitive</span> <span class="n">instance</span><span class="p">)</span><span class="o">.</span>
+<span class="n">Then</span><span class="p">,</span> <span class="n">you</span> <span class="n">have</span> <span class="n">access</span> <span class="n">to</span> <span class="n">every</span> <span class="n">primitive</span> <span class="n">instance</span> <span class="n">aspects:</span>
+<span class="n">service</span> <span class="n">dependencies</span>
+<span class="n">provided</span> <span class="n">services</span>
+<span class="n">configuration</span> <span class="n">properties</span>
+<span class="n">get</span> <span class="n">created</span> <span class="n">implementation</span> <span class="n">objects</span>
+
+<span class="p">{</span><span class="n">code:java</span><span class="o">|</span><span class="n">title</span><span class="o">=</span><span class="n">Primitive</span> <span class="n">Instance</span> <span class="n">Description</span> <span class="n">methods</span><span class="p">}</span>
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">list</span> <span class="n">of</span> <span class="n">object</span> <span class="n">created</span> <span class="n">by</span> <span class="n">the</span> <span class="n">described</span> <span class="n">instance</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">created</span> <span class="n">objects</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">String</span><span class="o">[]</span> <span class="n">getCreatedObjects</span><span class="p">()</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">service</span> <span class="n">dependencies</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">set</span> <span class="n">of</span> <span class="n">dependency</span> <span class="n">description</span> <span class="ow">or</span> <span class="n">an</span> <span class="n">empty</span> <span class="n">array</span> <span class="k">if</span>
+     <span class="o">*</span> <span class="nb">no</span> <span class="n">dependencies</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">DependencyDescription</span><span class="o">[]</span> <span class="n">getDependencies</span><span class="p">()</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">service</span> <span class="n">dependency</span> <span class="n">matching</span> <span class="n">with</span> <span class="n">the</span> <span class="n">given</span> <span class="n">service</span> <span class="n">specification</span> <span class="ow">or</span> <span class="n">id</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@param</span> <span class="n">specification</span> <span class="n">the</span> <span class="n">service</span> <span class="n">specification</span> <span class="n">of</span> <span class="n">the</span> <span class="n">looked</span> <span class="n">specification</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">dependency</span> <span class="n">description</span> <span class="n">matching</span> <span class="n">with</span> <span class="n">the</span> <span class="n">given</span> <span class="n">service</span> <span class="n">specification</span> <span class="ow">or</span> <span class="n">id</span><span class="o">.</span>
+     <span class="o">*</span> <span class="sr">&lt;code&gt;</span><span class="n">null</span><span class="sr">&lt;/code&gt;</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">found</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nb">no</span> <span class="n">dependencies</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">DependencyDescription</span> <span class="n">getDependency</span><span class="p">(</span><span class="n">String</span> <span class="n">specification</span><span class="p">)</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">provided</span> <span class="n">service</span> <span class="n">matching</span> <span class="n">with</span> <span class="n">the</span> <span class="n">given</span> <span class="n">service</span> <span class="n">specification</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@param</span> <span class="n">specification</span> <span class="n">the</span> <span class="n">provided</span> <span class="n">specification</span> <span class="n">of</span> <span class="n">the</span> <span class="n">looked</span> <span class="n">provided</span> <span class="n">service</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">provided</span> <span class="n">service</span> <span class="n">description</span> <span class="n">matching</span> <span class="n">with</span> <span class="n">the</span> <span class="n">given</span> <span class="n">service</span> <span class="n">specification</span><span class="o">.</span>
+     <span class="o">*</span> <span class="sr">&lt;code&gt;</span><span class="n">null</span><span class="sr">&lt;/code&gt;</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">found</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">ProvidedServiceDescription</span> <span class="n">getProvidedService</span><span class="p">(</span><span class="n">String</span> <span class="n">specification</span><span class="p">)</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">provided</span> <span class="n">service</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">set</span> <span class="n">of</span> <span class="n">provided</span> <span class="n">service</span> <span class="n">description</span> <span class="ow">or</span> <span class="n">an</span> <span class="n">empty</span> <span class="n">array</span> <span class="k">if</span>
+     <span class="o">*</span> <span class="nb">no</span> <span class="n">provided</span> <span class="n">services</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">ProvidedServiceDescription</span><span class="o">[]</span> <span class="n">getProvidedServices</span><span class="p">()</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+
+    <span class="o">/**</span>
+     <span class="o">*</span> <span class="n">Gets</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">properties</span><span class="o">.</span>
+     <span class="o">*</span> <span class="nv">@return</span> <span class="n">the</span> <span class="n">set</span> <span class="n">of</span> <span class="n">property</span> <span class="n">descriptions</span> <span class="ow">or</span> <span class="n">an</span> <span class="n">empty</span> <span class="n">array</span> <span class="k">if</span>
+     <span class="o">*</span> <span class="nb">no</span> <span class="n">properties</span><span class="o">.</span>
+     <span class="o">*/</span>
+    <span class="n">public</span> <span class="n">PropertyDescription</span><span class="o">[]</span> <span class="n">getProperties</span><span class="p">()</span> <span class="p">{</span>
+        <span class="o">...</span>
+    <span class="p">}</span>
+</pre></div>
 
-## Manipulating dependencies
 
-You can get service dependencies from the `PrimitiveInstanceDescription`. Once you get the dependency (`DependencyDescription` object that you want to manipulate you can call one of those method on it:
+<h2 id="manipulating-dependencies">Manipulating dependencies</h2>
+<p class=".. ">You can get service dependencies from the <code>PrimitiveInstanceDescription</code>. Once you get the dependency (<code>DependencyDescription</code> object that you want to manipulate you can call one of those method on it:
 {code:java}
-    public boolean isMultiple() { ... }
+    public boolean isMultiple()</p>
+<div class="codehilite"><pre>public boolean isOptional() { ... }
 
-    public boolean isOptional() { ... }
+public String getFilter() { ... }
 
-    public String getFilter() { ... }
+public String getInterface() { ... }
 
-    public String getInterface() { ... }
+public int getState() { ... }
 
-    public int getState() { ... }
-
-    public String getId() { ... }
-
-    public boolean supportsNullable() { ... }
+public String getId() { ... }
+
+public boolean supportsNullable() { ... }
+
+public String getDefaultImplementation() { ... }
+
+public int getPolicy() { ... }
+
+public String getComparator() { ... }
+
+public boolean isFrozen() { ... }
+
+/**
+ * Gets the service reference list.
+ * @return the list of matching service reference,
+ * <span class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span> if no service reference.
+ */
+public List getServiceReferences() { ... }
+
+/**
+ * Gets the service reference if only one service reference is used.
+ * @return the ServiceReference (only if the cardinality could be 1),
+ * or <span class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span> if no service reference.
+ */
+public ServiceReference getServiceReference() { ... }
+
+/**
+ * Gets the used service set.
+ * @return the list [service reference]() containing the used services,
+ * <span class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span> if no providers are used
+ */
+public List getUsedServices() { ... }
+
+/**
+ * Sets the dependency comparator.
+ * The reference set will be sort at the next usage.
+ * @param cmp the comparator
+ */
+public void setComparator(Comparator cmp) { ... }
+
+/**
+ * Sets the dependency filter.
+ * @param filter the new LDAP filter
+ */
+public void setFilter(Filter filter) { ... }
+
+/**
+ * Sets the dependency cardinality.
+ * @param isAgg if <span class="nt">&lt;code&gt;</span>true<span class="nt">&lt;/code&gt;</span> sets the dependency to aggregate,
+ * if <span class="nt">&lt;code&gt;</span>false<span class="nt">&lt;/code&gt;</span> sets the dependency to scalar.
+ */
+public void setAggregate(boolean isAgg) { ... }
+
+/**
+ * Sets the dependency optionality.
+ * @param isOpt if <span class="nt">&lt;code&gt;</span>true<span class="nt">&lt;/code&gt;</span> sets the dependency to optional,
+ * if <span class="nt">&lt;code&gt;</span>false<span class="nt">&lt;/code&gt;</span> sets the dependency to mandatory.
+ */
+public void setOptional(boolean isOpt) { ... }
+
+/**
+ * Gets the required service specification name.
+ * @return the required service specification class name.
+ */
+public String getSpecification() { ... }
 
-    public String getDefaultImplementation() { ... }
+These methods allows getting the dependency state as well as reconfiguring the dependency by setting a new filter...
 
-    public int getPolicy() { ... }
+There is a slightly difference between the  methods and the  method. The first ones returns the list of matching provider. The second one returns the list of currently used providers.
 
-    public String getComparator() { ... }
-
-    public boolean isFrozen() { ... }
-
-    /**
-     * Gets the service reference list.
-     * @return the list of matching service reference,
-     * <code>null</code> if no service reference.
+h2. Manipulating provided services
+You also can manipulate provided services . 
+{code:java}
+/**
+     * Gets the list of provided service specifications.
+     * @return the provided contract name.
      */
-    public List getServiceReferences() { ... }
+    public String[] getServiceSpecifications() { ... }
 
     /**
-     * Gets the service reference if only one service reference is used.
-     * @return the ServiceReference (only if the cardinality could be 1),
-     * or <code>null</code> if no service reference.
+     * Gets the list of properties.
+     * A copy of the actual property set is returned.
+     * @return the properties.
      */
-    public ServiceReference getServiceReference() { ... }
+    public Properties getProperties() { ... }
 
     /**
-     * Gets the used service set.
-     * @return the list [service reference]() containing the used services,
-     * <code>null</code> if no providers are used
+     * Adds and Updates service properties.
+     * Existing properties are updated. 
+     * New ones are added.
+     * @param props the new properties
      */
-    public List getUsedServices() { ... }
+    public void addProperties(Dictionary props) { ... }
 
     /**
-     * Sets the dependency comparator.
-     * The reference set will be sort at the next usage.
-     * @param cmp the comparator
+     * Removes service properties.
+     * @param props the properties to remove
      */
-    public void setComparator(Comparator cmp) { ... }
+    public void removeProperties(Dictionary props) { ...  }
 
     /**
-     * Sets the dependency filter.
-     * @param filter the new LDAP filter
+     * Gets provided service state.
+     * @return the state of the provided service (UNREGISTERED | REGISTRED).
      */
-    public void setFilter(Filter filter) { ... }
-
-    /**
-     * Sets the dependency cardinality.
-     * @param isAgg if <code>true</code> sets the dependency to aggregate,
-     * if <code>false</code> sets the dependency to scalar.
-     */
-    public void setAggregate(boolean isAgg) { ... }
+    public int getState() { ... }
 
     /**
-     * Sets the dependency optionality.
-     * @param isOpt if <code>true</code> sets the dependency to optional,
-     * if <code>false</code> sets the dependency to mandatory.
+     * Gets the service reference.
+     * @return the service reference (null if the service is unregistered).
      */
-    public void setOptional(boolean isOpt) { ... }
+    public ServiceReference getServiceReference() { ... }
 
     /**
-     * Gets the required service specification name.
-     * @return the required service specification class name.
+     * Gets the &#39;main&#39; service object.
+     * @return the &#39;main&#39; service object or <span class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span>
+     * if no service object are created.
      */
-    public String getSpecification() { ... }
+    public Object getService() { ... }
 
-    These methods allows getting the dependency state as well as reconfiguring the dependency by setting a new filter... 
+    public Object[] getServices() { ... }
+</pre></div>
 
-    There is a slightly difference between the  methods and the  method. The first ones returns the list of matching provider. The second one returns the list of currently used providers. 
 
-    h2. Manipulating provided services
-    You also can manipulate provided services . 
-    {code:java}
-    /**
-         * Gets the list of provided service specifications.
-         * @return the provided contract name.
-         */
-        public String[] getServiceSpecifications() { ... }
-
-        /**
-         * Gets the list of properties.
-         * A copy of the actual property set is returned.
-         * @return the properties.
-         */
-        public Properties getProperties() { ... }
-
-        /**
-         * Adds and Updates service properties.
-         * Existing properties are updated. 
-         * New ones are added.
-         * @param props the new properties
-         */
-        public void addProperties(Dictionary props) { ... }
-
-        /**
-         * Removes service properties.
-         * @param props the properties to remove
-         */
-        public void removeProperties(Dictionary props) { ...  }
-
-        /**
-         * Gets provided service state.
-         * @return the state of the provided service (UNREGISTERED | REGISTRED).
-         */
-        public int getState() { ... }
-
-        /**
-         * Gets the service reference.
-         * @return the service reference (null if the service is unregistered).
-         */
-        public ServiceReference getServiceReference() { ... }
-
-        /**
-         * Gets the 'main' service object.
-         * @return the 'main' service object or <code>null</code>
-         * if no service object are created.
-         */
-        public Object getService() { ... }
-
-        public Object[] getServices() { ... }
-
-Thanks to these method, you can get service objects, get the registered services, and manipulate service properties.
+<p class=".. ">Thanks to these method, you can get service objects, get the registered services, and manipulate service properties.
 H2. Manipulating configuration properties
-The last think that you can do from the `PrimitiveInstanceDescription` is to get configuration properties (`PropertyDescription`). 
+The last think that you can do from the <code>PrimitiveInstanceDescription</code> is to get configuration properties (<code>PropertyDescription</code>). 
 {code:java}
- /**
+ /*<em>
      * Gets the current property name.
      * @return the property name.
-     */
-    public String getName() { ... }
-
-    /**
-     * Gets the current property type.
-     * @return the property type.
-     */
-    public String getType() { ... }
-
-    /**
-     * Gets the current property value.
-     * @return the default value for the property,
-     * <code>null</code> if the property hasn't a value..
-     */
-    public String getValue() { ... }
-
-    /**
-     * Sets the property value.
-     * This method can only be called on 'living' property
-     * (properties with a {@link Property} object).
-     * @param value the new value.
-     */
-    public void setValue(Object value) { ... }
+     </em>/
+    public String getName()</p>
+<div class="codehilite"><pre>/**
+ * Gets the current property type.
+ * @return the property type.
+ */
+public String getType() { ... }
+
+/**
+ * Gets the current property value.
+ * @return the default value for the property,
+ * <span class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span> if the property hasn&#39;t a value..
+ */
+public String getValue() { ... }
+
+/**
+ * Sets the property value.
+ * This method can only be called on &#39;living&#39; property
+ * (properties with a {@link Property} object).
+ * @param value the new value.
+ */
+public void setValue(Object value) { ... }
+
+With these methods you can get a property object and update its value dynamically. 
+\\
+\\
+</pre></div>
+      </div>
+      
+      <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
 
-    With these methods you can get a property object and update its value dynamically. 
-    \\
-    \\
-    {include:apache-felix-ipojo-footer}
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+        Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
@@ -339,5 +472,18 @@ The last think that you can do from the 
         may be trademarks or registered trademarks of their respective owners.
       </div>
     </div>
+    </div>
+    
+    <script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+    </script>
+    <script type="text/javascript">
+    try{
+    var pageTracker = _gat._getTracker("UA-1518442-4");
+    pageTracker._trackPageview();
+    } catch(err) {}
+    </script>
+
   </body>
 </html>