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