felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r849691 - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/apache-felix-ipojo/ documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/
Date Thu, 07 Feb 2013 10:01:46 GMT
Author: buildbot
Date: Thu Feb  7 10:01:45 2013
New Revision: 849691

Log:
Staging update by buildbot for felix

Modified:
    websites/staging/felix/trunk/content/   (props changed)
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-keypoints.html
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedvms.html
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/ipojo-reference-card.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Feb  7 10:01:45 2013
@@ -1 +1 @@
-1443379
+1443380

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html Thu Feb  7 10:01:45 2013
@@ -153,59 +153,73 @@
         <div class="content">
             <h1 id="how-to-use-ipojo-manipulation-metadata">How to use iPOJO Manipulation Metadata</h1>
 <p><em>During the manipulation process, iPOJO gathers information about the manipulated classes. These metadata are stored inside the bundle manifest and are used to avoid reflection on the manipulated class. By using these metadata, your handler can check that the implementation class contains required fields, methods, check implemented interfaces.</em></p>
-<p>{div:class=toc}
-[TOC]
-{div}</p>
+<div class="toc">
+<ul>
+<li><a href="#how-to-use-ipojo-manipulation-metadata">How to use iPOJO Manipulation Metadata</a><ul>
+<li><a href="#contained-information">Contained information</a></li>
+<li><a href="#building-manipulation-metadata">Building Manipulation Metadata</a></li>
+<li><a href="#getting-metadata">Getting Metadata</a></li>
+<li><a href="#creating-callback-from-manipulation-metadata">Creating Callback from Manipulation Metadata</a></li>
+<li><a href="#types-reflective-types">Types &amp; Reflective Types</a></li>
+</ul>
+</li>
+</ul>
+</div>
 <h2 id="contained-information">Contained information</h2>
-<p>Manipulation metadata contains:
-<em> Interfaces implemented by component type implementation
-</em> Fields of the component type implementation
-* Methods of the component type implementation</p>
+<p>Manipulation metadata contains:</p>
+<ul>
+<li>Interfaces implemented by component type implementation</li>
+<li>Fields of the component type implementation</li>
+<li>Methods of the component type implementation</li>
+</ul>
 <p>Field Metadata contains field name and type. Method Metadata contains method name, the sorted list of argument types and return type.</p>
 <h2 id="building-manipulation-metadata">Building Manipulation Metadata</h2>
 <p>Manipulation (i.e. PojoMetadata) can be obtained form the factory of a (primitive) component type such as in:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">configure</span><span class="p">(</span><span class="n">InstanceManager</span> <span class="n">im</span><span class="p">,</span> <span class="n">Element</span> <span class="n">metadata</span><span class="p">,</span> <span class="n">Dictionary</span> <span class="n">configuration</span><span class="p">)</span>  <span class="p">{</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="n">InstanceManager</span> <span class="n">im</span><span class="o">,</span> <span class="n">Element</span> <span class="n">metadata</span><span class="o">,</span> <span class="n">Dictionary</span> <span class="n">configuration</span><span class="o">)</span>  <span class="o">{</span>
     <span class="o">...</span>
-    <span class="n">PojoMetadata</span> <span class="n">manipulation</span> <span class="o">=</span> <span class="n">getFactory</span><span class="p">()</span><span class="o">.</span><span class="n">getPojoMetadata</span><span class="p">();</span>
+    <span class="n">PojoMetadata</span> <span class="n">manipulation</span> <span class="o">=</span> <span class="n">getFactory</span><span class="o">().</span><span class="na">getPojoMetadata</span><span class="o">();</span>
     <span class="o">...</span>
-<span class="p">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <h2 id="getting-metadata">Getting Metadata</h2>
-<p>From the manipulation metadata, you can query manipulation information by using following methods:
-<em> MethodMetadata[]() getMethods() : Get all methods
-</em> FieldMetadata[]() getFields() : Get all fields
-<em> String[]() getInterfaces() : Get all implemented interfaces
-</em> FieldMetadata getField(String name) : Look for the field with the given name. Returns null if not found.
-<em> FieldMetadata getField(String name, String type): Look for the field with the given name and type. Returns null if not found.
-</em> boolean isInterfaceImplemented(String itf) : Is the given interface name implemented by the manipulated class.
-<em> MethodMetadata getMethod(String name) : Look for the method with the given name. Returns null if not found. Returns the first found if several method match.
-</em> MethodMetadata[]() getMethods(String name) : Look for all methods with the given name. Returns an empty array if not found.
-* MethodMetadata getMethod(String name, String[]() types) : Look for the method with the given name and argument type list. Returns null if not found.</p>
+<p>From the manipulation metadata, you can query manipulation information by using following methods:</p>
+<ul>
+<li><code>MethodMetadata[] getMethods()</code> : Get all methods</li>
+<li><code>FieldMetadata[] getFields()</code> : Get all fields</li>
+<li><code>String[] getInterfaces()</code> : Get all implemented interfaces</li>
+<li><code>FieldMetadata getField(String name)</code> : Look for the field with the given name. Returns null if not found.</li>
+<li><code>FieldMetadata getField(String name, String type)</code>: Look for the field with the given name and type. Returns null if not found.</li>
+<li><code>boolean isInterfaceImplemented(String itf)</code> : Is the given interface name implemented by the manipulated class.</li>
+<li><code>MethodMetadata getMethod(String name)</code> : Look for the method with the given name. Returns null if not found. Returns the first found if several method match.</li>
+<li><code>MethodMetadata[] getMethods(String name)</code> : Look for all methods with the given name. Returns an empty array if not found.</li>
+<li><code>MethodMetadata getMethod(String name, String[] types)</code> : Look for the method with the given name and argument type list. Returns null if not found.</li>
+</ul>
 <p>From a Field Metadata object, you can obtain the field name, type, and 'reflective' type. From a Method Metadata object, you can obtain the method name, the argument type array, and the returned type ('void' for void method).</p>
 <h2 id="creating-callback-from-manipulation-metadata">Creating Callback from Manipulation Metadata</h2>
 <p>You often need to invoke method on the POJO objects. iPOJO provides an helper class, named Callback, allow you to manage this invocation easily. You can obtain a Callback object from the Method Metadata. By this way, you are sure that the method exists in the implementation. To create the callback, use the following code:</p>
