You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2018/12/23 11:09:14 UTC

svn commit: r1849602 [4/23] - in /felix/site/trunk/content/apidocs/dependencymanager/r15: ./ org/ org/apache/ org/apache/felix/ org/apache/felix/dm/ org/apache/felix/dm/compat/ org/apache/felix/dm/context/ org/apache/felix/dm/diagnostics/ org/apache/fe...

Added: felix/site/trunk/content/apidocs/dependencymanager/r15/org/apache/felix/dm/AspectComponent.html
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/apidocs/dependencymanager/r15/org/apache/felix/dm/AspectComponent.html?rev=1849602&view=auto
==============================================================================
--- felix/site/trunk/content/apidocs/dependencymanager/r15/org/apache/felix/dm/AspectComponent.html (added)
+++ felix/site/trunk/content/apidocs/dependencymanager/r15/org/apache/felix/dm/AspectComponent.html Sun Dec 23 11:09:13 2018
@@ -0,0 +1,1010 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_191) on Sun Dec 23 12:06:06 CET 2018 -->
+<title>AspectComponent</title>
+<meta name="date" content="2018-12-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AspectComponent";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/felix/dm/AdapterComponent.html" title="interface in org.apache.felix.dm"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/felix/dm/BundleComponent.html" title="interface in org.apache.felix.dm"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/felix/dm/AspectComponent.html" target="_top">Frames</a></li>
+<li><a href="AspectComponent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.felix.dm</div>
+<h2 title="Interface AspectComponent" class="title">Interface AspectComponent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AspectComponent</span>
+extends <a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></pre>
+<div class="block">Interface used to configure the various parameters needed when defining 
+ a Dependency Manager aspect component.
+ 
+ Aspects allow you to define an interceptor, or chain of interceptors 
+ for a service (to add features like caching or logging, etc ...). The dependency manager intercepts 
+ the original service, and allows you to execute some code before invoking the original service ...
+ The aspect will be applied to any service that matches the specified interface and filter and 
+ will be registered with the same interface and properties as the original service, plus any 
+ extra properties you supply here. If you declare the original service as a member it will be injected.
+ 
+ <h3>Usage Examples</h3>
+ 
+ Here is a sample showing a DatabaseCache aspect which is created each time a Database interface is registered in the registry.
+ 
+ <blockquote><pre>
+ <code>
+ public class Activator extends DependencyActivatorBase {
+     &amp;Override
+     public void init(BundleContext context, DependencyManager dm) throws Exception {
+         AspectComponent aspectComponent = createAspectComponent()
+             .setAspect(Database.class, null, 10)
+             .setImplementation(DatabaseCache.class);
+         dm.add(aspectComponent);
+     }
+ }
+ 
+ interface Database {
+     String get(String key);
+ }
+ 
+ class DatabaseCache implements Database {
+     volatile Database originalDatabase; // injected
+     
+     String get(String key) {
+         String value = cache.get(key);
+         if (value == null) {
+             value = this.originalDatabase.get(key);
+             store(key, value);
+         }
+         return value;
+     }
+     ... 
+ }
+ </code> </pre></blockquote>
+ 
+ <p> For "add", "change", "remove" callbacks, the following method signatures are supported:
+ 
+ <pre><code>
+ (Component comp, ServiceReference ref, Service service)
+ (Component comp, ServiceReference ref, Object service)
+ (Component comp, ServiceReference ref)
+ (Component comp, Service service)
+ (Component comp, Object service)
+ (Component comp)
+ (Component comp, Map properties, Service service)
+ (ServiceReference ref, Service service)
+ (ServiceReference ref, Object service)
+ (ServiceReference ref)
+ (Service service)
+ (Service service, Map propeerties)
+ (Map properties, Service, service)
+ (Service service, Dictionary properties)
+ (Dictionary properties, Service service)
+ (Object service)
+ </code></pre>
+ 
+ <p> For "swap" callbacks, the following method signatures are supported:
+ 
+ <pre><code>
+ (Service old, Service replace)
+ (Object old, Object replace)
+ (ServiceReference old, Service old, ServiceReference replace, Service replace)
+ (ServiceReference old, Object old, ServiceReference replace, Object replace)
+ (Component comp, Service old, Service replace)
+ (Component comp, Object old, Object replace)
+ (Component comp, ServiceReference old, Service old, ServiceReference replace, Service replace)
+ (Component comp, ServiceReference old, Object old, ServiceReference replace, Object replace)
+ (ServiceReference old, ServiceReference replace)
+ (Component comp, ServiceReference old, ServiceReference replace)
+ </code></pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.felix.dm.Component">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.felix.dm.<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></h3>
+<code><a href="../../../../org/apache/felix/dm/Component.ServiceScope.html" title="enum in org.apache.felix.dm">Component.ServiceScope</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#add-org.apache.felix.dm.ComponentStateListener-">add</a></span>(<a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm">ComponentStateListener</a>&nbsp;listener)</code>
+<div class="block">Adds a component state listener to this component.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#add-org.apache.felix.dm.Dependency...-">add</a></span>(<a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>...&nbsp;dependencies)</code>
+<div class="block">Adds dependency(ies) to this component, atomically.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#remove-org.apache.felix.dm.ComponentStateListener-">remove</a></span>(<a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm">ComponentStateListener</a>&nbsp;listener)</code>
+<div class="block">Removes a component state listener from this component.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#remove-org.apache.felix.dm.Dependency-">remove</a></span>(<a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>&nbsp;d)</code>
+<div class="block">Removes a dependency from the component.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAspect-java.lang.Class-java.lang.String-int-">setAspect</a></span>(java.lang.Class&lt;?&gt;&nbsp;service,
+         java.lang.String&nbsp;filter,
+         int&nbsp;ranking)</code>
+<div class="block">Sets the service interface to apply the aspect to (required parameter)</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAspectCallbackInstance-java.lang.Object-">setAspectCallbackInstance</a></span>(java.lang.Object&nbsp;callbackInstance)</code>
+<div class="block">Sets the instance to invoke the callbacks on (optional parameter).</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAspectCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setAspectCallbacks</a></span>(java.lang.String&nbsp;add,
+                  java.lang.String&nbsp;change,
+                  java.lang.String&nbsp;remove,
+                  java.lang.String&nbsp;swap)</code>
+<div class="block">Sets name of the callbacks method to invoke on add,change,remove, or swap callbacks (optional parameter).</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAspectField-java.lang.String-">setAspectField</a></span>(java.lang.String&nbsp;autoConfig)</code>
+<div class="block">Sets the aspect implementation field name where to inject original service (optional parameter).</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAutoConfig-java.lang.Class-boolean-">setAutoConfig</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
+             boolean&nbsp;autoConfig)</code>
+<div class="block">Configures auto configuration of injected classes in the component instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAutoConfig-java.lang.Class-java.lang.String-">setAutoConfig</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
+             java.lang.String&nbsp;instanceName)</code>
+<div class="block">Configures auto configuration of injected classes in the component instance.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.Object&nbsp;instance,
+            java.lang.String&nbsp;init,
+            java.lang.String&nbsp;start,
+            java.lang.String&nbsp;stop,
+            java.lang.String&nbsp;destroy)</code>
+<div class="block">Sets the names of the methods used as callbacks.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.String&nbsp;init,
+            java.lang.String&nbsp;start,
+            java.lang.String&nbsp;stop,
+            java.lang.String&nbsp;destroy)</code>
+<div class="block">Sets the names of the methods used as callbacks.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setComposition-java.lang.Object-java.lang.String-">setComposition</a></span>(java.lang.Object&nbsp;instance,
+              java.lang.String&nbsp;getMethod)</code>
+<div class="block">Sets the instance and method to invoke to get back all instances that
+ are part of a composition and need dependencies injected.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setComposition-java.lang.String-">setComposition</a></span>(java.lang.String&nbsp;getMethod)</code>
+<div class="block">Sets the method to invoke on the service implementation to get back all
+ instances that are part of a composition and need dependencies injected.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setDebug-java.lang.String-">setDebug</a></span>(java.lang.String&nbsp;label)</code>
+<div class="block">Activate debug for this component.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setFactory-java.lang.Object-java.lang.String-">setFactory</a></span>(java.lang.Object&nbsp;factory,
+          java.lang.String&nbsp;createMethod)</code>
+<div class="block">Sets the factory to use to create the implementation.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setFactory-java.lang.String-">setFactory</a></span>(java.lang.String&nbsp;createMethod)</code>
+<div class="block">Sets the factory to use to create the implementation.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setImplementation-java.lang.Object-">setImplementation</a></span>(java.lang.Object&nbsp;implementation)</code>
+<div class="block">Sets the implementation for this component.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setInterface-java.lang.Class:A-java.util.Dictionary-">setInterface</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;serviceNames,
+            java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
+<div class="block">Sets the public interfaces under which this component should be registered
+ in the OSGi service registry.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setInterface-java.lang.Class-java.util.Dictionary-">setInterface</a></span>(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+            java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
+<div class="block">Sets the public interface under which this component should be registered
+ in the OSGi service registry.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setInterface-java.lang.String:A-java.util.Dictionary-">setInterface</a></span>(java.lang.String[]&nbsp;serviceNames,
+            java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
+<div class="block">Sets the public interfaces under which this component should be registered
+ in the OSGi service registry.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setInterface-java.lang.String-java.util.Dictionary-">setInterface</a></span>(java.lang.String&nbsp;serviceName,
+            java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
+<div class="block">Sets the public interface under which this component should be registered
+ in the OSGi service registry.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setScope-org.apache.felix.dm.Component.ServiceScope-">setScope</a></span>(<a href="../../../../org/apache/felix/dm/Component.ServiceScope.html" title="enum in org.apache.felix.dm">Component.ServiceScope</a>&nbsp;scope)</code>
+<div class="block">Sets the component scope.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/dm/AspectComponent.html#setServiceProperties-java.util.Dictionary-">setServiceProperties</a></span>(java.util.Dictionary&lt;?,?&gt;&nbsp;serviceProperties)</code>
+<div class="block">Sets the service properties associated with the component.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.felix.dm.Component">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.felix.dm.<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></h3>
+<code><a href="../../../../org/apache/felix/dm/Component.html#getComponentDeclaration--">getComponentDeclaration</a>, <a href="../../../../org/apache/felix/dm/Component.html#getDependencyManager--">getDependencyManager</a>, <a href="../../../../org/apache/felix/dm/Component.html#getInstance--">getInstance</a>, <a href="../../../../org/apache/felix/dm/Component.html#getInstances--">getInstances</a>, <a href="../../../../org/apache/felix/dm/Component.html#getServiceProperties--">getServiceProperties</a>, <a href="../../../../org/apache/felix/dm/Component.html#getServiceRegistration--">getServiceRegistration</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setScope-org.apache.felix.dm.Component.ServiceScope-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setScope</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setScope(<a href="../../../../org/apache/felix/dm/Component.ServiceScope.html" title="enum in org.apache.felix.dm">Component.ServiceScope</a>&nbsp;scope)</pre>
+<div class="block">Sets the component scope.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setScope-org.apache.felix.dm.Component.ServiceScope-">setScope</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scope</code> - the component scope (default=SINGLETON)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setImplementation-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setImplementation</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setImplementation(java.lang.Object&nbsp;implementation)</pre>
+<div class="block">Sets the implementation for this component. You can actually specify
+ an instance you have instantiated manually, or a <code>Class</code>
+ that will be instantiated using its default constructor when the
+ required dependencies are resolved, effectively giving you a lazy
+ instantiation mechanism.
+ 
+ There are four special methods that are called when found through
+ reflection to give you life cycle management options:
+ <ol>
+ <li><code>init()</code> is invoked after the instance has been
+ created and dependencies have been resolved, and can be used to
+ initialize the internal state of the instance or even to add more
+ dependencies based on runtime state</li>
+ <li><code>start()</code> is invoked right before the service is 
+ registered</li>
+ <li><code>stop()</code> is invoked right after the service is
+ unregistered</li>
+ <li><code>destroy()</code> is invoked after all dependencies are
+ removed</li>
+ </ol>
+ In short, this allows you to initialize your instance before it is
+ registered, perform some post-initialization and pre-destruction code
+ as well as final cleanup. If a method is not defined, it simply is not
+ called, so you can decide which one(s) you need. If you need even more
+ fine-grained control, you can register as a service state listener too.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setImplementation-java.lang.Object-">setImplementation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>implementation</code> - the implementation</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm"><code>ComponentStateListener</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.felix.dm.Dependency...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;add(<a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>...&nbsp;dependencies)</pre>
+<div class="block">Adds dependency(ies) to this component, atomically. If the component is already active or if you add
+ dependencies from the init method, then you should add all the dependencies in one single add method call 
+ (using the varargs argument), because this method may trigger component activation (like
+ the ServiceTracker.open() method does).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#add-org.apache.felix.dm.Dependency...-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dependencies</code> - the dependencies to add.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-org.apache.felix.dm.Dependency-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;remove(<a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>&nbsp;d)</pre>
+<div class="block">Removes a dependency from the component.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#remove-org.apache.felix.dm.Dependency-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - the dependency to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.felix.dm.ComponentStateListener-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;add(<a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm">ComponentStateListener</a>&nbsp;listener)</pre>
+<div class="block">Adds a component state listener to this component.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#add-org.apache.felix.dm.ComponentStateListener-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>listener</code> - the state listener</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-org.apache.felix.dm.ComponentStateListener-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;remove(<a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm">ComponentStateListener</a>&nbsp;listener)</pre>
+<div class="block">Removes a component state listener from this component.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#remove-org.apache.felix.dm.ComponentStateListener-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>listener</code> - the state listener</dd>
+</dl>
+</li>
+</ul>
+<a name="setInterface-java.lang.String-java.util.Dictionary-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInterface</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setInterface(java.lang.String&nbsp;serviceName,
+                             java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
+<div class="block">Sets the public interface under which this component should be registered
+ in the OSGi service registry.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.String-java.util.Dictionary-">setInterface</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the name of the service interface</dd>
+<dd><code>properties</code> - the properties for this service</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setInterface-java.lang.String:A-java.util.Dictionary-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInterface</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setInterface(java.lang.String[]&nbsp;serviceNames,
+                             java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
+<div class="block">Sets the public interfaces under which this component should be registered
+ in the OSGi service registry.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.String:A-java.util.Dictionary-">setInterface</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceNames</code> - the names of the service interface</dd>
+<dd><code>properties</code> - the properties for these services</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setInterface-java.lang.Class-java.util.Dictionary-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInterface</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setInterface(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+                             java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
+<div class="block">Sets the public interface under which this component should be registered
+ in the OSGi service registry.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.Class-java.util.Dictionary-">setInterface</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the name of the service interface</dd>
+<dd><code>properties</code> - the properties for this service</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setInterface-java.lang.Class:A-java.util.Dictionary-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInterface</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setInterface(java.lang.Class&lt;?&gt;[]&nbsp;serviceNames,
+                             java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
+<div class="block">Sets the public interfaces under which this component should be registered
+ in the OSGi service registry.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.Class:A-java.util.Dictionary-">setInterface</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceNames</code> - the names of the service interface</dd>
+<dd><code>properties</code> - the properties for these services</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setAutoConfig-java.lang.Class-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoConfig</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAutoConfig(java.lang.Class&lt;?&gt;&nbsp;clazz,
+                              boolean&nbsp;autoConfig)</pre>
+<div class="block">Configures auto configuration of injected classes in the component instance.
+ The following injections are currently performed, unless you explicitly
+ turn them off:
+ <dl>
+ <dt>BundleContext</dt><dd>the bundle context of the bundle</dd>
+ <dt>ServiceRegistration</dt><dd>the service registration used to register your service</dd>
+ <dt>DependencyManager</dt><dd>the dependency manager instance</dd>
+ <dt>Component</dt><dd>the component instance of the dependency manager</dd>
+ </dl></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setAutoConfig-java.lang.Class-boolean-">setAutoConfig</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - the class (from the list above)</dd>
+<dd><code>autoConfig</code> - <code>false</code> to turn off auto configuration</dd>
+</dl>
+</li>
+</ul>
+<a name="setAutoConfig-java.lang.Class-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoConfig</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAutoConfig(java.lang.Class&lt;?&gt;&nbsp;clazz,
+                              java.lang.String&nbsp;instanceName)</pre>
+<div class="block">Configures auto configuration of injected classes in the component instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setAutoConfig-java.lang.Class-java.lang.String-">setAutoConfig</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - the class (from the list above)</dd>
+<dd><code>instanceName</code> - the name of the instance to inject the class into</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/felix/dm/AspectComponent.html#setAutoConfig-java.lang.Class-boolean-"><code>setAutoConfig(Class, boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="setServiceProperties-java.util.Dictionary-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setServiceProperties</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setServiceProperties(java.util.Dictionary&lt;?,?&gt;&nbsp;serviceProperties)</pre>
+<div class="block">Sets the service properties associated with the component. If the service
+ was already registered, it will be updated.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setServiceProperties-java.util.Dictionary-">setServiceProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceProperties</code> - the properties</dd>
+</dl>
+</li>
+</ul>
+<a name="setCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCallbacks</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setCallbacks(java.lang.String&nbsp;init,
+                             java.lang.String&nbsp;start,
+                             java.lang.String&nbsp;stop,
+                             java.lang.String&nbsp;destroy)</pre>
+<div class="block">Sets the names of the methods used as callbacks. These methods, when found, are
+ invoked as part of the life cycle management of the component implementation. The
+ dependency manager will look for a method of this name with the following signatures,
+ in this order:
+ <ol>
+ <li>method(Component component)</li>
+ <li>method()</li>
+ </ol></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>init</code> - the name of the init method</dd>
+<dd><code>start</code> - the name of the start method</dd>
+<dd><code>stop</code> - the name of the stop method</dd>
+<dd><code>destroy</code> - the name of the destroy method</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the component</dd>
+</dl>
+</li>
+</ul>
+<a name="setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCallbacks</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
+                             java.lang.String&nbsp;init,
+                             java.lang.String&nbsp;start,
+                             java.lang.String&nbsp;stop,
+                             java.lang.String&nbsp;destroy)</pre>
+<div class="block">Sets the names of the methods used as callbacks. These methods, when found, are
+ invoked on the specified instance as part of the life cycle management of the component
+ implementation.
+ <p>
+ See setCallbacks(String init, String start, String stop, String destroy) for more
+ information on the signatures. Specifying an instance means you can create a manager
+ that will be invoked whenever the life cycle of a component changes and this manager
+ can then decide how to expose this life cycle to the actual component, offering an
+ important indirection when developing your own component models.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setFactory-java.lang.Object-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFactory</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setFactory(java.lang.Object&nbsp;factory,
+                           java.lang.String&nbsp;createMethod)</pre>
+<div class="block">Sets the factory to use to create the implementation. You can specify
+ both the factory class and method to invoke. The method should return
+ the implementation, and can use any method to create it. Actually, this
+ can be used together with <code>setComposition</code> to create a
+ composition of instances that work together to implement a component. The
+ factory itself can also be instantiated lazily by not specifying an
+ instance, but a <code>Class</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setFactory-java.lang.Object-java.lang.String-">setFactory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>factory</code> - the factory instance or class</dd>
+<dd><code>createMethod</code> - the name of the create method</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setFactory-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFactory</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setFactory(java.lang.String&nbsp;createMethod)</pre>
+<div class="block">Sets the factory to use to create the implementation. You specify the
+ method to invoke. The method should return the implementation, and can
+ use any method to create it. Actually, this can be used together with
+ <code>setComposition</code> to create a composition of instances that
+ work together to implement a component.
+ <p>
+ Note that currently, there is no default for the factory, so please use
+ <code>setFactory(factory, createMethod)</code> instead.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setFactory-java.lang.String-">setFactory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>createMethod</code> - the name of the create method</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setComposition-java.lang.Object-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setComposition</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setComposition(java.lang.Object&nbsp;instance,
+                               java.lang.String&nbsp;getMethod)</pre>
+<div class="block">Sets the instance and method to invoke to get back all instances that
+ are part of a composition and need dependencies injected. All of them
+ will be searched for any of the dependencies. The method that is
+ invoked must return an <code>Object[]</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setComposition-java.lang.Object-java.lang.String-">setComposition</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - the instance that has the method</dd>
+<dd><code>getMethod</code> - the method to invoke</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setComposition-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setComposition</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setComposition(java.lang.String&nbsp;getMethod)</pre>
+<div class="block">Sets the method to invoke on the service implementation to get back all
+ instances that are part of a composition and need dependencies injected.
+ All of them will be searched for any of the dependencies. The method that
+ is invoked must return an <code>Object[]</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setComposition-java.lang.String-">setComposition</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>getMethod</code> - the method to invoke</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this component</dd>
+</dl>
+</li>
+</ul>
+<a name="setDebug-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDebug</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setDebug(java.lang.String&nbsp;label)</pre>
+<div class="block">Activate debug for this component. Informations related to dependency processing will be displayed
+ using osgi log service, our to standard output if no log service is currently available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/felix/dm/Component.html#setDebug-java.lang.String-">setDebug</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>label</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setAspect-java.lang.Class-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAspect</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAspect(java.lang.Class&lt;?&gt;&nbsp;service,
+                          java.lang.String&nbsp;filter,
+                          int&nbsp;ranking)</pre>
+<div class="block">Sets the service interface to apply the aspect to (required parameter)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - the service interface to apply the aspect to</dd>
+<dd><code>filter</code> - the filter condition to use with the service aspect interface (null if no filter)</dd>
+<dd><code>ranking</code> - the level used to organize the aspect chain ordering</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this aspect parameter instance</dd>
+</dl>
+</li>
+</ul>
+<a name="setAspectField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAspectField</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAspectField(java.lang.String&nbsp;autoConfig)</pre>
+<div class="block">Sets the aspect implementation field name where to inject original service (optional parameter).
+ If not set or null, any field matching the original service will be injected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>autoConfig</code> - the aspect implementation field name where to inject original service</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this aspect parameter instance</dd>
+</dl>
+</li>
+</ul>
+<a name="setAspectCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAspectCallbacks</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAspectCallbacks(java.lang.String&nbsp;add,
+                                   java.lang.String&nbsp;change,
+                                   java.lang.String&nbsp;remove,
+                                   java.lang.String&nbsp;swap)</pre>
+<div class="block">Sets name of the callbacks method to invoke on add,change,remove, or swap callbacks (optional parameter).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>add</code> - name of the callback method to invoke on add</dd>
+<dd><code>change</code> - name of the callback method to invoke on change</dd>
+<dd><code>remove</code> - name of the callback method to invoke on remove</dd>
+<dd><code>swap</code> - name of the callback method to invoke on swap</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this aspect parameter instance</dd>
+</dl>
+</li>
+</ul>
+<a name="setAspectCallbackInstance-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAspectCallbackInstance</h4>
+<pre><a href="../../../../org/apache/felix/dm/AspectComponent.html" title="interface in org.apache.felix.dm">AspectComponent</a>&nbsp;setAspectCallbackInstance(java.lang.Object&nbsp;callbackInstance)</pre>
+<div class="block">Sets the instance to invoke the callbacks on (optional parameter). 
+ null means the callbacks will be invoked on the aspect implementation object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callbackInstance</code> - the instance to invoke the callbacks on</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this aspect parameter instance</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/felix/dm/AdapterComponent.html" title="interface in org.apache.felix.dm"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/felix/dm/BundleComponent.html" title="interface in org.apache.felix.dm"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/felix/dm/AspectComponent.html" target="_top">Frames</a></li>
+<li><a href="AspectComponent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>