Added: websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentDependencyDeclaration.html ============================================================================== --- websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentDependencyDeclaration.html (added) +++ websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentDependencyDeclaration.html Fri Mar 6 22:25:31 2015 @@ -0,0 +1,424 @@ +<!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 (version 1.7.0_67) on Fri Mar 06 23:13:13 CET 2015 --> +<title>ComponentDependencyDeclaration</title> +<meta name="date" content="2015-03-06"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ComponentDependencyDeclaration"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ComponentDeclaration.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentExecutorFactory.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentDependencyDeclaration.html" target="_top">Frames</a></li> +<li><a href="ComponentDependencyDeclaration.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li><a href="#field_summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field_detail">Field</a> | </li> +<li>Constr | </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 ComponentDependencyDeclaration" class="title">Interface ComponentDependencyDeclaration</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../../org/apache/felix/dm/BundleDependency.html" title="interface in org.apache.felix.dm">BundleDependency</a>, <a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a>, <a href="../../../../org/apache/felix/dm/ResourceDependency.html" title="interface in org.apache.felix.dm">ResourceDependency</a>, <a href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface in org.apache.felix.dm">ServiceDependency</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../org/apache/felix/dm/context/AbstractDependency.html" title="class in org.apache.felix.dm.context">AbstractDependency</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="strong">ComponentDependencyDeclaration</span></pre> +<div class="block">Describes a component dependency. They form descriptions of dependencies + that are managed by the dependency manager. They can be used to query their state + for monitoring tools. The dependency manager shell command is an example of + such a tool.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field_summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_OPTIONAL">STATE_AVAILABLE_OPTIONAL</a></strong></code> +<div class="block">State constant for an available, optional dependency.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_REQUIRED">STATE_AVAILABLE_REQUIRED</a></strong></code> +<div class="block">State constant for an available, required dependency.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static java.lang.String[]</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_NAMES">STATE_NAMES</a></strong></code> +<div class="block">Names for the states of this dependency.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_OPTIONAL">STATE_OPTIONAL</a></strong></code> +<div class="block">State constant for an optional dependency that has not been started yet.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_REQUIRED">STATE_REQUIRED</a></strong></code> +<div class="block">State constant for a required dependency that has not been started yet.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_OPTIONAL">STATE_UNAVAILABLE_OPTIONAL</a></strong></code> +<div class="block">State constant for an unavailable, optional dependency.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_REQUIRED">STATE_UNAVAILABLE_REQUIRED</a></strong></code> +<div class="block">State constant for an unavailable, required dependency.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getFilter()">getFilter</a></strong>()</code> +<div class="block">Returns the Dependency filter or null</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getName()">getName</a></strong>()</code> +<div class="block">Returns the name of this dependency (a generic name with optional info separated by spaces)</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getSimpleName()">getSimpleName</a></strong>()</code> +<div class="block">Returns the simple dependency name (service classname for example)</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getState()">getState</a></strong>()</code> +<div class="block">Returns the state of this dependency.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getType()">getType</a></strong>()</code> +<div class="block">Returns the name of the type of this dependency.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field_detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="STATE_NAMES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_NAMES</h4> +<pre>static final java.lang.String[] STATE_NAMES</pre> +<div class="block">Names for the states of this dependency.</div> +</li> +</ul> +<a name="STATE_UNAVAILABLE_OPTIONAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_UNAVAILABLE_OPTIONAL</h4> +<pre>static final int STATE_UNAVAILABLE_OPTIONAL</pre> +<div class="block">State constant for an unavailable, optional dependency.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_UNAVAILABLE_OPTIONAL">Constant Field Values</a></dd></dl> +</li> +</ul> +<a name="STATE_AVAILABLE_OPTIONAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_AVAILABLE_OPTIONAL</h4> +<pre>static final int STATE_AVAILABLE_OPTIONAL</pre> +<div class="block">State constant for an available, optional dependency.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_AVAILABLE_OPTIONAL">Constant Field Values</a></dd></dl> +</li> +</ul> +<a name="STATE_UNAVAILABLE_REQUIRED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_UNAVAILABLE_REQUIRED</h4> +<pre>static final int STATE_UNAVAILABLE_REQUIRED</pre> +<div class="block">State constant for an unavailable, required dependency.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_UNAVAILABLE_REQUIRED">Constant Field Values</a></dd></dl> +</li> +</ul> +<a name="STATE_AVAILABLE_REQUIRED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_AVAILABLE_REQUIRED</h4> +<pre>static final int STATE_AVAILABLE_REQUIRED</pre> +<div class="block">State constant for an available, required dependency.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_AVAILABLE_REQUIRED">Constant Field Values</a></dd></dl> +</li> +</ul> +<a name="STATE_OPTIONAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STATE_OPTIONAL</h4> +<pre>static final int STATE_OPTIONAL</pre> +<div class="block">State constant for an optional dependency that has not been started yet.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_OPTIONAL">Constant Field Values</a></dd></dl> +</li> +</ul> +<a name="STATE_REQUIRED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>STATE_REQUIRED</h4> +<pre>static final int STATE_REQUIRED</pre> +<div class="block">State constant for a required dependency that has not been started yet.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.felix.dm.ComponentDependencyDeclaration.STATE_REQUIRED">Constant Field Values</a></dd></dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getName()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName</h4> +<pre>java.lang.String getName()</pre> +<div class="block">Returns the name of this dependency (a generic name with optional info separated by spaces)</div> +</li> +</ul> +<a name="getSimpleName()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getSimpleName</h4> +<pre>java.lang.String getSimpleName()</pre> +<div class="block">Returns the simple dependency name (service classname for example)</div> +</li> +</ul> +<a name="getFilter()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFilter</h4> +<pre>java.lang.String getFilter()</pre> +<div class="block">Returns the Dependency filter or null</div> +</li> +</ul> +<a name="getType()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getType</h4> +<pre>java.lang.String getType()</pre> +<div class="block">Returns the name of the type of this dependency.</div> +</li> +</ul> +<a name="getState()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getState</h4> +<pre>int getState()</pre> +<div class="block">Returns the state of this dependency.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ComponentDeclaration.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentExecutorFactory.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentDependencyDeclaration.html" target="_top">Frames</a></li> +<li><a href="ComponentDependencyDeclaration.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li><a href="#field_summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field_detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html>
Added: websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentExecutorFactory.html ============================================================================== --- websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentExecutorFactory.html (added) +++ websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentExecutorFactory.html Fri Mar 6 22:25:31 2015 @@ -0,0 +1,346 @@ +<!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 (version 1.7.0_67) on Fri Mar 06 23:13:13 CET 2015 --> +<title>ComponentExecutorFactory</title> +<meta name="date" content="2015-03-06"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ComponentExecutorFactory"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentExecutorFactory.html" target="_top">Frames</a></li> +<li><a href="ComponentExecutorFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </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 ComponentExecutorFactory" class="title">Interface ComponentExecutorFactory</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="strong">ComponentExecutorFactory</span></pre> +<div class="block">A <code>ComponentExecutorFactory</code> service can be registered by any management agent bundle + in order to enable parallel activation of Components.<p> + + A <code>ComponentExecutorFactory</code> is part of the new concurrency model that forms the basis + of Dependency Manager 4.0. Let's first give a brief overview of the default thread model used when + no ComponentExecutorFactory is used. Then we'll explain the rationale and the usage of a + <code>ComponentExecutorFactory</code> service. + <p> + + <h3>Default Thread Model</h3> + + By default, Dependency Manager uses a <b>lock-free/single thread</b> model: + <p><ul> + + <li> When an external event that influence the state of a Component is taking place (for example, + when a service dependency on which the Component is depending on is registered in the registry by + a given thread), then DependencyManager does not perform any locking for the handling of the event. + Instead of that, a job that will handle the event is inserted in an internal lock-free + <b><code>Serial Queue</code></b> which is internally maintained in each Component. + + <li> all jobs scheduled in the <code>Serial Queue</code> are then executed in FIFO order, by the first + thread which has triggered the first event. This avoid to use some blocking locks in DM internals, and + also it simplifies the development of DM components, because all lifecycle callbacks + (init/start/stop/destroy) and dependency injections are scheduled through the <code>Serial Queue</code>: + This means that your component is not concurrently called in lifecycle callbacks and in dependency injection + methods. + + <li> Now let's describe which thread is executing the jobs scheduled in a Component <code>Serial Queue</code>: + When a job (J1) is scheduled in the queue while it is empty, then the current thread becomes the "master" + and will immediately execute the </code>Serial Queue</code> tasks (synchronously). And if another thread + triggers another event concurrently while the "master" thread is executing the job J1, then a job (J2) + for this new event is just enqueued in the <code>Serial Queue</code>, but the other thread returns + immediately to the caller, and the job J2 will then be executed by the "master" thread (after J1). + </ul> + + <p> + This mechanism allows to serially handle all Component events (service dependencies) in FIFO order + without maintaining any locks. + + <h3>Enabling parallelism with a <code>ComponentExecutorFactory</code></h3> + + As described above, all the external events that influence the state of a given component are handed by + jobs scheduled in the <code>Serial Queue</code> of the Component, and the jobs are getting executed serially + by a single "master" thread. So usually, bundles are started from a single thread, meaning that all Components + are then activated synchronously. + <p> + + But when you register in the OSGi service registry a <code>ComponentExecutorFactory</code>, that factory + will be used by DependencyManager to create an Executor of your choice for each Component, typically a shared + threadpool configured by yourself. And all the Component <code>Serial Queues</code> will be executed using + the Executor returned by the <a href="../../../../org/apache/felix/dm/ComponentExecutorFactory.html#getExecutorFor(org.apache.felix.dm.Component)"><code>getExecutorFor(Component)</code></a> method. + However, jobs scheduled in the <code>Serial Queue</code> of a given Component are still executed one at a + time, in FIFO order and the Component remains single threaded, and <b>independent Components + may then each be managed and activated concurrently with respect to each other</b>. + <p> + If you want to ensure that all Components are initialized <b>after</b> the ComponentExecutorFactory is + registered in the OSGI registry, you can use the "org.apache.felix.dependencymanager.parallel" OSGi + system property which specifies the list of components which must wait for the ComponentExecutorFactory + service. This property value can be set to a wildcard ("*"), or a list of components implementation class + prefixes (comma separated). So, all components whose class name starts with the specified prefixes will be cached + until the ComponentExecutorFactory service is registered (In this way, it is not necessary to use + the StartLevel service if you want to ensure that all components are started concurrently). + <p> + + Some class name prefixes can also be negated (using "!"), in order to exclude some components from the + list of components using the ComponentExecutorFactory service. + <p> + + Notice that if the ComponentExecutorFactory itself and all its dependent services are defined using + the Dependency Manager API, then you have to list the package of such components with a "!" + prefix, in order to indicate that those components must not wait for a ComponentExecutorFactory service + (since they are part of the ComponentExecutorFactory implementation !). + <p> + + <h3>Examples for the usage of the "org.apache.felix.dependencymanager.parallel" property:</h3> + + <blockquote><pre> + org.apache.felix.dependencymanager.parallel=* + -> means all components must be cached until a ComponentExecutorFactory comes up. + + org.apache.felix.dependencymanager.parallel=foo.bar, foo.zoo + -> means only components whose implementation class names are starting with "foo.bar" or "foo.zoo" + must be handled using an Executor returned by the ComponentExecutorFactory service. Other Components + will be handled normally, as when there is no ComponentExecutorFactory available. + + org.apache.felix.dependencymanager.parallel=!foo.threadpool, * + -> means all components must be delayed until the ComponentExecutorFactory comes up, except the + components whose implementations class names are starting with "foo.threadpool" prefix). + </pre></blockquote> + + <h3>Examples of a ComponentExecutorFactory that provides a shared threadpool:</h3> + + First, we define the OSGi bundle context system property to enable parallelism for all DM Components + excepts the one which declares the ComponentExecutorFactory: + + <blockquote> <pre> + org.apache.felix.dependencymanager.parallel=!com.acme.management.threadpool, * + </pre></blockquote> + + Next, here is the Activator which declares the ComponentExecutorFactory: + + <blockquote> <pre> + package com.acme.management.threadpool; + import org.apache.felix.dm.*; + + public class Activator extends DependencyActivatorBase { + public void init(BundleContext context, DependencyManager mgr) throws Exception { + mgr.add(createComponent() + .setInterface(ComponentExecutorFactory.class.getName(), null) + .setImplementation(ComponentExecutorFactoryImpl.class) + .add(createConfigurationDependency() + .setPid("com.acme.management.threadpool.ComponentExecutorFactoryImpl"))); + } + } + </pre></blockquote> + + And here is the implementation for our ComponentExecutorFactory: + + <blockquote> <pre> + package com.acme.management.threadpool; + import org.apache.felix.dm.*; + + public class ComponentExecutorFactoryImpl implements ComponentExecutorFactory { + volatile Executor m_threadPool; + + void updated(Dictionary conf) { + m_sharedThreadPool = Executors.newFixedThreadPool(Integer.parseInt("threadpool.size")); + } + + @Override + public Executor getExecutorFor(Component component) { + return m_sharedThreadPool; // Use a shared threadpool for all Components + } + } + </pre></blockquote></div> +<dl><dt><span class="strong">Since:</span></dt> + <dd>4.0.0</dd></dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.util.concurrent.Executor</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentExecutorFactory.html#getExecutorFor(org.apache.felix.dm.Component)">getExecutorFor</a></strong>(<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a> component)</code> +<div class="block">Returns an Executor (typically a shared thread pool) used to manage a given DependencyManager Component.</div> +</td> +</tr> +</table> +</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="getExecutorFor(org.apache.felix.dm.Component)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getExecutorFor</h4> +<pre>java.util.concurrent.Executor getExecutorFor(<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a> component)</pre> +<div class="block">Returns an Executor (typically a shared thread pool) used to manage a given DependencyManager Component.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>component</code> - the Component to be managed by the returned Executor</dd> +<dt><span class="strong">Returns:</span></dt><dd>an Executor used to manage the given component, or null if the component must not be managed using any executor.</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentExecutorFactory.html" target="_top">Frames</a></li> +<li><a href="ComponentExecutorFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> Added: websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentState.html ============================================================================== --- websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentState.html (added) +++ websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentState.html Fri Mar 6 22:25:31 2015 @@ -0,0 +1,357 @@ +<!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 (version 1.7.0_67) on Fri Mar 06 23:13:13 CET 2015 --> +<title>ComponentState</title> +<meta name="date" content="2015-03-06"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ComponentState"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ComponentExecutorFactory.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentState.html" target="_top">Frames</a></li> +<li><a href="ComponentState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li><a href="#enum_constant_summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum_constant_detail">Enum Constants</a> | </li> +<li>Field | </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="Enum ComponentState" class="title">Enum ComponentState</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li>java.lang.Enum<<a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a>></li> +<li> +<ul class="inheritance"> +<li>org.apache.felix.dm.ComponentState</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd>java.io.Serializable, java.lang.Comparable<<a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="strong">ComponentState</span> +extends java.lang.Enum<<a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a>></pre> +<div class="block">Component states. Any state listeners registered using @link <a href="../../../../org/apache/felix/dm/Component.html#add(org.apache.felix.dm.ComponentStateListener)"><code>Component.add(ComponentStateListener)</code></a> method + are notified with the following stated whenever the component state changes.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum_constant_summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#INACTIVE">INACTIVE</a></strong></code> +<div class="block">The component is not currently started, and is inactive.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#INSTANTIATED_AND_WAITING_FOR_REQUIRED">INSTANTIATED_AND_WAITING_FOR_REQUIRED</a></strong></code> +<div class="block">The component has all its initial required dependencies available, but is now waiting for some extra required + dependencies which have been added after the component have been started (like from the component init method for example).</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#TRACKING_OPTIONAL">TRACKING_OPTIONAL</a></strong></code> +<div class="block">The component is active, and is now tracking available optional dependencies.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#WAITING_FOR_REQUIRED">WAITING_FOR_REQUIRED</a></strong></code> +<div class="block">The component is waiting for some required dependencies.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#valueOf(java.lang.String)">valueOf</a></strong>(java.lang.String name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a>[]</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentState.html#values()">values</a></strong>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Enum</h3> +<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>getClass, notify, notifyAll, wait, wait, wait</code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum_constant_detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="INACTIVE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INACTIVE</h4> +<pre>public static final <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> INACTIVE</pre> +<div class="block">The component is not currently started, and is inactive.</div> +</li> +</ul> +<a name="WAITING_FOR_REQUIRED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WAITING_FOR_REQUIRED</h4> +<pre>public static final <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> WAITING_FOR_REQUIRED</pre> +<div class="block">The component is waiting for some required dependencies.</div> +</li> +</ul> +<a name="INSTANTIATED_AND_WAITING_FOR_REQUIRED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INSTANTIATED_AND_WAITING_FOR_REQUIRED</h4> +<pre>public static final <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> INSTANTIATED_AND_WAITING_FOR_REQUIRED</pre> +<div class="block">The component has all its initial required dependencies available, but is now waiting for some extra required + dependencies which have been added after the component have been started (like from the component init method for example).</div> +</li> +</ul> +<a name="TRACKING_OPTIONAL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TRACKING_OPTIONAL</h4> +<pre>public static final <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> TRACKING_OPTIONAL</pre> +<div class="block">The component is active, and is now tracking available optional dependencies.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (ComponentState c : ComponentState.values()) + System.out.println(c); +</pre></div> +<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the constants of this enum type, in the order they are declared</dd></dl> +</li> +</ul> +<a name="valueOf(java.lang.String)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> valueOf(java.lang.String name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="strong">Returns:</span></dt><dd>the enum constant with the specified name</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd> +<dd><code>java.lang.NullPointerException</code> - if the argument is null</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ComponentExecutorFactory.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ComponentStateListener.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentState.html" target="_top">Frames</a></li> +<li><a href="ComponentState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li><a href="#enum_constant_summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum_constant_detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> Added: websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentStateListener.html ============================================================================== --- websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentStateListener.html (added) +++ websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ComponentStateListener.html Fri Mar 6 22:25:31 2015 @@ -0,0 +1,210 @@ +<!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 (version 1.7.0_67) on Fri Mar 06 23:13:13 CET 2015 --> +<title>ComponentStateListener</title> +<meta name="date" content="2015-03-06"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ComponentStateListener"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ComponentState.html" title="enum in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentStateListener.html" target="_top">Frames</a></li> +<li><a href="ComponentStateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </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 ComponentStateListener" class="title">Interface ComponentStateListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="strong">ComponentStateListener</span></pre> +<div class="block">This interface can be used to register a component state listener. Component + state listeners are called whenever a component state changes. You get notified + when the component is starting, started, stopping and stopped. Each callback + includes a reference to the component in question.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ComponentStateListener.html#changed(org.apache.felix.dm.Component,%20org.apache.felix.dm.ComponentState)">changed</a></strong>(<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a> c, + <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> state)</code> </td> +</tr> +</table> +</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="changed(org.apache.felix.dm.Component, org.apache.felix.dm.ComponentState)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>changed</h4> +<pre>void changed(<a href="../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a> c, + <a href="../../../../org/apache/felix/dm/ComponentState.html" title="enum in org.apache.felix.dm">ComponentState</a> state)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ComponentState.html" title="enum in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ComponentStateListener.html" target="_top">Frames</a></li> +<li><a href="ComponentStateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> Added: websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ConfigurationDependency.html ============================================================================== --- websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ConfigurationDependency.html (added) +++ websites/staging/felix/trunk/content/apidocs/dependencymanager/4.0.0/org/apache/felix/dm/ConfigurationDependency.html Fri Mar 6 22:25:31 2015 @@ -0,0 +1,398 @@ +<!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 (version 1.7.0_67) on Fri Mar 06 23:13:13 CET 2015 --> +<title>ConfigurationDependency</title> +<meta name="date" content="2015-03-06"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ConfigurationDependency"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ComponentStateListener.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ConfigurationDependency.html" target="_top">Frames</a></li> +<li><a href="ConfigurationDependency.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </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 ConfigurationDependency" class="title">Interface ConfigurationDependency</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/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>, <a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="strong">ConfigurationDependency</span> +extends <a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></pre> +<div class="block">Configuration dependency that can track the availability of a (valid) configuration. To use + it, specify a PID for the configuration. The dependency is always required, because if it is + not, it does not make sense to use the dependency manager. In that scenario, simply register + your component as a <code>ManagedService(Factory)</code> and handle everything yourself. Also, + only managed services are supported, not factories. There are a couple of things you need to + be aware of when implementing the <code>updated(Dictionary)</code> method: + <ul> + <li>Make sure it throws a <code>ConfigurationException</code> when you get a configuration + that is invalid. In this case, the dependency will not change: if it was not available, it + will still not be. If it was available, it will remain available and implicitly assume you + keep working with your old configuration.</li> + <li>This method will be called before all required dependencies are available. Make sure you + do not depend on these to parse your settings.</li> + </ul></div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field_summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields_inherited_from_class_org.apache.felix.dm.ComponentDependencyDeclaration"> +<!-- --> +</a> +<h3>Fields inherited from interface org.apache.felix.dm.<a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></h3> +<code><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_OPTIONAL">STATE_AVAILABLE_OPTIONAL</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_REQUIRED">STATE_AVAILABLE_REQUIRED</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_NAMES">STATE_NAMES</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_OPTIONAL">STATE_OPTIONAL</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_REQUIRED">STATE_REQUIRED</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_OPTIONAL">STATE_UNAVAILABLE_OPTIONAL</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_REQUIRED">STATE_UNAVAILABLE_REQUIRED</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#add(org.apache.felix.dm.PropertyMetaData)">add</a></strong>(<a href="../../../../org/apache/felix/dm/PropertyMetaData.html" title="interface in org.apache.felix.dm">PropertyMetaData</a> properties)</code> +<div class="block">Adds a MetaData regarding a given configuration property.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setCallback(java.lang.Object,%20java.lang.String)">setCallback</a></strong>(java.lang.Object instance, + java.lang.String callback)</code> +<div class="block">Sets the name of the callback method that should be invoked when a configuration + is available.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setCallback(java.lang.String)">setCallback</a></strong>(java.lang.String callback)</code> +<div class="block">Sets the name of the callback method that should be invoked when a configuration + is available.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setDescription(java.lang.String)">setDescription</a></strong>(java.lang.String description)</code> +<div class="block">A human readable description of the PID this configuration is associated + with.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setHeading(java.lang.String)">setHeading</a></strong>(java.lang.String heading)</code> +<div class="block">The label used to display the tab name (or section) where the properties + are displayed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setLocalization(java.lang.String)">setLocalization</a></strong>(java.lang.String path)</code> +<div class="block">Points to the basename of the Properties file that can localize the Meta + Type informations.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setPid(java.lang.String)">setPid</a></strong>(java.lang.String pid)</code> +<div class="block">Sets the <code>service.pid</code> of the configuration you are depending + on.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a></code></td> +<td class="colLast"><code><strong><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html#setPropagate(boolean)">setPropagate</a></strong>(boolean propagate)</code> +<div class="block">Sets propagation of the configuration properties to the service + properties.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_org.apache.felix.dm.Dependency"> +<!-- --> +</a> +<h3>Methods inherited from interface org.apache.felix.dm.<a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></h3> +<code><a href="../../../../org/apache/felix/dm/Dependency.html#getAutoConfigName()">getAutoConfigName</a>, <a href="../../../../org/apache/felix/dm/Dependency.html#getProperties()">getProperties</a>, <a href="../../../../org/apache/felix/dm/Dependency.html#isAutoConfig()">isAutoConfig</a>, <a href="../../../../org/apache/felix/dm/Dependency.html#isAvailable()">isAvailable</a>, <a href="../../../../org/apache/felix/dm/Dependency.html#isPropagated()">isPropagated</a>, <a href="../../../../org/apache/felix/dm/Dependency.html#isRequired()">isRequired</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_org.apache.felix.dm.ComponentDependencyDeclaration"> +<!-- --> +</a> +<h3>Methods inherited from interface org.apache.felix.dm.<a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></h3> +<code><a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getFilter()">getFilter</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getName()">getName</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getSimpleName()">getSimpleName</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getState()">getState</a>, <a href="../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getType()">getType</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="setCallback(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setCallback</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setCallback(java.lang.String callback)</pre> +<div class="block">Sets the name of the callback method that should be invoked when a configuration + is available. The contract for this method is identical to that of + <code>ManagedService.updated(Dictionary) throws ConfigurationException</code>.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>callback</code> - the name of the callback method</dd></dl> +</li> +</ul> +<a name="setCallback(java.lang.Object, java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setCallback</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setCallback(java.lang.Object instance, + java.lang.String callback)</pre> +<div class="block">Sets the name of the callback method that should be invoked when a configuration + is available. The contract for this method is identical to that of + <code>ManagedService.updated(Dictionary) throws ConfigurationException</code>.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>instance</code> - the instance to call the callbacks on</dd><dd><code>callback</code> - the name of the callback method</dd></dl> +</li> +</ul> +<a name="setPid(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setPid</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setPid(java.lang.String pid)</pre> +<div class="block">Sets the <code>service.pid</code> of the configuration you are depending + on.</div> +</li> +</ul> +<a name="setPropagate(boolean)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setPropagate</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setPropagate(boolean propagate)</pre> +<div class="block">Sets propagation of the configuration properties to the service + properties. Any additional service properties specified directly are + merged with these.</div> +</li> +</ul> +<a name="setHeading(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setHeading</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setHeading(java.lang.String heading)</pre> +<div class="block">The label used to display the tab name (or section) where the properties + are displayed. Example: "Printer Service".</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>The label used to display the tab name where the properties are + displayed (may be localized)</dd></dl> +</li> +</ul> +<a name="setDescription(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setDescription</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setDescription(java.lang.String description)</pre> +<div class="block">A human readable description of the PID this configuration is associated + with. Example: "Configuration for the PrinterService bundle".</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>A human readable description of the PID this configuration is + associated with (may be localized)</dd></dl> +</li> +</ul> +<a name="setLocalization(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setLocalization</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> setLocalization(java.lang.String path)</pre> +<div class="block">Points to the basename of the Properties file that can localize the Meta + Type informations. The default localization base name for the properties + is OSGI-INF/l10n/bundle, but can be overridden by the manifest + Bundle-Localization header (see core specification, in section + Localization on page 68). You can specify a specific localization + basename file using this method (e.g. + <code>setLocalization("person")</code> will match person_du_NL.properties + in the root bundle directory.</div> +</li> +</ul> +<a name="add(org.apache.felix.dm.PropertyMetaData)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>add</h4> +<pre><a href="../../../../org/apache/felix/dm/ConfigurationDependency.html" title="interface in org.apache.felix.dm">ConfigurationDependency</a> add(<a href="../../../../org/apache/felix/dm/PropertyMetaData.html" title="interface in org.apache.felix.dm">PropertyMetaData</a> properties)</pre> +<div class="block">Adds a MetaData regarding a given configuration property.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ComponentStateListener.html" title="interface in org.apache.felix.dm"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?org/apache/felix/dm/ConfigurationDependency.html" target="_top">Frames</a></li> +<li><a href="ConfigurationDependency.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html>