felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r849204 [29/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...
Date Sun, 03 Feb 2013 06:45:22 GMT
Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-faq.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-faq.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-faq.html Sun Feb  3 06:45:21 2013
@@ -20,9 +20,45 @@
   <head>
     <title>Apache Felix - iPOJO FAQ</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,327 +73,589 @@
         </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>
-      </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="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html">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/ipojo-faq.html" target="felix_cwiki">/site/ipojo-faq.html</a>. In case of
            doubt you might want to refer to the old page.
       </div>
       
+      -->
       
       <h1>iPOJO FAQ</h1>
-      <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Apache Felix iPOJO FAQ
-
-{div:class=toc}
+      
+      <div class="content">
+        <h1 id="apache-felix-ipojo-faq">Apache Felix iPOJO FAQ</h1>
+<p>{div:class=toc}
 [TOC]
-{div}
-
-## Injecting the bundle context in a POJO
-
-It is sometimes useful to inject the bundle context in your POJO. Then, your POJO is able to deal with the OSGi environment as *regular* OSGi applications. It is possible to a POJO to get its `BundleContext`. A POJO can receive its bundle context as an argument of its constructor. The next code snippet shows an example:
+{div}</p>
+<h2 id="injecting-the-bundle-context-in-a-pojo">Injecting the bundle context in a POJO</h2>
+<p>It is sometimes useful to inject the bundle context in your POJO. Then, your POJO is able to deal with the OSGi environment as <em>regular</em> OSGi applications. It is possible to a POJO to get its <code>BundleContext</code>. A POJO can receive its bundle context as an argument of its constructor. The next code snippet shows an example:
 {code:java}
 public class ASimplePOJO{
     private BundleContext context;
     public ASimplePOJO(BundleContext bc) {
         context = bc;
         // do something...
-    }}
+    }}</p>
+<div class="codehilite"><pre><span class="n">As</span> <span class="n">you</span> <span class="n">see</span> <span class="n">on</span> <span class="n">the</span> <span class="n">previous</span> <span class="n">snippet</span><span class="p">,</span> <span class="n">the</span> <span class="n">bundle</span> <span class="n">context</span> <span class="n">is</span> <span class="n">injected</span> <span class="n">in</span> <span class="n">the</span> <span class="n">POJO</span><span class="o">.</span> <span class="n">Then</span> <span class="n">the</span> <span class="n">POJO</span> <span class="n">can</span> <span class="k">use</span> <span class="n">it</span> <span class="n">as</span> <span class="n">a</span> <span class="s">&#39;normal&#39;</span> <span class="n">bundle</span> <span class="n">context</span><span class="o">.</span> <span class="n">The</span> <span class="n">POJO</span> <span class="n">code</span> <span class="n">can:</span>
+<span class="o">*</span> <span class="n">load</span> <span class="n">classes</span>
+<span class="o">*</span> <span class="n">register</span> <span class="o">/</span> <span class="n">unregister</span> <span class="n">services</span>
+<span class="o">*</span> <span class="n">discover</span><span class="p">,</span> <span class="n">track</span> <span class="ow">and</span> <span class="k">use</span> <span class="n">services</span>
+
+<span class="n">However</span><span class="p">,</span> <span class="n">all</span> <span class="n">these</span> <span class="n">interactions</span> <span class="n">are</span> <span class="nb">no</span> <span class="n">more</span> <span class="n">managed</span> <span class="n">by</span> <span class="n">the</span> <span class="n">iPOJO</span> <span class="n">container</span><span class="o">.</span> <span class="n">So</span><span class="p">,</span> <span class="n">be</span> <span class="n">careful</span> <span class="n">to</span> <span class="n">manage</span> <span class="n">the</span> <span class="n">dynamism</span><span class="p">,</span> <span class="n">synchronization</span><span class="p">,</span> <span class="n">listeners</span><span class="o">...</span>
+
+<span class="n">h2</span><span class="o">.</span> <span class="n">Accessing</span> <span class="n">services</span> <span class="n">inside</span> <span class="n">inner</span> <span class="ow">and</span> <span class="n">anonymous</span> <span class="n">classes</span>
+
+<span class="n">An</span> <span class="n">inner</span> <span class="n">class</span> <span class="n">is</span> <span class="n">a</span> <span class="n">class</span> <span class="nb">defined</span> <span class="n">inside</span> <span class="n">another</span> <span class="n">class</span><span class="o">.</span>  <span class="n">This</span> <span class="n">mechanism</span> <span class="n">is</span> <span class="n">useful</span> <span class="n">in</span> <span class="n">order</span> <span class="n">to</span> <span class="n">avoid</span> <span class="n">creating</span> <span class="n">a</span> <span class="n">bunch</span> <span class="n">of</span> <span class="n">small</span> <span class="n">files</span><span class="o">.</span> <span class="n">So</span><span class="p">,</span> <span class="n">it</span> <span class="n">is</span> <span class="n">common</span> <span class="n">when</span> <span class="n">creating</span> <span class="n">threads</span><span class="p">,</span> <span clas
 s="n">Swing</span> <span class="n">listeners</span> <span class="o">...</span> <span class="n">Generally</span> <span class="n">speaking</span><span class="p">,</span> <span class="n">inner</span> <span class="n">classes</span> <span class="n">are</span> <span class="n">regular</span> <span class="n">classes</span> <span class="n">treated</span> <span class="n">as</span> <span class="n">separate</span> <span class="n">classes</span><span class="o">.</span> <span class="n">However</span> <span class="n">this</span> <span class="n">is</span> <span class="n">an</span> <span class="n">oversimplification</span><span class="o">.</span> <span class="n">Some</span> <span class="n">of</span> <span class="n">the</span> <span class="n">information</span> <span class="n">about</span> <span class="n">an</span> <span class="n">inner</span> <span class="n">class</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">in</span> <span class="n">its</span> <span class="n"
 >class</span> <span class="n">file</span><span class="o">.</span>  <span class="n">See</span> <span class="n">section</span> <span class="mf">4.7.5</span> <span class="k">for</span> <span class="n">further</span> <span class="n">details:</span>
