| <!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 Class</span></a></li> |
| <li>Next 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 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 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 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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </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 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 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 instance, |
| java.lang.String add, |
| java.lang.String 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 instance, |
| java.lang.String add, |
| java.lang.String change, |
| java.lang.String 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 instance, |
| java.lang.String added, |
| java.lang.String changed, |
| java.lang.String removed, |
| java.lang.String 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 add, |
| java.lang.String 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 add, |
| java.lang.String change, |
| java.lang.String 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 add, |
| java.lang.String change, |
| java.lang.String remove, |
| java.lang.String 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 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 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 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 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 instance, |
| java.lang.String 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 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<?> 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<?> serviceName, |
| ServiceReference 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<?> serviceName, |
| java.lang.String 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 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 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 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> setCallbacks(java.lang.String add, |
| java.lang.String 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> setCallbacks(java.lang.String add, |
| java.lang.String change, |
| java.lang.String 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> setCallbacks(java.lang.String add, |
| java.lang.String change, |
| java.lang.String remove, |
| java.lang.String 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> setCallbacks(java.lang.Object instance, |
| java.lang.String add, |
| java.lang.String 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> setCallbacks(java.lang.Object instance, |
| java.lang.String add, |
| java.lang.String change, |
| java.lang.String 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> setCallbacks(java.lang.Object instance, |
| java.lang.String added, |
| java.lang.String changed, |
| java.lang.String removed, |
| java.lang.String 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> setRequired(boolean 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> setAutoConfig(boolean 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<T></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<K,V></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<DictionaryService> dictionaries = new ConcurrentLinkedQueue<>(); |
| |
| Or |
| |
| // will be injected by DM automatically and can be traversed any time to inspect all currently available dependencies. |
| volatile Iterable<DictionaryService> 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<DictionaryService, Dictionary> dictionaries = new ConcurrentLinkedQueue<>(); |
| |
| or |
| |
| // will be injected by DM automatically and can be traversed to inspect currently available dependencies |
| volatile Map<DictionaryService, Dictionary> 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> setAutoConfig(java.lang.String 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> setService(java.lang.Class<?> 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> setService(java.lang.Class<?> serviceName, |
| java.lang.String 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> setService(java.lang.String 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> setService(java.lang.Class<?> serviceName, |
| ServiceReference 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> setDefaultImplementation(java.lang.Object 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> setPropagate(boolean 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> setPropagate(java.lang.Object instance, |
| java.lang.String 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> setDebug(java.lang.String 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> setDereference(boolean 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 Class</span></a></li> |
| <li>Next 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 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> |