-<div class="codehilite"><pre>    <span class="n">PojoMetadata</span> <span class="n">manip</span> <span class="o">=</span> <span class="n">getFactory</span><span class="p">()</span><span class="o">.</span><span class="n">getPojoMetadata</span><span class="p">();</span>
-    <span class="n">MethodMetadata</span> <span class="n">method</span> <span class="o">=</span> <span class="n">manip</span><span class="o">.</span><span class="n">getMethod</span><span class="p">(</span><span class="s">&quot;your_method_name&quot;</span><span class="p">);</span>
-    <span class="n">Callback</span> <span class="n">cb</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Callback</span><span class="p">(</span><span class="n">method</span><span class="p">,</span> <span class="n">im</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="n">PojoMetadata</span> <span class="n">manip</span> <span class="o">=</span> <span class="n">getFactory</span><span class="o">().</span><span class="na">getPojoMetadata</span><span class="o">();</span>
+<span class="n">MethodMetadata</span> <span class="n">method</span> <span class="o">=</span> <span class="n">manip</span><span class="o">.</span><span class="na">getMethod</span><span class="o">(</span><span class="s">&quot;your_method_name&quot;</span><span class="o">);</span>
+<span class="n">Callback</span> <span class="n">cb</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Callback</span><span class="o">(</span><span class="n">method</span><span class="o">,</span> <span class="n">im</span><span class="o">);</span>
 </pre></div>
 
 
 <p>Then you can directly invoke your method:</p>
-<div class="codehilite"><pre>    <span class="o">...</span>
-    <span class="n">Object</span><span class="o">[]</span> <span class="n">args</span> <span class="o">=</span> <span class="o">...</span><span class="p">;</span>  <span class="sr">//</span> <span class="n">Build</span> <span class="n">your</span> <span class="n">argument</span> <span class="n">array</span>
-    <span class="n">cb</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">args</span><span class="p">);</span>
-    <span class="o">...</span>
+<div class="codehilite"><pre><span class="n">Object</span><span class="o">[]</span> <span class="n">args</span> <span class="o">=</span> <span class="o">...;</span>  <span class="c1">// Build your argument array</span>
+<span class="n">cb</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="n">args</span><span class="o">);</span>
+<span class="o">...</span>
 </pre></div>
 
 
 <h2 id="types-reflective-types">Types &amp; Reflective Types</h2>
-<p>When querying field (or a method argument) type, the API returns following code identifiers:
-<em> For primitive types : int, long, short, byte, char, double, float, boolean
-</em> For primitives type arrays : int[](), long[], short[], byte[], char[], double[], float[], boolean[]
-<em> For object : qualified class name as java.lang.String
-</em> For object arrays : the qualified class name of the content type followed by []() as java.lang.String[]</p>
+<p>When querying field (or a method argument) type, the API returns following code identifiers:</p>
+<ul>
+<li>For primitive types : int, long, short, byte, char, double, float, boolean</li>
+<li>For primitives type arrays : int[], long[], short[], byte[], char[], double[], float[], boolean[]</li>
+<li>For object : qualified class name as java.lang.String</li>
+<li>For object arrays : the qualified class name of the content type followed by <a href=""></a> as java.lang.String[]</li>
+</ul>
 <p>Array types are different from Java internal/reflective array types. To get the internal/reflective array type for field type you can use the <code>getReflectiveType</code> method.</p>
         </div>
     </div>
@@ -221,7 +235,7 @@
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html Thu Feb  7 10:01:45 2013
@@ -156,37 +156,66 @@
 <h2 id="core-features">Core Features</h2>
 <ul>
 <li><em>POJO-based approach</em> - Most components can simply be POJOs and need not have iPOJO- or OSGi-specific API in them.</li>