+<span class="p">[</span><span class="n">http:</span><span class="sr">//</span><span class="n">java</span><span class="o">.</span><span class="n">sun</span><span class="o">.</span><span class="n">com</span><span class="sr">/docs/</span><span class="n">books</span><span class="sr">/jvms/s</span><span class="n">econd_edition</span><span class="sr">/html/</span><span class="n">ClassFile</span><span class="o">.</span><span class="n">doc</span><span class="o">.</span><span class="n">html</span><span class="p">]</span>
+
+<span class="n">An</span> <span class="n">inner</span> <span class="n">class</span> <span class="n">can</span> <span class="n">access</span> <span class="n">fields</span> <span class="n">of</span> <span class="n">its</span> <span class="n">outer</span> <span class="n">class</span><span class="o">.</span> <span class="n">Since</span> <span class="n">the</span> <span class="n">iPOJO</span> <span class="mf">1.0.0</span> <span class="n">version</span><span class="p">,</span> <span class="n">fields</span> <span class="n">managed</span> <span class="n">by</span> <span class="n">iPOJO</span><span class="p">,</span> <span class="n">such</span> <span class="n">as</span> <span class="n">a</span> <span class="n">service</span> <span class="n">dependencies</span> <span class="ow">and</span> <span class="n">properties</span><span class="p">,</span> <span class="n">are</span> <span class="n">also</span> <span class="n">available</span> <span class="n">from</span> <span class="n">the</span
 > <span class="n">inner</span> <span class="n">class</span><span class="o">.</span> <span class="n">Indeed</span><span class="p">,</span> <span class="n">iPOJO</span> <span class="n">manipulation</span> <span class="n">also</span> <span class="n">manipulates</span> <span class="n">inner</span> <span class="ow">and</span> <span class="n">nested</span> <span class="n">classes</span><span class="p">,</span> <span class="ow">and</span> <span class="n">accesses</span> <span class="n">to</span> <span class="n">outer</span> <span class="n">class</span> <span class="n">fields</span> <span class="n">are</span> <span class="n">correctly</span> <span class="n">managed</span><span class="o">.</span>
+
+<span class="n">h2</span><span class="o">.</span> <span class="n">Using</span> <span class="n">a</span> <span class="n">different</span> <span class="n">version</span> <span class="n">of</span> <span class="n">the</span> <span class="n">manipulator</span> <span class="n">during</span> <span class="n">the</span> <span class="n">manipulation</span>
+
+<span class="n">You</span> <span class="n">can</span> <span class="n">configure</span> <span class="n">the</span> <span class="n">version</span> <span class="n">of</span> <span class="n">the</span> <span class="n">manipulator</span> <span class="n">that</span> <span class="n">you</span> <span class="n">want</span> <span class="n">to</span> <span class="k">use</span> <span class="n">when</span> <span class="n">you</span><span class="err">&#39;</span><span class="n">re</span> <span class="n">using</span> <span class="n">the</span> <span class="n">maven</span><span class="o">-</span><span class="n">ipojo</span><span class="o">-</span><span class="n">plugin</span> <span class="ow">or</span> <span class="n">the</span> <span class="n">iPOJO</span> <span class="n">ant</span> <span class="n">task</span><span class="o">.</span> <span class="n">This</span> <span class="n">allows</span> <span class="n">to</span> <span class="n">benefit</span> <span class="n">latest</span> <span class="
 n">improvements</span><span class="o">.</span>
+
+<span class="n">For</span> <span class="n">Maven</span><span class="p">,</span> <span class="n">Just</span> <span class="n">declare</span> <span class="n">a</span> <span class="n">dependency</span> <span class="n">on</span> <span class="n">the</span> <span class="n">manipulator</span> <span class="n">that</span> <span class="n">you</span> <span class="n">want</span> <span class="n">to</span> <span class="k">use</span> <span class="n">in</span> <span class="n">the</span> <span class="n">maven</span><span class="o">-</span><span class="n">ipojo</span><span class="o">-</span><span class="n">plugin</span> <span class="n">plugin</span> <span class="n">section:</span>
+<span class="p">{</span><span class="n">code:xml</span><span class="o">|</span><span class="n">title</span><span class="o">=</span><span class="n">Maven</span><span class="p">}</span>
+<span class="sr">&lt;plugin&gt;</span>
+        <span class="sr">&lt;groupId&gt;</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="sr">&lt;/groupId&gt;</span>
+        <span class="sr">&lt;artifactId&gt;</span><span class="n">maven</span><span class="o">-</span><span class="n">ipojo</span><span class="o">-</span><span class="n">plugin</span><span class="sr">&lt;/artifactId&gt;</span>
+        <span class="sr">&lt;executions&gt;</span>
+          <span class="sr">&lt;execution&gt;</span>
+            <span class="sr">&lt;goals&gt;</span>
+              <span class="sr">&lt;goal&gt;</span><span class="n">ipojo</span><span class="o">-</span><span class="n">bundle</span><span class="sr">&lt;/goal&gt;</span>
+            <span class="sr">&lt;/goals&gt;</span>
+          <span class="sr">&lt;/execution&gt;</span>
+        <span class="sr">&lt;/executions&gt;</span>
+        <span class="sr">&lt;dependencies&gt;</span>
+            <span class="sr">&lt;dependency&gt;</span>
+                <span class="sr">&lt;groupId&gt;</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="sr">&lt;/groupId&gt;</span>
+                <span class="sr">&lt;artifactId&gt;</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="o">.</span><span class="n">ipojo</span><span class="o">.</span><span class="n">manipulator</span><span class="sr">&lt;/artifactId&gt;</span>
+                <span class="sr">&lt;version&gt;</span><span class="mf">1.6.2</span><span class="sr">&lt;/version&gt;</span>
+            <span class="sr">&lt;/dependency&gt;</span>
+        <span class="sr">&lt;/dependencies&gt;</span>
+      <span class="sr">&lt;/plugin&gt;</span>
+</pre></div>
 
-    As you see on the previous snippet, the bundle context is injected in the POJO. Then the POJO can use it as a 'normal' bundle context. The POJO code can:
-    * load classes
-    * register / unregister services
-    * discover, track and use services
-
-    However, all these interactions are no more managed by the iPOJO container. So, be careful to manage the dynamism, synchronization, listeners...
-
-    h2. Accessing services inside inner and anonymous classes
-
-    An inner class is a class defined inside another class.  This mechanism is useful in order to avoid creating a bunch of small files. So, it is common when creating threads, Swing listeners ... Generally speaking, inner classes are regular classes treated as separate classes. However this is an oversimplification. Some of the information about an inner class is not in its class file.  See section 4.7.5 for further details:
-    [http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html]
-
-    An inner class can access fields of its outer class. Since the iPOJO 1.0.0 version, fields managed by iPOJO, such as a service dependencies and properties, are also available from the inner class. Indeed, iPOJO manipulation also manipulates inner and nested classes, and accesses to outer class fields are correctly managed.
-
-    h2. Using a different version of the manipulator during the manipulation
-
-    You can configure the version of the manipulator that you want to use when you're using the maven-ipojo-plugin or the iPOJO ant task. This allows to benefit latest improvements.
-
-    For Maven, Just declare a dependency on the manipulator that you want to use in the maven-ipojo-plugin plugin section:
-    {code:xml|title=Maven}
-    <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-ipojo-plugin</artifactId>
-            <executions>
-              <execution>
-                <goals>
-                  <goal>ipojo-bundle</goal>
-                </goals>
-              </execution>
-            </executions>
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-                    <version>1.6.2</version>
-                </dependency>
-            </dependencies>
-          </plugin>
 
-For Ant, just configure the classpath of the iPOJO ant task with the Manipulator that you want to use:
+<p>For Ant, just configure the classpath of the iPOJO ant task with the Manipulator that you want to use:
 {code:xml|title=Ant}
 <taskdef name="ipojo"
         classname="org.apache.felix.ipojo.task.IPojoTask"
                 classpath="../ipojo/manipulator/org.apache.felix.ipojo.manipulator-1.7.0-SNAPSHOT.jar; lib/org.apache.felix.ipojo.ant-1.7.0-SNAPSHOT.jar;" />
- />
-
-    h2. Callbacks order.
-
-    A lot of handlers define callbacks to notify the implementation class. The 'core' callbacks are called in the following order:
-    {code:java}
-    @Component
-    @Provides
-    public class CallbacksOrder implements MyService {
-
-        public CallbacksOrder() {
-            System.out.println("1 Constructor");
-        }
-
-        @Bind
-        public void bind(LogService log) {
-            System.out.println("2 Bind " + log);
-        }
-
-        @Property(name="prop")
-        public void setProp(String v) {
-            System.out.println("3 Set prop " + v);
-        }
-
-        @Validate
-        public void validate() {
-            System.out.println("4 Validate");
-        }
-
-        @PostRegistration
-        public void registered(ServiceReference ref) {
-            System.out.println("5 Registered");
-        }
-
-        // --- On Service Departure ---
-
-        @Unbind
-        public void unbind(LogService log) {
-            System.out.println("6 Unbind " + log);
-        }
-
-        // Remaining of the flow
-
-        @PostUnregistration
-        public void unregistered(ServiceReference ref) {
-            System.out.println("7 Unregistered");
-        }
-
-        @Invalidate
-        public void invalidate() {
-            System.out.println("8 Invalidate");
-        }
-
-            // --- End of the callback order
-
-        public void doNothing() {
-            // Do nothing...
-        }
-
-    }
-
-## Disabling proxies in iPOJO 1.6\+
-
-iPOJO 1.6.0 has generalized the proxy usage. However this mechanism can be disabled.
+ /&gt;</p>
+<div class="codehilite"><pre><span class="n">h2</span><span class="o">.</span> <span class="n">Callbacks</span> <span class="n">order</span><span class="o">.</span>
 
-To disable the proxies on the entire framework, just set the property `ipojo.proxy` to `disabled` (this set the default 'proxy' value). This property is either a system property (`\-Dipojo.proxy=disabled` in the command line) or a framework property (given to the framework during its initialization).
-
-You can also disable proxies for specific dependencies by using the `proxy` attribute:
+<span class="n">A</span> <span class="n">lot</span> <span class="n">of</span> <span class="n">handlers</span> <span class="n">define</span> <span class="n">callbacks</span> <span class="n">to</span> <span class="n">notify</span> <span class="n">the</span> <span class="n">implementation</span> <span class="n">class</span><span class="o">.</span> <span class="n">The</span> <span class="s">&#39;core&#39;</span> <span class="n">callbacks</span> <span class="n">are</span> <span class="n">called</span> <span class="n">in</span> <span class="n">the</span> <span class="n">following</span> <span class="n">order:</span>
+<span class="p">{</span><span class="n">code:java</span><span class="p">}</span>
+<span class="nv">@Component</span>
+<span class="nv">@Provides</span>
+<span class="n">public</span> <span class="n">class</span> <span class="n">CallbacksOrder</span> <span class="n">implements</span> <span class="n">MyService</span> <span class="p">{</span>
+
+    <span class="n">public</span> <span class="n">CallbacksOrder</span><span class="p">()</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;1 Constructor&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">@Bind</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="nb">bind</span><span class="p">(</span><span class="n">LogService</span> <span class="nb">log</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;2 Bind &quot;</span> <span class="o">+</span> <span class="nb">log</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">@Property</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;prop&quot;</span><span class="p">)</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">setProp</span><span class="p">(</span><span class="n">String</span> <span class="n">v</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;3 Set prop &quot;</span> <span class="o">+</span> <span class="n">v</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">@Validate</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">validate</span><span class="p">()</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;4 Validate&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">@PostRegistration</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">registered</span><span class="p">(</span><span class="n">ServiceReference</span> <span class="nb">ref</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;5 Registered&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="sr">//</span> <span class="o">---</span> <span class="n">On</span> <span class="n">Service</span> <span class="n">Departure</span> <span class="o">---</span>
+
+    <span class="nv">@Unbind</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">unbind</span><span class="p">(</span><span class="n">LogService</span> <span class="nb">log</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;6 Unbind &quot;</span> <span class="o">+</span> <span class="nb">log</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="sr">//</span> <span class="n">Remaining</span> <span class="n">of</span> <span class="n">the</span> <span class="n">flow</span>
+
+    <span class="nv">@PostUnregistration</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">unregistered</span><span class="p">(</span><span class="n">ServiceReference</span> <span class="nb">ref</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;7 Unregistered&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">@Invalidate</span>
+    <span class="n">public</span> <span class="n">void</span> <span class="n">invalidate</span><span class="p">()</span> <span class="p">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;8 Invalidate&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+        <span class="sr">//</span> <span class="o">---</span> <span class="n">End</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="n">order</span>
+
+    <span class="n">public</span> <span class="n">void</span> <span class="n">doNothing</span><span class="p">()</span> <span class="p">{</span>
+        <span class="sr">//</span> <span class="n">Do</span> <span class="n">nothing</span><span class="o">...</span>
+    <span class="p">}</span>
+
+<span class="p">}</span>
+</pre></div>
+
+
+<h2 id="disabling-proxies-in-ipojo-1643">Disabling proxies in iPOJO 1.6+</h2>
+<p>iPOJO 1.6.0 has generalized the proxy usage. However this mechanism can be disabled.</p>
+<p>To disable the proxies on the entire framework, just set the property <code>ipojo.proxy</code> to <code>disabled</code> (this set the default 'proxy' value). This property is either a system property (<code>\-Dipojo.proxy=disabled</code> in the command line) or a framework property (given to the framework during its initialization).</p>
+<p>You can also disable proxies for specific dependencies by using the <code>proxy</code> attribute:
 {code:java}
 @Requires(proxy=false)
