Added: 
websites/staging/felix/trunk/content/apidocs/dependencymanager/r13/org/apache/felix/dm/ServiceDependency.html
==============================================================================
--- 
websites/staging/felix/trunk/content/apidocs/dependencymanager/r13/org/apache/felix/dm/ServiceDependency.html
 (added)
+++ 
websites/staging/felix/trunk/content/apidocs/dependencymanager/r13/org/apache/felix/dm/ServiceDependency.html
 Mon Oct 22 16:46:37 2018
@@ -0,0 +1,846 @@
+<!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_172) on Mon Oct 22 18:34:41 CEST 2018 -->
+<title>ServiceDependency</title>
+<meta name="date" content="2018-10-22">
+<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="ServiceDependency";
+        }
+    }
+    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};
+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/ResourceUtil.html" title="class 
in org.apache.felix.dm"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../index.html?org/apache/felix/dm/ServiceDependency.html" 
target="_top">Frames</a></li>
+<li><a href="ServiceDependency.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 ServiceDependency" class="title">Interface 
ServiceDependency</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="typeNameLabel">ServiceDependency</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">Service dependency that can track an OSGi service.
+ 
+ When defining dependency method callbacks; 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)
+ (ServiceObjects 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)
+ (ServiceObjects old, ServiceObjects replace)
+ (Component comp, ServiceObjects old, ServiceObjects replace)
+ </code></pre></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&nbsp;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="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/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setAutoConfig-boolean-">setAutoConfig</a></span>(boolean&nbsp;autoConfig)</code>
+<div class="block">Sets auto configuration for this service.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setAutoConfig-java.lang.String-">setAutoConfig</a></span>(java.lang.String&nbsp;instanceName)</code>
+<div class="block">Sets auto configuration for this service.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.Object&nbsp;instance,
+            java.lang.String&nbsp;add,
+            java.lang.String&nbsp;remove)</code>
+<div class="block">Sets the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.Object&nbsp;instance,
+            java.lang.String&nbsp;add,
+            java.lang.String&nbsp;change,
+            java.lang.String&nbsp;remove)</code>
+<div class="block">Sets the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.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;added,
+            java.lang.String&nbsp;changed,
+            java.lang.String&nbsp;removed,
+            java.lang.String&nbsp;swapped)</code>
+<div class="block">Sets the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setCallbacks-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.String&nbsp;add,
+            java.lang.String&nbsp;remove)</code>
+<div class="block">Sets the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.String&nbsp;add,
+            java.lang.String&nbsp;change,
+            java.lang.String&nbsp;remove)</code>
+<div class="block">Sets the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</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 the callbacks for this service.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setDebug-java.lang.String-">setDebug</a></span>(java.lang.String&nbsp;debugKey)</code>
+<div class="block">Enabled debug logging for this dependency instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setDefaultImplementation-java.lang.Object-">setDefaultImplementation</a></span>(java.lang.Object&nbsp;implementation)</code>
+<div class="block">Sets the default implementation for an 
<code>optional</code> service dependency.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setDereference-boolean-">setDereference</a></span>(boolean&nbsp;dereferenceServiceInternally)</code>
+<div class="block">Configures whether or not this dependency should internally 
obtain the service object for all tracked service references.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setPropagate-boolean-">setPropagate</a></span>(boolean&nbsp;propagate)</code>
+<div class="block">Sets propagation of the service dependency properties to 
the provided service properties.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setPropagate-java.lang.Object-java.lang.String-">setPropagate</a></span>(java.lang.Object&nbsp;instance,
+            java.lang.String&nbsp;method)</code>
+<div class="block">Sets an Object instance and a callback method used to 
propagate some properties to the provided service properties.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setRequired-boolean-">setRequired</a></span>(boolean&nbsp;required)</code>
+<div class="block">Sets the required flag which determines if this service is 
required or not.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setService-java.lang.Class-">setService</a></span>(java.lang.Class&lt;?&gt;&nbsp;serviceName)</code>
+<div class="block">Sets the name of the service that should be tracked.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setService-java.lang.Class-ServiceReference-">setService</a></span>(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+          ServiceReference&nbsp;serviceReference)</code>
+<div class="block">Sets the name of the service that should be tracked.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setService-java.lang.Class-java.lang.String-">setService</a></span>(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+          java.lang.String&nbsp;serviceFilter)</code>
+<div class="block">Sets the name of the service that should be tracked.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html" title="interface 
in org.apache.felix.dm">ServiceDependency</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setService-java.lang.String-">setService</a></span>(java.lang.String&nbsp;serviceFilter)</code>
+<div class="block">Sets the filter for the services that should be 
tracked.</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&nbsp;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>,
 <a 