-<li><em>Simple service provisioning</em> - iPOJO manages all aspects of providing an OSGi service.
-<strong> <em>Service property management</em></strong>- Can be controlled by configuration properties.
-<strong>- Can be mapped to member fields and        automatically updated by the component instance at run time by just        changing the member field value.
-</strong> <em>Service life cycle participation</em> - The component instance can participate in the       service life cycle by declaring a boolean member field that indicates       when the service is actually valid (normally a service is assumed to be       valid if the component instance's dependencies are satisfied).</li>
-<li><em>Rich service dependency model</em> - Automatically manages a full spectrum of      service dependencies.
-<strong> <em>Optional/mandatory</em> service dependencies.</strong> <em>Singular/aggregate</em> service dependencies.
-<strong> <em>Default service implementations</em> - The component can provide default       implementations of dependent services if no providers are available.</strong> <em>Member field or method injection</em> - Also supported in combination.
-<strong>- Member field injection does not require        cluttering component code with bind/unbind methods.
-</strong>- Member method injection supports various method        signatures
-<strong>-- method() - Acts as a simple event-callback mechanism.
-</strong>-- method(<service-interface> svc) - Receives the service object cast to the         appropriate interface.
-<strong>-- method(ServiceReference ref) - Receives the OSGi ServiceReference for the service object.
-</strong>-- method(ServiceReference ref, <service-interface> svc) - Receives the OSGi ServiceReference and the service object cast to the         appropriate interface.
-<strong> <em>Binding policies</em> -       Allow components to control how/when their dependencies are bound.</strong>- <em>Static</em> - Static dependencies <em>cannot</em> change        without invalidating the component instance, so injected services        typically do not change at run time and service departures typically        result in the component instance being destroyed and potentially        recreated.
-<strong>- <em>Dynamic</em> - Dynamic dependencies <em>can</em> change        without invalidating the component instance, so injected services can        change at run time, but <em>do not</em> change with respect to service        priority changes (i.e., they do not automatically switch if a higher        priority service appears).</strong>- <em>Dynamic priority</em> - Dynamic priority dependencies <em>can</em> change without invalidating the component instance and <em>do</em> dynamically update based on service priority rankings at run time.</li>
-<li><em>Configuration property management</em> - Integrated with OSGi Configuration Admin      service.
-<strong> <em>Member field/member method injection</em> - Also supported in combination.</strong> <em>Service property propagation</em> - Configuration properties can be configured to       update service properties if the component instance is providing a       service.</li>
+<li><em>Simple service provisioning</em> - iPOJO manages all aspects of providing an OSGi service.</li>
+<li><em>Service property management</em><ul>
+<li>Can be controlled by configuration properties.</li>
+<li>Can be mapped to member fields and automatically updated by the component instance at run time by just changing the member field value.</li>
+</ul>
+</li>
+<li>Service life cycle participation<ul>
+<li>The component instance can participate in the service life cycle by declaring a boolean member field that indicates when the service is actually valid (normally a service is assumed to be       valid if the component instance's dependencies are satisfied).</li>
+</ul>
+</li>
+<li><em>Rich service dependency model</em> - Automatically manages a full spectrum of      service dependencies.<ul>
+<li><em>Optional/mandatory</em> service dependencies.</li>
+<li><em>Singular/aggregate</em> service dependencies.</li>
+<li><em>Default service implementations</em> - The component can provide default       implementations of dependent services if no providers are available.</li>
+<li><em>Member field or method injection</em> - Also supported in combination.<ul>
+<li>Member field injection does not require cluttering component code with bind/unbind methods.</li>
+<li>Member method injection supports various method signatures<ul>
+<li>method() - Acts as a simple event-callback mechanism.</li>
+<li>method(<service-interface> svc) - Receives the service object cast to the         appropriate interface.</li>
+<li>method(ServiceReference ref) - Receives the OSGi ServiceReference for the service object.</li>
+<li>method(ServiceReference ref, <service-interface> svc) - Receives the OSGi ServiceReference and the service object cast to the         appropriate interface.</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><em>Binding policies</em> -       Allow components to control how/when their dependencies are bound.<ul>
+<li><em>Static</em> - Static dependencies <em>cannot</em> change        without invalidating the component instance, so injected services        typically do not change at run time and service departures typically        result in the component instance being destroyed and potentially        recreated.</li>
+<li><em>Dynamic</em> - Dynamic dependencies <em>can</em> change        without invalidating the component instance, so injected services can        change at run time, but <em>do not</em> change with respect to service        priority changes (i.e., they do not automatically switch if a higher        priority service appears).</li>
+<li><em>Dynamic priority</em> - Dynamic priority dependencies <em>can</em> change without invalidating the component instance and <em>do</em> dynamically update based on service priority rankings at run time.</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><em>Configuration property management</em> - Integrated with OSGi Configuration Admin      service.</li>
+<li><em>Member field/member method injection</em> - Also supported in combination.<ul>
+<li><em>Service property propagation</em> - Configuration properties can be configured to       update service properties if the component instance is providing a       service.</li>
+</ul>
+</li>
 <li><em>Sophisticated concurrency handling</em> - Externalizes concurrency issues so that      component code does not need to worry about services changing while they      are in use (i.e., no locking protocol in component code).</li>
 <li><em>Deferred instance creation</em> - POJO instances are not created until they      are actually needed, thus reducing start-up overhead.</li>
-<li><em>Introspection support</em> -      Supports introspecting a component instance and the state of its      dependencies.
-** Interactive introspection is supported by an arch command for Felix' shell.</li>
+<li><em>Introspection support</em> -      Supports introspecting a component instance and the state of its      dependencies.<ul>
+<li>Interactive introspection is supported by an arch command for Felix' shell.</li>
+</ul>
+</li>
 <li><em>Extensible</em> - All      iPOJO features are implemented via a set of <code>handlers</code>, which is an      extensibility mechanism open to developers by which they can support      custom functionality (e.g., exporting a provided service remotely, etc.).</li>
 </ul>
 <h2 id="advancedexperimental-features">Advanced/Experimental Features</h2>
 <ul>
-<li><em>Composite model</em> -      iPOJO supports a flexible architectural-like model for composing services.
-<strong> <em>Flexible composites</em> - A       composite is an abstract component implementation.</strong>- <em>Sub-services and sub-components</em> - Unlike traditional component composition, an        iPOJO composite can be described in terms of services in addition to        sub-components; thus sub-service implementation selection is deferred        until run time.
-<strong>- <em>Optional/mandatory</em> sub-services and/or sub-components.</strong>- <em>Singular/aggregate</em> sub-services and/or sub-components.
-<strong> <em>Hierarchical</em> - A       composite component may contain other composite components.</strong>- <em>Composite scoping</em> - A composite acts as a scoping mechanism        where sub-services/sub-components are not visible externally and        external services are not visible internally.
-<strong> <em>Service dependencies</em> - A       composite has the full expressive capabilities of primitive components       when it comes to service dependencies (see above description of service       dependencies in core features).</strong>- For a composite, a service dependency        effectively imports an external service into the composite scope from        its parent composite (which may be the OSGi service registry in the root        case).
-<em><em> </em>Composite is just a component</em> - Composites can be instantiated and       automatically managed just like a primitive component.</li>
+<li><em>Composite model</em> -      iPOJO supports a flexible architectural-like model for composing services.<ul>
+<li><em>Flexible composites</em> - A       composite is an abstract component implementation.</li>
+<li><em>Sub-services and sub-components</em> - Unlike traditional component composition, an        iPOJO composite can be described in terms of services in addition to        sub-components; thus sub-service implementation selection is deferred        until run time.</li>
+<li><em>Optional/mandatory</em> sub-services and/or sub-components.</li>
+<li><em>Singular/aggregate</em> sub-services and/or sub-components.</li>
+<li><em>Hierarchical</em> - A       composite component may contain other composite components.</li>
+<li><em>Composite scoping</em> - A composite acts as a scoping mechanism        where sub-services/sub-components are not visible externally and        external services are not visible internally.</li>
+<li><em>Service dependencies</em> - A       composite has the full expressive capabilities of primitive components       when it comes to service dependencies (see above description of service       dependencies in core features).</li>
+<li>For a composite, a service dependency        effectively imports an external service into the composite scope from        its parent composite (which may be the OSGi service registry in the root        case).</li>
+<li><em>Composite is just a component</em> - Composites can be instantiated and       automatically managed just like a primitive component.</li>
+</ul>
+</li>
 </ul>
         </div>
     </div>
@@ -202,7 +231,7 @@
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-keypoints.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-keypoints.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-keypoints.html Thu Feb  7 10:01:45 2013
@@ -164,10 +164,12 @@ Moreover, it was designed for the OSGi e
 <p>Based on the POJO concept and thanks to its different injection mechanisms, iPOJO allows you to reuse he high majority of your existing code!  The business code does not depend on the OSGi environment or on specific technical services. The container manages everything for you.</p>
 <p>with iPOJO you're free! To describe your component, you have the choice among XML, Annotations or an API.</p>
 <h2 id="reliable-and-efficient">Reliable and Efficient</h2>
-<p>iPOJO relies on:
- * An OSGi R4.1 framework
- * A J2ME Foundation 1.1 java virtual machine
-So, you can use iPOJO on Apache Felix, Eclipse Equinox or any OSGi implementation compliant with the OSGi R4.1 specification. Moreover, iPOJO just relies on J2ME Foundation 1.1 profile. So, you can easily embed it...
+<p>iPOJO relies on:</p>
+<ul>
+<li>An OSGi R4.1 framework</li>
+<li>A J2ME Foundation 1.1 java virtual machine</li>
+</ul>
+<p>So, you can use iPOJO on Apache Felix, Eclipse Equinox or any OSGi implementation compliant with the OSGi R4.1 specification. Moreover, iPOJO just relies on J2ME Foundation 1.1 profile. So, you can easily embed it...
 However, this does not limit iPOJO in term of performance. iPOJO is one of the most efficient component models for OSGi.<br />
 </p>
 <h2 id="embeddable">Embeddable</h2>
@@ -178,7 +180,7 @@ However, this does not limit iPOJO in te
 <ul>
 <li>Want to go further; read the <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-why-choose-ipojo.html">Why choose iPOJO page</a>.</li>
 <li>Want to try; look at the <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-in-10-minutes.html">iPOJO in 10 minutes tutorial</a></li>
-<li>Want more information; feel free to send an email on <a href="">usrs@felix.apache.org</a></li>
+<li>Want more information; feel free to send an email on <a href="mailto:users@felix.apache.org">users@felix.apache.org</a></li>
 </ul>
         </div>
     </div>
@@ -194,7 +196,7 @@ However, this does not limit iPOJO in te
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedosgi.html Thu Feb  7 10:01:45 2013
@@ -153,29 +153,69 @@
         <div class="content">
             <h1 id="supported-osgi-implementations">Supported OSGi Implementations</h1>
 <p><em>Despite iPOJO is an Apache Felix subproject, it relies only on </em>OSGi R4<em> features. So, it is possible to use it on others OSGi implementations.</em></p>
-<p>{center}
-|Features| Apache Felix | Eclipse Equinox | Knoplerfish |
-|--|--|--|--|
-|Core|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Composites|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Configuration Admin|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Temporal Dependency|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Whiteboard pattern handler|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Extender pattern handler|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|Event Admin handler|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!
-|JMX handler (requires Java 5+)|!green.gif|align=center!|!green.gif|align=center!|!green.gif|align=center!|
-{center}</p>
+<table class="table table-bordered table-striped table-hover">
+    <thead>
+        <tr>
+            <th>Features</th>
+            <th>Apache Felix</th>
+            <th>Eclipse Equinox</th>
+            <th>Knowplerfish</th>
+        </tr>   
+    </thead>        
+    <tbody>
+        <tr>
+            <td>Core features</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>   
+        <tr>
+            <td>Composites features</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Configuration Admin</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Temporal service dependencies</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Whiteboard and Extender pattern handler</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Event admin handler</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>JMX handler</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+    </tbody>
+</table>
+
 <p>Feel free to send a mail on the Felix mailing list, if an implementation is not listed here.</p>
 <hr />
-<table cellpadding='5' width='85%' cellspacing='8px' class='infoMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr>
-<td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td>
-<td>
-<b class="strong">Note about Knopflerfish</b><br/>
-<p>Old version of Knopflerfish does not allow getting a service during its unregistration. To enable this feature, launch the Knopflerfish framework with the 
-<em>-Dorg.knopflerfish.servicereference.valid.during.unregistering=true</em> property. You can add this property in the <em>props.xargs</em> file</p>
-<p>Recent version of KF does no more require this property.</p>
-</td>
-</tr></table>
+<div markdown="1" class="alert alert-success">
+Old version of Knopflerfish does not allow getting a service during its unregistration. To enable this feature, launch the Knopflerfish framework with the 
+<code>-Dorg.knopflerfish.servicereference.valid.during.unregistering=true</code> property. You can add this property in the <code>props.xargs</code> file.
+
+Recent version of KF does no more require this property.
+</div>
         </div>
     </div>
 
@@ -190,7 +230,7 @@
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedvms.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedvms.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-supportedvms.html Thu Feb  7 10:01:45 2013
@@ -152,63 +152,98 @@
     <div class="container">
         <div class="content">
             <h1 id="supported-java-virtual-machines">Supported Java Virtual Machines</h1>
-<table>
-<thead>
-<tr>
-<th>Features</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>(1.3, 1.4)</td>
-</tr>
-<tr>
-<td>(5, 6)</td>
-</tr>
-<tr>
-<td>(1.4)</td>
-</tr>
-<tr>
-<td>(1.5,1.6)</td>
-</tr>
-<tr>
-<td>Core</td>
-</tr>
-<tr>
-<td>Composites</td>
-</tr>
-<tr>
-<td>Configuration Admin</td>
-</tr>
-<tr>
-<td>Temporal Dependency</td>
-</tr>
-<tr>
-<td>Whiteboard pattern handler</td>
-</tr>
-<tr>
-<td>Extender pattern handler</td>
-</tr>
-<tr>
-<td>Event Admin handler</td>
-</tr>
-</tbody>
+<table class="table table-bordered table-striped table-hover">
+    <thead>
+        <tr>
+            <th>Features</th>
+            <th>Sun JVM (1.4, 5, 6)</th>
+            <th>Oracle JVM and OpenJDK</th>
+            <th>Harmony</th>
+            <th>JamVM</th>
+            <th>Mika</th>
+            <th>JRockit</th>
+            <th>Dalvik (Android)</th>
+        </tr>   
+    </thead>        
+    <tbody>
+        <tr>
+            <td>Core features</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class=" icon-warning-sign"></i></td>
+        </tr>   
+        <tr>
+            <td>Composites features</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-warning-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Configuration Admin</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Temporal service dependencies</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Whiteboard and Extender pattern handler</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+        <tr>
+            <td>Event admin handler</td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+            <td><i class="icon-ok-sign"></i></td>
+        </tr>
+    </tbody>
 </table>
+
 <p>Feel free to send a mail on the Felix mailing list if a JVM is not listed here.</p>
 <hr />
-<div class="info" markdown="1">
-**Note about Android**
+<div class="alert alert-info" markdown="1">
+<strong>Note about Android</strong>
 iPOJO is supported on Android except for two features:
-* Nullable are not supported (Default-Implementations are supported)
-* Composites cannot provide services (but they can export services)
-
+<ul>
+    <li>Nullable are not supported (Default-Implementations are supported)</li>
+    <li>Composites cannot provide services (but they can export services)</li>
+</ul>
 These two limitations comes from the Android VM (Dalvik) that does not support the definition of new classes at runtime (i.e. dynamically generated classes).
 </div>
 
-<div class="info" markdown="1">
-**Note about Android**
-iPOJO 1.6+ uses smart proxy by default. On Android this is not supported, however, you can disable the proxies with:
-`proxy="false"` in the service requirements.
+<div class="alert alert-info" markdown="1">
+<strong>Note about Android</strong>
+iPOJO 1.6+ uses smart proxy by default. On Android this is not supported, however, you can disable the proxies with: <code>proxy="false"</code> in the service requirements.
 </div>
         </div>
     </div>
@@ -224,7 +259,7 @@ iPOJO 1.6+ uses smart proxy by default. 
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/ipojo-reference-card.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/ipojo-reference-card.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/ipojo-reference-card.html Thu Feb  7 10:01:45 2013
@@ -152,175 +152,349 @@
     <div class="container">
         <div class="content">
             <h1 id="declaring-component-types">Declaring component types</h1>
-<p>{code:xml|title=XML}
-<component
-    classname="my.Implementation"
-    name="my-type">
-</component></p>
-<div class="codehilite"><pre><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">Annotations</span><span class="p">}</span>
-<span class="nv">@Component</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;my-type&quot;</span><span class="p">)</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">Implementation</span> <span class="p">{</span>
-  <span class="sr">//</span> <span class="o">...</span>
-<span class="p">}</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;component</span>
+    <span class="na">classname=</span><span class="s">&quot;my.Implementation&quot;</span>
+    <span class="na">name=</span><span class="s">&quot;my-type&quot;</span><span class="nt">&gt;</span>
+<span class="nt">&lt;/component&gt;</span>
 </pre></div>
 
 
