blob: 881787fe2f434f9da4eaaa47e81f3a05f3b33c0e [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 20:48:08 PDT 2021 -->
<title>IRemoteServiceDistributionProvider (Eclipse Communication Framework (ECF) 3.14.22 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="dc.created" content="2021-06-15">
<meta name="description" content="declaration: package: org.eclipse.ecf.remoteservice.provider, interface: IRemoteServiceDistributionProvider">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":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";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IRemoteServiceDistributionProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.ecf.remoteservice.provider</a></div>
<h1 title="Interface IRemoteServiceDistributionProvider" class="title">Interface IRemoteServiceDistributionProvider</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="RemoteServiceDistributionProvider.html" title="class in org.eclipse.ecf.remoteservice.provider">RemoteServiceDistributionProvider</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">IRemoteServiceDistributionProvider</span></pre>
<div class="block">Service interface for registering distribution providers. When IRemoteServiceDistributionProvider implementations
are registered, they result in the two methods below being called by the org.eclipse.ecf.remoteservice bundle,
with the BundleContext from the org.eclipse.ecf.remoteservice bundle. Intended to be implemented by remote
service distribution provider implementations. When instance of this service interface is registered, the
methods below will be called in order to register the ContainerTypeDescription, Namespace, and AdapterConfig
for this distribution provider.
<p>
<b>Please NOTE</b>: IRemoteServiceDistributionProviders should be registered (and therefore the bundles containing implementations started) <b>before</b>
any remote services using these distribution providers are exported. In other words, if you create and register
a IRemoteServiceDistributionProvider with name 'com.myproject.myprovider' the provider implementation bundle should
be started and the IRemoteServiceDistributionProvider service must be registered prior to registering the service
that is to be exported using that provider. For example
<p>
<pre>
#Must first register the com.myproject.myprovider distribution provider, so it's available
providerBuilder.setName('com.myproject.myprovider')...
bundleContext.registerService(IRemoteServiceDistributionProvider.class,providerBuilder.build(),null);
...
#Then may register a remote service that uses com.myproject.myprovider distribution provider
props.put("service.exported.interfaces","*");
#This specifies that com.myproject.myprovider is to be used to export the service, but the above registration
#must take place before MyService registration so it can be active for exporting this service
props.put("service.exported.configs","com.myproject.myprovider");
#With usual topology manager the following will export MyService using com.myproject.myprovider
#distribution provider
bundleContext.registerService(MyService.class,new MyServiceImpl(),props);
</pre></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>8.7</dd>
</dl>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="AdapterConfig.html" title="class in org.eclipse.ecf.remoteservice.provider">AdapterConfig</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAdapterConfigs()">getAdapterConfigs</a></span>()</code></th>
<td class="colLast">
<div class="block">Return any AdapterConfigs to register with the IAdapterManager</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../core/ContainerTypeDescription.html" title="class in org.eclipse.ecf.core">ContainerTypeDescription</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainerTypeDescription()">getContainerTypeDescription</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the ContainerTypeDescription to register for this distribution provider.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainerTypeDescriptionProperties()">getContainerTypeDescriptionProperties</a></span>()</code></th>
<td class="colLast">
<div class="block">Return any properties that are to be used when registering the ContainerTypeDescription
returned by above method.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../core/identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespace()">getNamespace</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the Namespace (or subclass) to register for this distribution provider.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespaceProperties()">getNamespaceProperties</a></span>()</code></th>
<td class="colLast">
<div class="block">Return any properties that are to be used when registering the Namespace
returned by above method.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="getContainerTypeDescription()">getContainerTypeDescription</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../core/ContainerTypeDescription.html" title="class in org.eclipse.ecf.core">ContainerTypeDescription</a></span>&nbsp;<span class="memberName">getContainerTypeDescription</span>()</div>
<div class="block">Return the ContainerTypeDescription to register for this distribution provider.
The returned ContainerTypeDescription must not be <code>null</code> and
should be unique identified via it's name (obtained via <a href="../../core/ContainerTypeDescription.html#getName()"><code>ContainerTypeDescription.getName()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ContainerTypeDescription. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getContainerTypeDescriptionProperties()">getContainerTypeDescriptionProperties</a></h3>
<div class="memberSignature"><span class="returnType"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</span>&nbsp;<span class="memberName">getContainerTypeDescriptionProperties</span>()</div>
<div class="block">Return any properties that are to be used when registering the ContainerTypeDescription
returned by above method. <code>Null</code> may be returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dictionary to use when registering the ContainerTypeDescription
May be <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getNamespace()">getNamespace</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../core/identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></span>&nbsp;<span class="memberName">getNamespace</span>()</div>
<div class="block">Return the Namespace (or subclass) to register for this distribution provider.
The returned Namespace may be <code>null</code>. In that case, no
new Namespace will be registered. If the returned Namespace is non-null,
It should be uniquely identified via it's name (obtained via <a href="../../core/identity/Namespace.html#getName()"><code>Namespace.getName()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ContainerTypeDescription. May be <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getNamespaceProperties()">getNamespaceProperties</a></h3>
<div class="memberSignature"><span class="returnType"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</span>&nbsp;<span class="memberName">getNamespaceProperties</span>()</div>
<div class="block">Return any properties that are to be used when registering the Namespace
returned by above method. <code>Null</code> may be returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dictionary to use when registering this provider's Namespace.
May be <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getAdapterConfigs()">getAdapterConfigs</a></h3>
<div class="memberSignature"><span class="returnType"><a href="AdapterConfig.html" title="class in org.eclipse.ecf.remoteservice.provider">AdapterConfig</a>[]</span>&nbsp;<span class="memberName">getAdapterConfigs</span>()</div>
<div class="block">Return any AdapterConfigs to register with the IAdapterManager</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AdapterConfig[] holding any AdapterConfigs to be registered
with the system-wide adaptermanager.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IRemoteServiceDistributionProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>