href="../../../../org/apache/felix/dm/Dependency.html#overrideServiceProperties--">overrideServiceProperties</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&nbsp;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="setCallbacks-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCallbacks</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(java.lang.String&nbsp;add,
+                               java.lang.String&nbsp;remove)</pre>
+<div class="block">Sets the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added or removed. When you specify callbacks, the auto 
configuration 
+ feature is automatically turned off, because we're assuming you don't need it 
in this 
+ case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>add</code> - the method to call when a service was added</dd>
+<dd><code>remove</code> - the method to call when a service was removed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setCallbacks-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/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(java.lang.String&nbsp;add,
+                               java.lang.String&nbsp;change,
+                               java.lang.String&nbsp;remove)</pre>
+<div class="block">Sets the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added, changed or removed. When you specify callbacks, the auto 
+ configuration feature is automatically turned off, because we're assuming you 
don't 
+ need it in this case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>add</code> - the method to call when a service was added</dd>
+<dd><code>change</code> - the method to call when a service was changed</dd>
+<dd><code>remove</code> - the method to call when a service was removed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</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/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(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 the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added, changed or removed. When you specify callbacks, the auto 
+ configuration feature is automatically turned off, because we're assuming you 
don't 
+ need it in this case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>add</code> - the method to call when a service was added</dd>
+<dd><code>change</code> - the method to call when a service was changed</dd>
+<dd><code>remove</code> - the method to call when a service was removed</dd>
+<dd><code>swap</code> - the method to call when the service was swapped due to 
addition or 
+ removal of an aspect</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setCallbacks-java.lang.Object-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCallbacks</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
+                               java.lang.String&nbsp;add,
+                               java.lang.String&nbsp;remove)</pre>
+<div class="block">Sets the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added or removed. They are called on the instance you provide. 
When you
+ specify callbacks, the auto configuration feature is automatically turned 
off, because
+ we're assuming you don't need it in this case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - the instance to call the callbacks on</dd>
+<dd><code>add</code> - the method to call when a service was added</dd>
+<dd><code>remove</code> - the method to call when a service was removed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a 
name="setCallbacks-java.lang.Object-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/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
+                               java.lang.String&nbsp;add,
+                               java.lang.String&nbsp;change,
+                               java.lang.String&nbsp;remove)</pre>
+<div class="block">Sets the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added, changed or removed. They are called on the instance you 
provide. When you
+ specify callbacks, the auto configuration feature is automatically turned 
off, because
+ we're assuming you don't need it in this case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - the instance to call the callbacks on</dd>
+<dd><code>add</code> - the method to call when a service was added</dd>
+<dd><code>change</code> - the method to call when a service was changed</dd>
+<dd><code>remove</code> - the method to call when a service was removed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</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/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
+                               java.lang.String&nbsp;added,
+                               java.lang.String&nbsp;changed,
+                               java.lang.String&nbsp;removed,
+                               java.lang.String&nbsp;swapped)</pre>
+<div class="block">Sets the callbacks for this service. These callbacks can be 
used as hooks whenever a
+ dependency is added, changed or removed. When you specify callbacks, the auto 
+ configuration feature is automatically turned off, because we're assuming you 
don't 
+ need it in this case.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - the instance to call the callbacks on</dd>
+<dd><code>added</code> - the method to call when a service was added</dd>
+<dd><code>changed</code> - the method to call when a service was changed</dd>
+<dd><code>removed</code> - the method to call when a service was removed</dd>
+<dd><code>swapped</code> - the method to call when the service was swapped due 
to addition or 
+ removal of an aspect</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setRequired-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequired</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setRequired(boolean&nbsp;required)</pre>
+<div class="block">Sets the required flag which determines if this service is 
required or not.
+ A ServiceDependency is false by default.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>required</code> - the required flag</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setAutoConfig-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoConfig</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setAutoConfig(boolean&nbsp;autoConfig)</pre>
+<div class="block">Sets auto configuration for this service. Auto 
configuration allows the
+ dependency to fill in the attribute in the service implementation that
+ has the same type and instance name. Dependency services will be injected
+ in the following kind of fields:<p>
+ <ul>
+ <li> a field having the same type as the dependency. If the field may be 
accessed by anythread, then
+ the field should be declared volatile, in order to ensure visibility when the 
field is auto injected concurrently.
+ 
+ <li> a field which is assignable to an <code>Iterable&#60;T&#62;</code> where 
T must match the dependency type. 
+ In this case, an Iterable will be injected by DependencyManager before the 
start callback is called.
+ The Iterable field may then be traversed to inspect the currently available 
dependency services. The Iterable 
+ can possibly be set to a final value so you can choose the Iterable 
implementation of your choice
+ (for example, a CopyOnWrite ArrayList, or a ConcurrentLinkedQueue).
+ 
+ <li> a <code>Map&#60;K,V&#62;</code> where K must match the dependency type 
and V must exactly be equal to <code>Dictionary</code>. 
+ In this case, a ConcurrentHashMap will be injected by DependencyManager 
before the start callback is called.
+ The Map may then be consulted to lookup current available dependency 
services, including the dependency service
+ properties (the map key holds the dependency service, and the map value holds 
the dependency service properties).
+ 
+ The Map field may be set to a final value so you can choose a Map of your 
choice (Typically a ConcurrentHashMap).
+ 
+ A ConcurrentHashMap is "weakly consistent", meaning that when traversing 
+ the elements, you may or may not see any concurrent updates made on the map. 
So, take care to traverse 
+ the map using an iterator on the map entry set, which allows to atomically 
lookup pairs of Dependency service/Service properties.
+ </ul> 
+ 
+ <p> Here are some example using an Iterable:
+ <blockquote>
+ 
+ <pre>
+ 
+ public class SpellChecker {
+    // can be traversed to inspect currently available dependencies
+    final Iterable&#60;DictionaryService&#62; dictionaries = new 
ConcurrentLinkedQueue<>();
+    
+    Or
+    
+    // will be injected by DM automatically and can be traversed any time to 
inspect all currently available dependencies.
+    volatile Iterable&#60;DictionaryService&#62; dictionaries = null;
+ }
+ 
+ </pre>
+ </blockquote>
+ 
+ Here are some example using a Map:
+ <blockquote>
+ 
+ <pre>
+ 
+ public class SpellChecker {
+    // can be traversed to inspect currently available dependencies
+    final Map&#60;DictionaryService, Dictionary&#62; dictionaries = new 
ConcurrentLinkedQueue<>();
+    
+    or
+    
+    // will be injected by DM automatically and can be traversed to inspect 
currently available dependencies
+    volatile Map&#60;DictionaryService, Dictionary&#62; dictionaries = null;
+
+    void iterateOnAvailableServices() {                 
+       for (Map.Entry<MyService, Dictionary> entry : this.services.entrySet()) 
{
+           MyService currentService = entry.getKey();
+           Dictionary currentServiceProperties = entry.getValue();
+           // ...
+       }
+    }
+ }
+ 
+ </pre>
+ </blockquote></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>autoConfig</code> - the name of attribute to auto configure</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setAutoConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoConfig</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setAutoConfig(java.lang.String&nbsp;instanceName)</pre>
+<div class="block">Sets auto configuration for this service. Auto 
configuration allows the
+ dependency to fill in the attribute in the service implementation that
+ has the same type and instance name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instanceName</code> - the name of attribute to auto config</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a 
href="../../../../org/apache/felix/dm/ServiceDependency.html#setAutoConfig-boolean-"><code>setAutoConfig(boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="setService-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setService</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setService(java.lang.Class&lt;?&gt;&nbsp;serviceName)</pre>
+<div class="block">Sets the name of the service that should be tracked.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the name of the service</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setService-java.lang.Class-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setService</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setService(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+                             java.lang.String&nbsp;serviceFilter)</pre>
+<div class="block">Sets the name of the service that should be tracked. You 
can either specify
+ only the name, or the name and a filter. In the latter case, the filter is 
used
+ to track the service and should only return services of the type that was 
specified
+ in the name. To make sure of this, the filter is actually extended internally 
to
+ filter on the correct name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the name of the service</dd>
+<dd><code>serviceFilter</code> - the filter condition</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setService-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setService</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setService(java.lang.String&nbsp;serviceFilter)</pre>
+<div class="block">Sets the filter for the services that should be tracked. 
Any service object
+ matching the filter will be returned, without any additional filter on the
+ class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceFilter</code> - the filter condition</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setService-java.lang.Class-ServiceReference-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setService</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setService(java.lang.Class&lt;?&gt;&nbsp;serviceName,
+                             ServiceReference&nbsp;serviceReference)</pre>
+<div class="block">Sets the name of the service that should be tracked. You 
can either specify
+ only the name, or the name and a reference. In the latter case, the service 
reference
+ is used to track the service and should only return services of the type that 
was 
+ specified in the name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the name of the service</dd>
+<dd><code>serviceReference</code> - the service reference to track</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setDefaultImplementation-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultImplementation</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setDefaultImplementation(java.lang.Object&nbsp;implementation)</pre>
+<div class="block">Sets the default implementation for an 
<code>optional</code> service dependency. You can use this to supply
+ your own implementation that will be used instead of a Null Object when the 
dependency is
+ not available. This is also convenient if the service dependency is not an 
interface
+ (which would cause the Null Object creation to fail) but a class.
+ Only use this attribute on an optional service dependency injected on a class 
field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>implementation</code> - the instance to use or the class to 
instantiate if you want to lazily
+     instantiate this implementation</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency</dd>
+</dl>
+</li>
+</ul>
+<a name="setPropagate-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPropagate</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setPropagate(boolean&nbsp;propagate)</pre>
+<div class="block">Sets propagation of the service dependency properties to 
the provided service properties. Any additional
+ service properties specified directly are merged with these. The provided 
service properties take precedence over the 
+ propagated service dependency properties. It means a service dependency 
property won't override a component service 
+ property having the same name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propagate</code> - true if the dependency service properties should 
be propagated to the component service properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPropagate-java.lang.Object-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPropagate</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setPropagate(java.lang.Object&nbsp;instance,
+                               java.lang.String&nbsp;method)</pre>
+<div class="block">Sets an Object instance and a callback method used to 
propagate some properties to the provided service properties.
+ The method will be invoked on the specified object instance and must have one 
of the following signatures:<p>
+ <ul><li>Dictionary callback(ServiceReference, Object service) 
+ <li>Dictionary callback(ServiceReference)
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - the Object instance which is used to retrieve 
propagated service properties</dd>
+<dd><code>method</code> - the method to invoke for retrieving the properties 
to be propagated to the service properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency.</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/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setDebug(java.lang.String&nbsp;debugKey)</pre>
+<div class="block">Enabled debug logging for this dependency instance. The 
logging is prefixed with the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>debugKey</code> - a prefix log identifier</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this service dependency.</dd>
+</dl>
+</li>
+</ul>
+<a name="setDereference-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setDereference</h4>
+<pre><a href="../../../../org/apache/felix/dm/ServiceDependency.html" 
title="interface in 
org.apache.felix.dm">ServiceDependency</a>&nbsp;setDereference(boolean&nbsp;dereferenceServiceInternally)</pre>
+<div class="block">Configures whether or not this dependency should internally 
obtain the service object for all tracked service references.
+ 
+ By default, DM internally dereferences all discovered service references 
(using 
+ <code>BundleContext.getService(ServiceReference ref)</code> methods. 
+ However, sometimes, your callback only needs the ServiceReference, and 
sometimes you don't want to dereference the service.
+ So, in this case you can use the <code>setDereference(false)</code> method in 
order to tell to DM 
+ that it should never internally dereference the service dependency 
internally.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>false if the service must never be dereferenced by dependency manager 
(internally).</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/ResourceUtil.html" title="class 
in org.apache.felix.dm"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../index.html?org/apache/felix/dm/ServiceDependency.html" 
target="_top">Frames</a></li>
+<li><a href="ServiceDependency.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>


Reply via email to