-<p>{div:class=borderedTable}
-{center}
-|Attribute name | Required | Default value | |
-|--|--|--|--|
-| classname | yes | | indicates the implementation class (automatic when using annotations). |
-| name | no | implementation class name | specifies the component type name. |</p>
-<p>{center}
-{div}
-* <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/how-to-use-ipojo-factories.html">How-to use iPOJO factories</a></p>
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nd">@Component</span><span class="o">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;my-type&quot;</span><span class="o">)</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Implementation</span> <span class="o">{</span>
+  <span class="c1">// ...</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Attribute name</th>
+      <th>Required</th>
+      <th>Default value</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>classname</td>
+      <td>yes</td>
+      <td></td>
+      <td>indicates the implementation class (automatic when using annotations).</td>
+    </tr>
+    <tr>
+      <td>name</td>
+      <td>no</td>
+      <td>the implementation class name</td>
+      <td>specifies the component class name</td>
+    </tr>
+  </tbody>
+</table>
+
+<ul>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/how-to-use-ipojo-factories.html">How-to use iPOJO factories</a></li>
+</ul>
 <h1 id="creating-component-instances">Creating component instances</h1>
-<p>{code:xml|title=XML}
-<instance component="my-type"/>
-<instance component="my.Implementation"/>
-<instance component="my-type" name="my-instance"/>
-<instance component="my-type" name="my-instance">
-    <property name="property1" value="value1"/>
-</instance></p>
-<div class="codehilite"><pre><span class="p">{</span><span class="n">div:class</span><span class="o">=</span><span class="n">borderedTable</span><span class="p">}</span>
-<span class="p">{</span><span class="n">center</span><span class="p">}</span>
-<span class="o">||</span><span class="n">Attribute</span> <span class="n">name</span> <span class="o">||</span> <span class="n">Required</span> <span class="o">||</span> <span class="n">Default</span> <span class="n">value</span> <span class="o">||</span> <span class="o">||</span>
-<span class="o">|</span> <span class="n">component</span> <span class="o">|</span> <span class="n">yes</span> <span class="o">|</span> <span class="o">|</span> <span class="n">specifies</span> <span class="n">the</span> <span class="n">component</span> <span class="n">type</span> <span class="p">(</span><span class="n">either</span> <span class="n">by</span> <span class="n">using</span> <span class="n">the</span> <span class="n">name</span> <span class="ow">or</span> <span class="n">the</span> <span class="n">class</span> <span class="n">name</span><span class="p">)</span> <span class="o">|</span>
-<span class="o">|</span> <span class="n">name</span> <span class="o">|</span> <span class="nb">no</span> <span class="o">|</span> <span class="n">generated</span> <span class="o">|</span> <span class="n">specifies</span> <span class="n">the</span> <span class="n">instance</span> <span class="n">name</span><span class="o">.</span> <span class="o">|</span>
-<span class="p">{</span><span class="n">center</span><span class="p">}</span>
-<span class="p">{</span><span class="n">div</span><span class="p">}</span>
-<span class="o">*</span> <span class="n">Instances</span> <span class="n">can</span> <span class="n">contains</span> <span class="n">a</span> <span class="n">configuration</span> <span class="n">given</span> <span class="n">under</span> <span class="n">the</span>  <span class="n">form</span><span class="o">.</span> <span class="n">Properties</span> <span class="n">can</span> <span class="n">also</span> <span class="n">by</span> <span class="n">complex</span> <span class="n">type</span><span class="o">.</span>
-<span class="o">*</span> <span class="p">[</span><span class="n">How</span><span class="o">-</span><span class="n">to</span> <span class="k">use</span> <span class="n">iPOJO</span> <span class="n">factories</span><span class="p">]</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">Annotations</span><span class="p">}</span>
-<span class="nv">@Component</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;my-type&quot;</span><span class="p">)</span>
-<span class="nv">@Instantiate</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">Implementation</span> <span class="p">{</span>
-  <span class="sr">//</span> <span class="o">...</span>
-<span class="p">}</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;instance</span> <span class="na">component=</span><span class="s">&quot;my-type&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;instance</span> <span class="na">component=</span><span class="s">&quot;my.Implementation&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;instance</span> <span class="na">component=</span><span class="s">&quot;my-type&quot;</span> <span class="na">name=</span><span class="s">&quot;my-instance&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;instance</span> <span class="na">component=</span><span class="s">&quot;my-type&quot;</span> <span class="na">name=</span><span class="s">&quot;my-instance&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;property1&quot;</span> <span class="na">value=</span><span class="s">&quot;value1&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/instance&gt;</span>
 </pre></div>
 
 
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nd">@Component</span><span class="o">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;my-type&quot;</span><span class="o">)</span>
+<span class="nd">@Instantiate</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Implementation</span> <span class="o">{</span>
+  <span class="c1">// ...</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Attribute name</th>
+      <th>Required</th>
+      <th>Default value</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>component</td>
+      <td>yes</td>
+      <td></td>
+      <td>specifies the component type (either by using the name or the class name)</td>
+    </tr>
+    <tr>
+      <td>name</td>
+      <td>no</td>
+      <td>generated</td>
+      <td>specifies the instance name.</td>
+    </tr>
+  </tbody>
+</table>
+
+<ul>
+<li>Instances can contains a configuration given under the <code>key-value</code> form. Properties can also by complex type.</li>
+<li>How-to use iPOJO factories</li>
+</ul>
 <h1 id="providing-services">Providing services</h1>
-<p>{code:xml|title=XML}
-<component classname="my.service.implementation" name="my-service-impl">
-   <provides/>
-</component>
-<instance name="my-service-impl"/></p>
-<div class="codehilite"><pre><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">Annotations</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">Implementation</span> <span class="n">implements</span> <span class="n">FooService</span> <span class="p">{</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;component</span> <span class="na">classname=</span><span class="s">&quot;my.service.implementation&quot;</span> <span class="na">name=</span><span class="s">&quot;my-service-impl&quot;</span><span class="nt">&gt;</span>
+   <span class="nt">&lt;provides/&gt;</span>
+<span class="nt">&lt;/component&gt;</span>
+<span class="nt">&lt;instance</span> <span class="na">name=</span><span class="s">&quot;my-service-impl&quot;</span><span class="nt">/&gt;</span>
+</pre></div>
+
+
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nd">@Component</span>
+<span class="nd">@Provides</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Implementation</span> <span class="kd">implements</span> <span class="n">FooService</span> <span class="o">{</span>
    <span class="o">...</span>
-<span class="p">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <ul>
 <li>Only instances provides really services, so don't forget to declare an instance.</li>
-<li>Published service interfaces must be implemented by your component implementation
-{div:class=borderedTable}
-{center}
-|Attribute name | Required | Default value | |
-|--|--|--|--|
-| specifications | no | all implemented interfaces | specifies the published service interfaces |
-| strategy | no | <code>singleton</code> | specifies the service object creation policy among <code>singleton</code>, <code>service</code> (OSGi Service Factory), <code>method</code> (use the factory method), <code>instance</code> (an object per instance) |
-{center}
-{div}</li>
+<li>Published service interfaces must be implemented by your component implementation</li>
+</ul>
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Attribute name</th>
+      <th>Required</th>
+      <th>Default value</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>specifications</td>
+      <td>no</td>
+      <td>all implemented interfaces</td>
+      <td>specifies the published service interfaces</td>
+    </tr>
+    <tr>
+      <td>strategy</td>
+      <td>no</td>
+      <td>`singleton`</td>
+      <td>specifies the service object creation policy among `singleton`, `service` (OSGi Service Factory), `method` (use the factory method), `instance` (an object per instance)</td>
+    </tr>
+  </tbody>
+</table>
+
+<ul>
 <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/providing-osgi-services.html">Providing OSGi services</a></li>
 </ul>
 <h1 id="publishing-service-properties">Publishing service properties</h1>
-<p>{code:xml|title=XML}
-<component classname="my.service.implementation" name="my-service-impl">
-  <provides>
-    <property name="foo" field="m_foo" />
-    <property name="bar" field="m_bar" mandatory="true" />
-    <property name="baz" type="java.lang.String" /> <!-- Static property (do not change at runtime) -->
-  </provides>
-</component>
-<instance name="my-service-impl"> <!-- The configuration has to inject value in unvalued mandatory properties -->
-  <property name="bar" value="5"/>
-  <property name="baz" value="my string"/>
-<instance/></p>
-<div class="codehilite"><pre><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">Annotations</span><span class="p">}</span>
-<span class="nv">@Component</span>
-<span class="nv">@Provides</span><span class="p">(</span><span class="n">specifications</span><span class="o">=</span> <span class="p">{</span><span class="n">FooService</span><span class="o">.</span><span class="n">class</span><span class="p">,</span> <span class="n">BarService</span><span class="o">.</span><span class="n">class</span><span class="p">},</span>
-<span class="n">properties</span><span class="o">=</span> <span class="p">{</span>
-    <span class="nv">@StaticServiceProperty</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;baz&quot;</span><span class="p">,</span> <span class="n">type</span><span class="o">=</span><span class="s">&quot;java.lang.String&quot;</span><span class="p">)})</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">ProvidesProperties</span> <span class="n">implements</span> <span class="n">FooService</span><span class="p">,</span> <span class="n">BarService</span> <span class="p">{</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;component</span> <span class="na">classname=</span><span class="s">&quot;my.service.implementation&quot;</span> <span class="na">name=</span><span class="s">&quot;my-service-impl&quot;</span><span class="nt">&gt;</span>
+  <span class="nt">&lt;provides&gt;</span>
+    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;foo&quot;</span> <span class="na">field=</span><span class="s">&quot;m_foo&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;bar&quot;</span> <span class="na">field=</span><span class="s">&quot;m_bar&quot;</span> <span class="na">mandatory=</span><span class="s">&quot;true&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;baz&quot;</span> <span class="na">type=</span><span class="s">&quot;java.lang.String&quot;</span> <span class="nt">/&gt;</span> <span class="c">&lt;!-- Static property (do not change at runtime) --&gt;</span>
+  <span class="nt">&lt;/provides&gt;</span>
+<span class="nt">&lt;/component&gt;</span>
+<span class="nt">&lt;instance</span> <span class="na">name=</span><span class="s">&quot;my-service-impl&quot;</span><span class="nt">&gt;</span> <span class="c">&lt;!-- The configuration has to inject value in unvalued mandatory properties --&gt;</span>
+  <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;bar&quot;</span> <span class="na">value=</span><span class="s">&quot;5&quot;</span><span class="nt">/&gt;</span>
+  <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;baz&quot;</span> <span class="na">value=</span><span class="s">&quot;my string&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;instance/&gt;</span>
+</pre></div>
 
-    <span class="nv">@ServiceProperty</span><span class="p">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;foo&quot;</span><span class="p">)</span>
-    <span class="n">public</span> <span class="nb">int</span> <span class="n">m_foo</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
 
-    <span class="nv">@ServiceProperty</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;bar&quot;</span><span class="p">,</span> <span class="n">mandatory</span><span class="o">=</span><span class="n">true</span><span class="p">)</span>
-    <span class="n">public</span> <span class="nb">int</span> <span class="n">m_bar</span><span class="p">;</span>
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nd">@Component</span>
+<span class="nd">@Provides</span><span class="o">(</span><span class="n">specifications</span><span class="o">=</span> <span class="o">{</span><span class="n">FooService</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">BarService</span><span class="o">.</span><span class="na">class</span><span class="o">},</span>
+<span class="n">properties</span><span class="o">=</span> <span class="o">{</span>
+    <span class="nd">@StaticServiceProperty</span><span class="o">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;baz&quot;</span><span class="o">,</span> <span class="n">type</span><span class="o">=</span><span class="s">&quot;java.lang.String&quot;</span><span class="o">)})</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ProvidesProperties</span> <span class="kd">implements</span> <span class="n">FooService</span><span class="o">,</span> <span class="n">BarService</span> <span class="o">{</span>
 
-<span class="sr">//</span> <span class="o">...</span>
-<span class="p">}</span>
+    <span class="nd">@ServiceProperty</span><span class="o">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;foo&quot;</span><span class="o">)</span>
+    <span class="kd">public</span> <span class="kt">int</span> <span class="n">m_foo</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
+
+    <span class="nd">@ServiceProperty</span><span class="o">(</span><span class="n">name</span><span class="o">=</span><span class="s">&quot;bar&quot;</span><span class="o">,</span> <span class="n">mandatory</span><span class="o">=</span><span class="kc">true</span><span class="o">)</span>
+    <span class="kd">public</span> <span class="kt">int</span> <span class="n">m_bar</span><span class="o">;</span>
+
+    <span class="c1">// ...</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>{div:class=borderedTable}
-{center}
-|Attribute name | Required | Default value | |
-|--|--|--|--|
-| name | no | field name | specifies the published property name |
-| mandatory | no | false | specifies if the property has to receive a value from the instance configuration |
-| value | no |  | specifies the default property value |
-| field | no | (automatic with annotations) | specifies the field attached to the service property |
-| type | Only if there is no field (generated) | Type of the property | </p>
-<p>{center}
-{div}
-* <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/providing-osgi-services.html">Providing OSGi services</a></p>
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Attribute name</th>
+      <th>Required</th>
+      <th>Default value</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>name</td>
+      <td>no</td>
+      <td>the field name</td>
+      <td>specifies the published property name</td>
+    </tr>
+    <tr>
+      <td>mandatory</td>
+      <td>no</td>
+      <td>false</td>
+      <td>specifies if the property has to receive a value from the instance configuration</td>
+    </tr>
+    <tr>
+      <td>value</td>
+      <td>no</td>
+      <td></td>
+      <td>specifies the default property value</td>
+    </tr>
+    <tr>
+      <td>field</td>
+      <td>no</td>
+      <td>(automatic with annotations)</td>
+      <td>specifies the injected field</td>
+    </tr>
+    <tr>
+      <td>type</td>
+      <td>only if there is no fields</td>
+      <td></td>
+      <td>specified the property type</td>
+    </tr>
+  </tbody>
+</table>
+
+<ul>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/providing-osgi-services.html">Providing OSGi services</a></li>
+</ul>
 <h1 id="using-services-with-field-injection">Using services with field injection</h1>