-private LogService log
-
-    or
-    {code:xml}
-    <requires field="log" proxy="false"/>
-
-The default value of the `proxy` attribute is the value of the `ipojo.proxy` property.
-
-## Use dynamic proxies instead of smart proxies
-
-Smart proxies are generated on the fly using bytecode generation. However this mechanism may not be always supported by the VM (like Dalvik (Android)). To disabled smart proxies (used by default) and use dynamic proxy instead, set the property `ipojo.proxy.type` to `dynamic-proxy`. This property is either a system property or a framework property.
-
-## Can I use iPOJO with other OSGi implementations?
-
-iPOJO relies on the OSGi R4.1 specification, so works on any compliant implementation. Moreover, iPOJO is weekly tested on Apache Felix, Eclipse Equinox and Knopflerfish..
-For further information, refer to the [supported OSGi implementations](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html) page and on this [blog|http://ipojo-dark-side.blogspot.com/2008/11/lessons-learned-from-ipojo-testing.html] post.
-
-## Detecting optional service unavailability
-
-Sometimes it is useful to check if an optional service dependency is fulfilled or not. In order to propose a pretty simple development model, iPOJO injects proxies by default which avoid such check (Because proxies hide such details). By disabling proxies, you can easily check to unavailability.
-
-* First, disable the proxy injection:
+private LogService log</p>
+<div class="codehilite"><pre><span class="ow">or</span>
+<span class="p">{</span><span class="n">code:xml</span><span class="p">}</span>
+<span class="o">&lt;</span><span class="n">requires</span> <span class="n">field</span><span class="o">=</span><span class="s">&quot;log&quot;</span> <span class="n">proxy</span><span class="o">=</span><span class="s">&quot;false&quot;</span><span class="o">/&gt;</span>
+</pre></div>
+
+
+<p>The default value of the <code>proxy</code> attribute is the value of the <code>ipojo.proxy</code> property.</p>
+<h2 id="use-dynamic-proxies-instead-of-smart-proxies">Use dynamic proxies instead of smart proxies</h2>
+<p>Smart proxies are generated on the fly using bytecode generation. However this mechanism may not be always supported by the VM (like Dalvik (Android)). To disabled smart proxies (used by default) and use dynamic proxy instead, set the property <code>ipojo.proxy.type</code> to <code>dynamic-proxy</code>. This property is either a system property or a framework property.</p>
+<h2 id="can-i-use-ipojo-with-other-osgi-implementations">Can I use iPOJO with other OSGi implementations?</h2>
+<p>iPOJO relies on the OSGi R4.1 specification, so works on any compliant implementation. Moreover, iPOJO is weekly tested on Apache Felix, Eclipse Equinox and Knopflerfish..
+For further information, refer to the <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html">supported OSGi implementations</a> page and on this [blog|http://ipojo-dark-side.blogspot.com/2008/11/lessons-learned-from-ipojo-testing.html] post.</p>
+<h2 id="detecting-optional-service-unavailability">Detecting optional service unavailability</h2>
+<p>Sometimes it is useful to check if an optional service dependency is fulfilled or not. In order to propose a pretty simple development model, iPOJO injects proxies by default which avoid such check (Because proxies hide such details). By disabling proxies, you can easily check to unavailability.</p>
+<ul>
+<li>
+<p>First, disable the proxy injection:
 {code:java}
 @Requires(proxy=false)
-private LogService log;
-
-    * The injected object will be a direct reference. By default, iPOJO injects a  object, on which you can call service method without checking for . To detect Nullable objects, just use 
-    {code:java}
-    @Requires(proxy=false)
-    private LogService log;
-
-    public void doSomething() {
-        if (log instanceof Nullable) {
-            // Service unavailable
-        } else {
-           // Service available
-        }
+private LogService log;</p>
+<ul>
+<li>The injected object will be a direct reference. By default, iPOJO injects a  object, on which you can call service method without checking for . To detect Nullable objects, just use 
+{code:java}
+@Requires(proxy=false)
+private LogService log;</li>
+</ul>
+<p>public void doSomething() {
+    if (log instanceof Nullable) {
+        // Service unavailable
+    } else {
+       // Service available
     }
-
-* If you prefer injecting `null` instead of a `Nullable`, just disable Nullable injection too. However, be care to check for `null` before each invocation.
+}</p>
+</li>
+<li>
+<p>If you prefer injecting <code>null</code> instead of a <code>Nullable</code>, just disable Nullable injection too. However, be care to check for <code>null</code> before each invocation.
 {code:java}
 @Requires(proxy=false, nullable=false)
-private LogService log;
-
-public void doSomething() {
+private LogService log;</p>
+</li>
+</ul>
+<p>public void doSomething() {
     if (log == null) {
         // Service unavailable
     } else {
        // Service available
     }
-}
-
-    h2. Setting the iPOJO log level
-
-    By default, iPOJO logs only warning and error messages. There are two different methods to configure the log level. First, you can set the global log level by setting the _ipojo.log.level_ system property. This replaces the default log level (warning). All iPOJO instances will be impacted.  However, each bundle containing component types can specify a different log level. To set this level, add the _ipojo-log-level_ header in your manifest. The possible values for these two properties are:
-    * info
-    * debug
-    * warning (default)
-    * error
-
-    h2. Installing iPOJO in Service Mix Kernel
+}</p>
+<div class="codehilite"><pre><span class="n">h2</span><span class="o">.</span> <span class="n">Setting</span> <span class="n">the</span> <span class="n">iPOJO</span> <span class="nb">log</span> <span class="n">level</span>
 
-    You can use iPOJO in Service Mix Kernel. To deploy and start it, just execute the following command line in the ServiceMix Kernel Shell.
-    {code:xml}
-    osgi install -s mvn:org.apache.felix/org.apache.felix.ipojo/1.2.0
-
-The iPOJO bundle is downloaded from the central maven repository.
-
-## iPOJO and File Install
-
-Thanks to File install you can create, disposed and reconfigure instances from *cfg* files. You can also reconfiguring a creatged instance (configured to expose a [ManagedService](http://felix.apache.org/site/configuration-handler.html#ConfigurationHandler-ExposingaManagedService)) with *cfg* files too. More information about this topic is available [here|http://ipojo-dark-side.blogspot.com/2009/04/ipojo-and-file-install-configuring.html].
-
-## iPOJO handler *start* level
-
-iPOJO Handlers have a *start* level. This is *not* the `OSGi Start Level`. This level is used to determine in which order handler are configured, started and stopped. Handlers with a low level are configured and started before handlers with a high level. Moreover they are stopped after handlers with a high level. By default, handlers have no level. It means that they have the maximum level (`Integer.MAX`).
-
-Here are the levels of core handlers:
-* Service Dependency: 0 (minimum level)
-* Lifecycle Callback: 1
-* Configuration Properties: 1
-* Service Providing: 3
-* Controller Handler: no level (Integer.MAX)
-* Architecture Handler: no level (Integer.MAX)
-
-From these levels, we can see that bind methods will be called before set methods from configuration properties. So, when a POJO objects, callback are called in this order:
+<span class="n">By</span> <span class="n">default</span><span class="p">,</span> <span class="n">iPOJO</span> <span class="n">logs</span> <span class="n">only</span> <span class="n">warning</span> <span class="ow">and</span> <span class="n">error</span> <span class="n">messages</span><span class="o">.</span> <span class="n">There</span> <span class="n">are</span> <span class="n">two</span> <span class="n">different</span> <span class="n">methods</span> <span class="n">to</span> <span class="n">configure</span> <span class="n">the</span> <span class="nb">log</span> <span class="n">level</span><span class="o">.</span> <span class="n">First</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">set</span> <span class="n">the</span> <span class="n">global</span> <span class="nb">log</span> <span class="n">level</span> <span class="n">by</span> <span class="n">setting</span> <span class="n">the</span> <span class="n">_ipojo</span><spa
 n class="o">.</span><span class="nb">log</span><span class="o">.</span><span class="n">level_</span> <span class="nb">system</span> <span class="n">property</span><span class="o">.</span> <span class="n">This</span> <span class="n">replaces</span> <span class="n">the</span> <span class="n">default</span> <span class="nb">log</span> <span class="n">level</span> <span class="p">(</span><span class="n">warning</span><span class="p">)</span><span class="o">.</span> <span class="n">All</span> <span class="n">iPOJO</span> <span class="n">instances</span> <span class="n">will</span> <span class="n">be</span> <span class="n">impacted</span><span class="o">.</span>  <span class="n">However</span><span class="p">,</span> <span class="nb">each</span> <span class="n">bundle</span> <span class="n">containing</span> <span class="n">component</span> <span class="n">types</span> <span class="n">can</span> <span class="n">specify</span> <span class="n">a</span> <span class="n">different</spa
 n> <span class="nb">log</span> <span class="n">level</span><span class="o">.</span> <span class="n">To</span> <span class="n">set</span> <span class="n">this</span> <span class="n">level</span><span class="p">,</span> <span class="n">add</span> <span class="n">the</span> <span class="n">_ipojo</span><span class="o">-</span><span class="nb">log</span><span class="o">-</span><span class="n">level_</span> <span class="n">header</span> <span class="n">in</span> <span class="n">your</span> <span class="n">manifest</span><span class="o">.</span> <span class="n">The</span> <span class="n">possible</span> <span class="nb">values</span> <span class="k">for</span> <span class="n">these</span> <span class="n">two</span> <span class="n">properties</span> <span class="n">are:</span>
+<span class="o">*</span> <span class="n">info</span>
+<span class="o">*</span> <span class="n">debug</span>
+<span class="o">*</span> <span class="n">warning</span> <span class="p">(</span><span class="n">default</span><span class="p">)</span>
+<span class="o">*</span> <span class="n">error</span>
+
+<span class="n">h2</span><span class="o">.</span> <span class="n">Installing</span> <span class="n">iPOJO</span> <span class="n">in</span> <span class="n">Service</span> <span class="n">Mix</span> <span class="n">Kernel</span>
+
+<span class="n">You</span> <span class="n">can</span> <span class="k">use</span> <span class="n">iPOJO</span> <span class="n">in</span> <span class="n">Service</span> <span class="n">Mix</span> <span class="n">Kernel</span><span class="o">.</span> <span class="n">To</span> <span class="n">deploy</span> <span class="ow">and</span> <span class="n">start</span> <span class="n">it</span><span class="p">,</span> <span class="n">just</span> <span class="n">execute</span> <span class="n">the</span> <span class="n">following</span> <span class="n">command</span> <span class="n">line</span> <span class="n">in</span> <span class="n">the</span> <span class="n">ServiceMix</span> <span class="n">Kernel</span> <span class="n">Shell</span><span class="o">.</span>
+<span class="p">{</span><span class="n">code:xml</span><span class="p">}</span>
+<span class="n">osgi</span> <span class="n">install</span> <span class="o">-</span><span class="n">s</span> <span class="n">mvn:org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="sr">/org.apache.felix.ipojo/</span><span class="mf">1.2.0</span>
+</pre></div>
+
+
+<p>The iPOJO bundle is downloaded from the central maven repository.</p>
+<h2 id="ipojo-and-file-install">iPOJO and File Install</h2>
+<p>Thanks to File install you can create, disposed and reconfigure instances from <em>cfg</em> files. You can also reconfiguring a creatged instance (configured to expose a <a href="http://felix.apache.org/site/configuration-handler.html#ConfigurationHandler-ExposingaManagedService">ManagedService</a>) with <em>cfg</em> files too. More information about this topic is available [here|http://ipojo-dark-side.blogspot.com/2009/04/ipojo-and-file-install-configuring.html].</p>
+<h2 id="ipojo-handler-start-level">iPOJO handler <em>start</em> level</h2>
+<p>iPOJO Handlers have a <em>start</em> level. This is <em>not</em> the <code>OSGi Start Level</code>. This level is used to determine in which order handler are configured, started and stopped. Handlers with a low level are configured and started before handlers with a high level. Moreover they are stopped after handlers with a high level. By default, handlers have no level. It means that they have the maximum level (<code>Integer.MAX</code>).</p>
+<p>Here are the levels of core handlers:
+<em> Service Dependency: 0 (minimum level)
+</em> Lifecycle Callback: 1
+<em> Configuration Properties: 1
+</em> Service Providing: 3
+<em> Controller Handler: no level (Integer.MAX)
+</em> Architecture Handler: no level (Integer.MAX)</p>
+<p>From these levels, we can see that bind methods will be called before set methods from configuration properties. So, when a POJO objects, callback are called in this order:
 1. bind methods
 1. validate method
-1. setter methods from instance configuration
-
+1. setter methods from instance configuration</p>
 <div class="info" markdown="1">
 **Changes in the 1.3.0-SNAPSHOT**
 iPOJO 1.3.0-SNAPSHOT sets the lifecycle callback handler level to 2. So, setter methods from instance properties are called before the validate method.
 </div>
 
-## Why does my bundle import unused packages?
-
-If you check iPOJO bundle imported packages, you will see that some packages where added:
-* org.apache.felix.ipojo;version= 1.2.0
-* org.apache.felix.ipojo.architecture;version= 1.2.0
-* org.osgi.service.cm;version=1.2
-* org.osgi.service.log;version=1.3
-
-The `org.apache.felix.ipojo` package is the main iPOJO package. Manipulated class use it to get access to injected values. The `org.apache.felix.ipojo.architecture` package is used to expose *Architecture* service (allowing instance introspection). This service is exposed with the bundle context from the bundle declaring the component type.
-The `org.osgi.service.cm` package is imported to publish *ManagedService* and *ManagedServiceFactory* with the bundle context from the bundle declaring the component type. So, if you look for services exposed by a bundle declaring component types, you will see *ManagedServiceFactory* services.
-Finally, the `org.osgi.service.log` is imported because iPOJO delegates log to a log service (if available). This service is get from the bundle context from the bundle declaring the component type. So, to get this service, the package of the service interface is imported.  Then, according to implementations, log services may get the bundle logging the message.
-
-## How does iPOJO compare to Declarative Services or Blueprint?
-
-The following table highlights some of the features of each system, it does not attempt to highlight every feature of each.
-
-| Dependency injection | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| Callback injection | Yes | Yes (public method only) | Yes |
-| Constructor injection | No | Yes | Yes |
-| Field injection | No | No | Yes |
-| Setter injection | Yes | Yes | Yes |
-| Proxy injection | No | Yes | Yes |
-| List injection | No | Yes | Yes |
-| Nullable injection | No | No | Yes |
-| Lifecycle | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| Callbacks (activate/deactivate) | Yes | Yes | Yes |
-| Factory pattern | Yes | Yes | Yes |
-| Lazy initialization | Yes | Yes | Yes |
-| Damping | No | Yes | Yes |
-| Field synchronization | No | No | Yes |
-| Component lifecycle control | Yes | Partial | Yes |
-| Service lifecycle control | No | No | Yes |
-| Configuration | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| Property configuration | No | Yes | Yes |
-| Field configuration | No | No | Yes |
-| Configuration Admin | Yes | No | Yes |
-| Services | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| Custom attribute type | No | Yes | Yes |
-| Lazy initialization | Yes | Yes | Yes |
-| Composite services | No | No | Yes |
-| Component description | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| XML | Yes | Yes | Yes |
-| Java annotations | No | No | Yes |
-| API | No | No | Yes |
-| Nonfunctional | Declarative Services | Blueprint | iPOJO |
-|--|--|--|--|
-| Multiple providers | Yes | Yes | No |
+<h2 id="why-does-my-bundle-import-unused-packages">Why does my bundle import unused packages?</h2>
+<p>If you check iPOJO bundle imported packages, you will see that some packages where added:
+<em> org.apache.felix.ipojo;version= 1.2.0
+</em> org.apache.felix.ipojo.architecture;version= 1.2.0
+<em> org.osgi.service.cm;version=1.2
+</em> org.osgi.service.log;version=1.3</p>
+<p>The <code>org.apache.felix.ipojo</code> package is the main iPOJO package. Manipulated class use it to get access to injected values. The <code>org.apache.felix.ipojo.architecture</code> package is used to expose <em>Architecture</em> service (allowing instance introspection). This service is exposed with the bundle context from the bundle declaring the component type.
+The <code>org.osgi.service.cm</code> package is imported to publish <em>ManagedService</em> and <em>ManagedServiceFactory</em> with the bundle context from the bundle declaring the component type. So, if you look for services exposed by a bundle declaring component types, you will see <em>ManagedServiceFactory</em> services.
+Finally, the <code>org.osgi.service.log</code> is imported because iPOJO delegates log to a log service (if available). This service is get from the bundle context from the bundle declaring the component type. So, to get this service, the package of the service interface is imported.  Then, according to implementations, log services may get the bundle logging the message.</p>
+<h2 id="how-does-ipojo-compare-to-declarative-services-or-blueprint">How does iPOJO compare to Declarative Services or Blueprint?</h2>
+<p>The following table highlights some of the features of each system, it does not attempt to highlight every feature of each.</p>
+<table>
+<thead>
+<tr>
+<th>Dependency injection</th>
+<th>Declarative Services</th>
+<th>Blueprint</th>
+<th>iPOJO</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Callback injection</td>
+<td>Yes</td>
+<td>Yes (public method only)</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Constructor injection</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Field injection</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Setter injection</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Proxy injection</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>List injection</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Nullable injection</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Lifecycle</td>
+<td>Declarative Services</td>
+<td>Blueprint</td>
+<td>iPOJO</td>
+</tr>
+<tr>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+</tr>
+<tr>
+<td>Callbacks (activate/deactivate)</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Factory pattern</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Lazy initialization</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Damping</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Field synchronization</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Component lifecycle control</td>
+<td>Yes</td>
+<td>Partial</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Service lifecycle control</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Configuration</td>
+<td>Declarative Services</td>
+<td>Blueprint</td>
+<td>iPOJO</td>
+</tr>
+<tr>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+</tr>
+<tr>
+<td>Property configuration</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Field configuration</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Configuration Admin</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Services</td>
+<td>Declarative Services</td>
+<td>Blueprint</td>
+<td>iPOJO</td>
+</tr>
+<tr>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+</tr>
+<tr>
+<td>Custom attribute type</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Lazy initialization</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Composite services</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Component description</td>
+<td>Declarative Services</td>
+<td>Blueprint</td>
+<td>iPOJO</td>
+</tr>
+<tr>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+</tr>
+<tr>
+<td>XML</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Java annotations</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>API</td>
+<td>No</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr>
+<td>Nonfunctional</td>
+<td>Declarative Services</td>
+<td>Blueprint</td>
+<td>iPOJO</td>
+</tr>
+<tr>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+<td>--</td>
+</tr>
+<tr>
+<td>Multiple providers</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+</tbody>
+</table>
+      </div>
+      
+      <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
 
-{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
@@ -365,5 +663,18 @@ The following table highlights some of t
         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>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/using-xml-schemas.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/using-xml-schemas.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/using-xml-schemas.html Sun Feb  3 06:45:21 2013
@@ -20,9 +20,45 @@
   <head>
     <title>Apache Felix - Using XML Schemas</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,103 +73,200 @@
         </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>
-      </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="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-ant-task.html">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-xml-schemas.html" target="felix_cwiki">/site/using-xml-schemas.html</a>. In case of
            doubt you might want to refer to the old page.
       </div>
       
+      -->
       
       <h1>Using XML Schemas</h1>
-      <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Using XML Schemas
-
-*iPOJO provides XML schemas to check iPOJO descriptors (i.e. metadata.xml).  Several schemas are provided in order to describe the core syntax, compositions and external handlers.*
-
-{center}
+      
+      <div class="content">
+        <h1 id="using-xml-schemas">Using XML Schemas</h1>
+<p><em>iPOJO provides XML schemas to check iPOJO descriptors (i.e. metadata.xml).  Several schemas are provided in order to describe the core syntax, compositions and external handlers.</em></p>
+<p>{center}
 | Schema | URL | 
 |--|--|
-| iPOJO Core | [http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd) |
-| iPOJO Composite | [http://felix.apache.org/ipojo/schemas/CURRENT/composite.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/composite.xsd) |
-| Temporal Dependency Handler | [http://felix.apache.org/ipojo/schemas/CURRENT/temporal.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/temporal.xsd) |
-| Whiteboard pattern handler | [http://felix.apache.org/ipojo/schemas/CURRENT/whiteboard-pattern.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/whiteboard-pattern.xsd) |
-| Extender pattern handler | [http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd) |
-| Event Admin handlers | [http://felix.apache.org/ipojo/schemas/CURRENT/event-admin.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/event-admin.xsd) |
-| JMX handler | [http://felix.apache.org/ipojo/schemas/CURRENT/jmx.xsd](http://felix.apache.org/ipojo/schemas/CURRENT/jmx.xsd) |
-{center}
-
-*Note:* the schemas are also provided inside implicated bundles.
-*Note:* to use the 'dev' schemas, replace `CURRENT` by `SNAPSHOT` in the URL.
-To use those schemas you have to declares those schemas in your metadata.xml file such as in the next snippet using the iPOJO core XML-schema:
-
-    <ipojo 
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd" 
-        xmlns="org.apache.felix.ipojo">
-        <component classname="..." ....>
-        </component>
-    </ipojo>
-
-First, declares the 'XMLSChema-instance' namespace. Then, declares used namespaces and schemas in the 'xsi:schemaLocation' attribute. This attribute contains pairs 'namespace url' separated by spaces. Finally, declares the default namespace to "org.apache.felix.ipojo". 
-You can also use several schemas in the same descriptor by using a header like:
-
-    <ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd
-            org.apache.felix.ipojo.extender http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd"
-        xmlns="org.apache.felix.ipojo"
-        xmlns:extender="org.apache.felix.ipojo.extender">
-        <component
-            classname="org.apache.felix.ipojo.junit4osgi.impl.JunitExtender">
-            <extender:extender extension="Test-Suite"
-                onArrival="onBundleArrival" onDeparture="onBundleDeparture" />
-            <callback transition="invalidate" method="stopping" />
-            <callback transition="validate" method="starting" />
-            <provides />
-        </component>
-        <instance
-            component="org.apache.felix.ipojo.junit4osgi.impl.JunitExtender" />
-    </ipojo>
-
-The only difference is contained in the 'schemaLocation' attribute, which contains several pairs. You also need to declare the namespace of the used external handler.
-If you declare schemas, the iPOJO manipulator automatically checks the validity of the descriptor against the declared schemas. Moreover, if you use 'advanced' XML Editor supporting schemas, editing iPOJO descriptors should be eased with auto-completion features.
-
-## Avoid downloading XML Schemas during the build process
-The manipulator embeds the iPOJO XML Schemas to avoid using a network connection to download them during the validation process. Keep the same url, the manipulator will just resolve the URL differently to use embedded schemas. You can also skipped this shortcut thanks the the `ignoreEmbeddedSchemas` parameter (refer to the [ant task guide](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-ant-task.html) and to the [maven plugin guide|iPOJO Maven Plug-in] for further information about configuration).
+| iPOJO Core | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd</a> |
+| iPOJO Composite | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/composite.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/composite.xsd</a> |
+| Temporal Dependency Handler | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/temporal.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/temporal.xsd</a> |
+| Whiteboard pattern handler | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/whiteboard-pattern.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/whiteboard-pattern.xsd</a> |
+| Extender pattern handler | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd</a> |
+| Event Admin handlers | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/event-admin.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/event-admin.xsd</a> |
+| JMX handler | <a href="http://felix.apache.org/ipojo/schemas/CURRENT/jmx.xsd">http://felix.apache.org/ipojo/schemas/CURRENT/jmx.xsd</a> |
+{center}</p>
+<p><em>Note:</em> the schemas are also provided inside implicated bundles.
+<em>Note:</em> to use the 'dev' schemas, replace <code>CURRENT</code> by <code>SNAPSHOT</code> in the URL.
+To use those schemas you have to declares those schemas in your metadata.xml file such as in the next snippet using the iPOJO core XML-schema:</p>
+<div class="codehilite"><pre><span class="nt">&lt;ipojo</span> 
+    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
+    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd&quot;</span> 
+    <span class="na">xmlns=</span><span class="s">&quot;org.apache.felix.ipojo&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;component</span> <span class="na">classname=</span><span class="s">&quot;...&quot;</span> <span class="err">....</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;/component&gt;</span>
+<span class="nt">&lt;/ipojo&gt;</span>
+</pre></div>
+
+
+<p>First, declares the 'XMLSChema-instance' namespace. Then, declares used namespaces and schemas in the 'xsi:schemaLocation' attribute. This attribute contains pairs 'namespace url' separated by spaces. Finally, declares the default namespace to "org.apache.felix.ipojo". 
+You can also use several schemas in the same descriptor by using a header like:</p>
+<div class="codehilite"><pre><span class="nt">&lt;ipojo</span> <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
+    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd</span>
+<span class="s">        org.apache.felix.ipojo.extender http://felix.apache.org/ipojo/schemas/CURRENT/extender-pattern.xsd&quot;</span>
+    <span class="na">xmlns=</span><span class="s">&quot;org.apache.felix.ipojo&quot;</span>
+    <span class="na">xmlns:extender=</span><span class="s">&quot;org.apache.felix.ipojo.extender&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;component</span>
+        <span class="na">classname=</span><span class="s">&quot;org.apache.felix.ipojo.junit4osgi.impl.JunitExtender&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;extender:extender</span> <span class="na">extension=</span><span class="s">&quot;Test-Suite&quot;</span>
+            <span class="na">onArrival=</span><span class="s">&quot;onBundleArrival&quot;</span> <span class="na">onDeparture=</span><span class="s">&quot;onBundleDeparture&quot;</span> <span class="nt">/&gt;</span>
+        <span class="nt">&lt;callback</span> <span class="na">transition=</span><span class="s">&quot;invalidate&quot;</span> <span class="na">method=</span><span class="s">&quot;stopping&quot;</span> <span class="nt">/&gt;</span>
+        <span class="nt">&lt;callback</span> <span class="na">transition=</span><span class="s">&quot;validate&quot;</span> <span class="na">method=</span><span class="s">&quot;starting&quot;</span> <span class="nt">/&gt;</span>
+        <span class="nt">&lt;provides</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;/component&gt;</span>
+    <span class="nt">&lt;instance</span>
+        <span class="na">component=</span><span class="s">&quot;org.apache.felix.ipojo.junit4osgi.impl.JunitExtender&quot;</span> <span class="nt">/&gt;</span>
+<span class="nt">&lt;/ipojo&gt;</span>
+</pre></div>
+
+
+<p>The only difference is contained in the 'schemaLocation' attribute, which contains several pairs. You also need to declare the namespace of the used external handler.
+If you declare schemas, the iPOJO manipulator automatically checks the validity of the descriptor against the declared schemas. Moreover, if you use 'advanced' XML Editor supporting schemas, editing iPOJO descriptors should be eased with auto-completion features.</p>
+<h2 id="avoid-downloading-xml-schemas-during-the-build-process">Avoid downloading XML Schemas during the build process</h2>
+<p>The manipulator embeds the iPOJO XML Schemas to avoid using a network connection to download them during the validation process. Keep the same url, the manipulator will just resolve the URL differently to use embedded schemas. You can also skipped this shortcut thanks the the <code>ignoreEmbeddedSchemas</code> parameter (refer to the <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-ant-task.html">ant task guide</a> and to the [maven plugin guide|iPOJO Maven Plug-in] for further information about configuration).</p>
+      </div>
+      
+      <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
 
-{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
@@ -141,5 +274,18 @@ The manipulator embeds the iPOJO XML Sch
         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>



Mime
View raw message