-<p>{code:xml|title=XML}
-<component classname="my.consumer.Implementation">
-    <requires field="fs" />
-    <requires field="bs" />
-</component></p>
-<div class="codehilite"><pre><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">Annotations</span><span class="p">}</span>
-<span class="nv">@Component</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">Dependency</span> <span class="p">{</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;component</span> <span class="na">classname=</span><span class="s">&quot;my.consumer.Implementation&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;requires</span> <span class="na">field=</span><span class="s">&quot;fs&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;requires</span> <span class="na">field=</span><span class="s">&quot;bs&quot;</span> <span class="nt">/&gt;</span>
+<span class="nt">&lt;/component&gt;</span>
+</pre></div>
 
-    <span class="nv">@Requires</span>
-    <span class="n">public</span> <span class="n">FooService</span> <span class="n">fs</span><span class="p">;</span>
 
-    <span class="nv">@Requires</span>
-    <span class="n">public</span> <span class="n">BarService</span><span class="o">[]</span> <span class="n">bs</span><span class="p">;</span>
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nd">@Component</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Dependency</span> <span class="o">{</span>
 
-    <span class="sr">//</span><span class="o">...</span>
-<span class="p">}</span>
+    <span class="nd">@Requires</span>
+    <span class="kd">public</span> <span class="n">FooService</span> <span class="n">fs</span><span class="o">;</span>
+
+    <span class="nd">@Requires</span>
+    <span class="kd">public</span> <span class="n">BarService</span><span class="o">[]</span> <span class="n">bs</span><span class="o">;</span>
+
+    <span class="c1">//...</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>{div:class=borderedTable}
-{center}
-|Attribute name | Required | Default value | |
-|--|--|--|--|
-| id | no | field name | dependency id |
-| field | no | automatically detected with annotations | injected field |
-| optional | no | false | specifies if the dependency if optional |</p>
-<p>| specification | yes/no | can be discovered from the code | specifies the required service specification. This attribute is required when the service type cannot be inferred from the code (Collection type for fields, callbacks without service objects) |
-| filter | no | no filter | specifies the dependency LDAP filter |
-| from | no |  | specifies a specific provider by its name |
-| policy | no | <code>dynamic</code> | specifies the binding policy among <code>dynamic</code>, <code>static</code> and <code>dynamic-priority</code>  |
-| nullable | no | true | enables/disables nullable object injection for optional dependencies  |
-| default-implementation // defaultimplementation for annotations | no | | specifies the default-implementation for optional dependencies  |
-| comparator | no | | specifies the comparator class used to sort service providers |
-{center}
-{div}
-* <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/service-requirement-handler.html">Service Requirement Handler</a></p>
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Attribute name</th>
+      <th>Required</th>
+      <th>Default value</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+        <td class="confluenceTd"> id </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> field name </td>
+        <td class="confluenceTd"> dependency id </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> field </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> automatically detected with annotations </td>
+        <td class="confluenceTd"> injected field </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> optional </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> false </td>
+        <td class="confluenceTd"> specifies if the dependency if optional </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> aggregate </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> false <br class="atl-forced-newline"> (automatically detected with fields) </td>
+        <td class="confluenceTd"> specifies if the dependency is aggregate of <tt>scalar</tt> </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> specification </td>
+        <td class="confluenceTd"> yes/no </td>
+        <td class="confluenceTd"> can be discovered from the code </td>
+        <td class="confluenceTd"> specifies the required service specification. This attribute is required when the service type cannot be inferred from the code (Collection type for fields, callbacks without service objects) </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> filter </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> no filter </td>
+        <td class="confluenceTd"> specifies the dependency LDAP filter </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> from </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd">&nbsp;</td>
+        <td class="confluenceTd"> specifies a specific provider by its name </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> policy </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> <tt>dynamic</tt> </td>
+        <td class="confluenceTd"> specifies the binding policy among <tt>dynamic</tt>, <tt>static</tt> and <tt>dynamic-priority</tt>  </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> nullable </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd"> true </td>
+        <td class="confluenceTd"> enables/disables nullable object injection for optional dependencies  </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> default-implementation // defaultimplementation for annotations </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd">&nbsp;</td>
+        <td class="confluenceTd"> specifies the default-implementation for optional dependencies  </td>
+    </tr>
+    <tr>
+        <td class="confluenceTd"> comparator </td>
+        <td class="confluenceTd"> no </td>
+        <td class="confluenceTd">&nbsp;</td>
+        <td class="confluenceTd"> specifies the comparator class used to sort service providers </td>
+    </tr>
+    </tbody>
+</table>
+
+<ul>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/service-requirement-handler.html">Service Requirement Handler</a></li>
+</ul>
 <h1 id="using-services-with-method-injection">Using services with method injection</h1>
-<p>{code:xml|title=XML}
-<component classname="my.consumer.Implementation">
-    <requires>
-    <callback type="bind" method="bind" />
-    <callback type="unbind" method="unbind" />
-        <callback type="modified" method="modified" /> <!-- for filtered service dependencies, to be notified when a service is modified but still match -->
-    </requires> 
-</component></p>
-<div class="codehilite"><pre><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">Annotations</span><span class="p">}</span>
-<span class="nv">@Component</span>
+<p>XML:</p>
+<div class="codehilite"><pre><span class="nt">&lt;component</span> <span class="na">classname=</span><span class="s">&quot;my.consumer.Implementation&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;requires&gt;</span>
+    <span class="nt">&lt;callback</span> <span class="na">type=</span><span class="s">&quot;bind&quot;</span> <span class="na">method=</span><span class="s">&quot;bind&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;callback</span> <span class="na">type=</span><span class="s">&quot;unbind&quot;</span> <span class="na">method=</span><span class="s">&quot;unbind&quot;</span> <span class="nt">/&gt;</span>
+        <span class="nt">&lt;callback</span> <span class="na">type=</span><span class="s">&quot;modified&quot;</span> <span class="na">method=</span><span class="s">&quot;modified&quot;</span> <span class="nt">/&gt;</span> <span class="c">&lt;!-- for filtered service dependencies, to be notified when a service is modified but still match --&gt;</span>
+    <span class="nt">&lt;/requires&gt;</span> 
+<span class="nt">&lt;/component&gt;</span>
+</pre></div>
+
+
+<p>Java:</p>
+<div class="codehilite"><pre><span class="nv">@Component</span>
 <span class="n">public</span> <span class="n">class</span> <span class="n">Dependency</span> <span class="p">{</span>
 
     <span class="nv">@Unbind</span>
@@ -438,7 +612,7 @@
 ## Immediate components
 * A POJO object (implementation object) is created as soons as the instance becomes valid
 * Instances that don't provide services becomes automatically immediate
-{code:xml|title=XML}
+    :::xml
 <component classname="my.service.implementation" name="my-service-impl" immediate="true">
    <provides/>
 </component>
@@ -460,7 +634,7 @@
 * [Lifecycle Callback Handler](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/lifecycle-callback-handler.html)
 
 ## Lifecycle callbacks
-{code:xml|title=XML}
+    :::xml
 <component classname="my.implementation" name="my-impl">
     <callback transition="validate" method="start" />
     <callback transition="invalidate" method="stop" />
@@ -484,7 +658,7 @@
 * [Lifecycle Callback Handler](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/describing-components/lifecycle-callback-handler.html)
 
 # Declaring properties
-{code:xml|title=XML}
+    :::xml
 <component classname="my.Implementation" name="my-impl">
     <properties propagation="true" managedservice="MyPID">
         <property name="boo" method="setBoo" />
@@ -536,7 +710,7 @@
 # PostRegistration and PostUnregistration callbacks
 * This feature is part of the provided service handler, and so requires that the component provides a service.
 * The callback receives a `ServiceReference` as parameter.
-{code:xml|title=XML}
+    :::xml
 <component
      classname="...">
     <provides
@@ -559,7 +733,7 @@
 # Controlling service publication
 * This feature is part of the provided service handler, and so requires that the component provides a service.
 * It allows a component to force the un-publication of a service.
-{code:xml|title=XML}
+    :::xml
 <component
      classname="...">
     <provides>
@@ -598,7 +772,7 @@ arch -handlers => list available handler
  * Service objects can be injected as `proxies` and be given to collaborator objects.
 * Temporal dependencies are implemented as an *external handlers*. To use them, deploy and start the temporal dependency handler bundle.
 
-{code:xml|title=XML}
+    :::xml
 <iPOJO xmlns:temporal="org.apache.felix.ipojo.handler.temporal">
 <component
     className="my.Implementation">
@@ -644,7 +818,7 @@ arch -handlers => list available handler
  * The event admin handler is implemented as an *external handlers*. To use it, deploy and start the event admin handler bundle and an implementation of the event admin service.
  * Event (or data) are receive thanks to a callback method.
 
-{code:xml|title=XML}
+    :::xml
 <ipojo
     xmlns:ev="org.apache.felix.ipojo.handlers.event.EventAdminHandler">
     <component className="...MyComponent">
@@ -710,7 +884,7 @@ If you use this attribute, the parameter
      * The event admin handler is implemented as an _external handlers_. To use it, deploy and start the event admin handler bundle and an implementation of the event admin service.
      * To send events, your code must contains a  field.
 
-    {code:xml|title=XML}
+        :::xml
     <ipojo
         xmlns:ev="org.apache.felix.ipojo.handlers.event.EventAdminHandler">
         <component className="...MyComponent">
@@ -775,7 +949,7 @@ public class MyComponent {
  * Allows implementing an `Extender pattern` without handling obscure details
  * The extender pattern handler is implemented as an *external handlers*. To use it, deploy and start the external pattern handler bundle.
 
-{code:xml|title=XML}
+    :::xml
 <ipojo xmlns:extender="org.apache.felix.ipojo.extender">
     <component
         classname="org.apache.felix.ipojo.extender.Myextender">
@@ -821,7 +995,7 @@ public class MyComponent {
  * Allows implementing a `Whiteboard pattern` without handling obscure details
  * The whiteboard pattern handler is implemented as an *external handlers*. To use it, deploy and start the whiteboard pattern handler bundle.
 
-{code:xml|title=XML}
+    :::xml
 <ipojo xmlns:wbp="org.apache.felix.ipojo.whiteboard">
      <component 
           classname="org.apache.felix.ipojo.test.MyWhiteBoardPattern"
@@ -881,7 +1055,7 @@ public class MyComponent {
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
+                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
                 </div>
             </div>
         </footer>           



Mime
View raw message