blob: fc608ac7eabcb457dfeaa6e60e30a1113e74cc1b [file] [log] [blame]
<!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_261) on Mon Dec 20 14:15:53 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TcpDiscoveryZookeeperIpFinder (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TcpDiscoveryZookeeperIpFinder (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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="class-use/TcpDiscoveryZookeeperIpFinder.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-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" target="_top">Frames</a></li>
<li><a href="TcpDiscoveryZookeeperIpFinder.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.ignite.spi.discovery.tcp.ipfinder.zk</div>
<h2 title="Class TcpDiscoveryZookeeperIpFinder" class="title">Class TcpDiscoveryZookeeperIpFinder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter</a></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.html" title="interface in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinder</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">TcpDiscoveryZookeeperIpFinder</span>
extends <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinderAdapter</a></pre>
<div class="block">This TCP Discovery IP Finder uses Apache ZooKeeper (ZK) to locate peer nodes when bootstrapping in order to join
the cluster. It uses the Apache Curator library to interact with ZooKeeper in a simple manner. Specifically,
it uses the <code>ServiceDiscovery</code> recipe, which makes use of ephemeral nodes in ZK to register services.
<p>
There are several ways to instantiate the TcpDiscoveryZookeeperIpFinder:
<li>
<ul>By providing an instance of <code>CuratorFramework</code> directly, in which case no ZK Connection String
is required.</ul>
<ul>By providing a ZK Connection String through <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setZkConnectionString-java.lang.String-"><code>setZkConnectionString(String)</code></a>, and optionally
a <code>RetryPolicy</code> through the setter. If the latter is not provided, a default
<code>ExponentialBackoffRetry</code> policy is used, with a base sleep time of 1000ms and 10 retries.</ul>
<ul>By providing a ZK Connection String through system property <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#PROP_ZK_CONNECTION_STRING"><code>PROP_ZK_CONNECTION_STRING</code></a>. If this
property is set, it overrides the ZK Connection String passed in as a property, but it does not override
the <code>CuratorFramework</code> if provided.</ul>
</li>
You may customise the base path for services, as well as the service name. By default <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#BASE_PATH"><code>BASE_PATH</code></a> and
<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#SERVICE_NAME"><code>SERVICE_NAME</code></a> are use respectively. You can also choose to enable or disable duplicate registrations. See
<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setAllowDuplicateRegistrations-boolean-"><code>setAllowDuplicateRegistrations(boolean)</code></a> for more details.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://zookeeper.apache.org">Apache ZooKeeper</a>,
<a href="http://curator.apache.org">Apache Curator</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#PROP_ZK_CONNECTION_STRING">PROP_ZK_CONNECTION_STRING</a></span></code>
<div class="block">System property name to provide the ZK Connection String.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.spi.discovery.tcp.ipfinder.<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinderAdapter</a></h3>
<code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#ignite">ignite</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#TcpDiscoveryZookeeperIpFinder--">TcpDiscoveryZookeeperIpFinder</a></span>()</code>
<div class="block">Constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#getBasePath--">getBasePath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#getRegisteredAddresses--">getRegisteredAddresses</a></span>()</code>
<div class="block">Gets all addresses registered in this finder.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.curator.RetryPolicy</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#getRetryPolicy--">getRetryPolicy</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#getServiceName--">getServiceName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#getZkConnectionString--">getZkConnectionString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#isAllowDuplicateRegistrations--">isAllowDuplicateRegistrations</a></span>()</code>
<div class="block">* @return The value of this flag.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#onSpiContextDestroyed--">onSpiContextDestroyed</a></span>()</code>
<div class="block">Callback invoked prior to stopping grid before SPI context is destroyed.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#registerAddresses-java.util.Collection-">registerAddresses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs)</code>
<div class="block">Registers new addresses.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setAllowDuplicateRegistrations-boolean-">setAllowDuplicateRegistrations</a></span>(boolean&nbsp;allowDuplicateRegistrations)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setBasePath-java.lang.String-">setBasePath</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;basePath)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setCurator-org.apache.curator.framework.CuratorFramework-">setCurator</a></span>(org.apache.curator.framework.CuratorFramework&nbsp;curator)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setRetryPolicy-org.apache.curator.RetryPolicy-">setRetryPolicy</a></span>(org.apache.curator.RetryPolicy&nbsp;retryPolicy)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setServiceName-java.lang.String-">setServiceName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setShared-boolean-">setShared</a></span>(boolean&nbsp;shared)</code>
<div class="block">Sets shared flag.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setZkConnectionString-java.lang.String-">setZkConnectionString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;zkConnectionString)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#unregisterAddresses-java.util.Collection-">unregisterAddresses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs)</code>
<div class="block">Unregisters provided addresses.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.spi.discovery.tcp.ipfinder.<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinderAdapter</a></h3>
<code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#close--">close</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#discoveryClientMode--">discoveryClientMode</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#initializeLocalAddresses-java.util.Collection-">initializeLocalAddresses</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#isShared--">isShared</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#onSpiContextInitialized-org.apache.ignite.spi.IgniteSpiContext-">onSpiContextInitialized</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#spiContext--">spiContext</a>, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#toString--">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="PROP_ZK_CONNECTION_STRING">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PROP_ZK_CONNECTION_STRING</h4>
<pre><a href="../../../../../../../../org/apache/ignite/SystemProperty.html" title="annotation in org.apache.ignite">@SystemProperty</a>(<a href="../../../../../../../../org/apache/ignite/SystemProperty.html#value--">value</a>="Zookeeper connection string",
<a href="../../../../../../../../org/apache/ignite/SystemProperty.html#type--">type</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">java.lang.String.class</a>)
public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PROP_ZK_CONNECTION_STRING</pre>
<div class="block">System property name to provide the ZK Connection String.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../constant-values.html#org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder.PROP_ZK_CONNECTION_STRING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TcpDiscoveryZookeeperIpFinder--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TcpDiscoveryZookeeperIpFinder</h4>
<pre>public&nbsp;TcpDiscoveryZookeeperIpFinder()</pre>
<div class="block">Constructor.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="onSpiContextDestroyed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onSpiContextDestroyed</h4>
<pre>public&nbsp;void&nbsp;onSpiContextDestroyed()</pre>
<div class="block">Callback invoked prior to stopping grid before SPI context is destroyed.
Note that invoking SPI context after this callback is complete is considered
illegal and may produce unknown results.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.html#onSpiContextDestroyed--">onSpiContextDestroyed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.html" title="interface in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinder</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#onSpiContextDestroyed--">onSpiContextDestroyed</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinderAdapter</a></code></dd>
</dl>
</li>
</ul>
<a name="getRegisteredAddresses--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegisteredAddresses</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;getRegisteredAddresses()
throws <a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Gets all addresses registered in this finder.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>All known addresses, potentially empty, but never <code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - In case of error.</dd>
</dl>
</li>
</ul>
<a name="registerAddresses-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerAddresses</h4>
<pre>public&nbsp;void&nbsp;registerAddresses(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs)
throws <a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Registers new addresses.
<p>
Implementation should accept duplicates quietly, but should not register address if it
is already registered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>addrs</code> - Addresses to register. Not <code>null</code> and not empty.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - In case of error.</dd>
</dl>
</li>
</ul>
<a name="unregisterAddresses-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterAddresses</h4>
<pre>public&nbsp;void&nbsp;unregisterAddresses(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs)
throws <a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Unregisters provided addresses.
<p>
Implementation should accept addresses that are currently not
registered quietly (just no-op).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>addrs</code> - Addresses to unregister. Not <code>null</code> and not empty.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - In case of error.</dd>
</dl>
</li>
</ul>
<a name="setCurator-org.apache.curator.framework.CuratorFramework-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurator</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setCurator(org.apache.curator.framework.CuratorFramework&nbsp;curator)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>curator</code> - A <code>CuratorFramework</code> instance to use. It can already be in <tt>STARTED</tt> state.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getZkConnectionString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getZkConnectionString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getZkConnectionString()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The ZooKeeper connection string, only if set explicitly. Else, it returns null.</dd>
</dl>
</li>
</ul>
<a name="setZkConnectionString-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setZkConnectionString</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setZkConnectionString(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;zkConnectionString)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>zkConnectionString</code> - ZooKeeper connection string in case a <code>CuratorFramework</code> is not being set
explicitly.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getRetryPolicy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRetryPolicy</h4>
<pre>public&nbsp;org.apache.curator.RetryPolicy&nbsp;getRetryPolicy()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Retry policy in use if, and only if, it was set explicitly. Else, it returns null.</dd>
</dl>
</li>
</ul>
<a name="setRetryPolicy-org.apache.curator.RetryPolicy-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRetryPolicy</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setRetryPolicy(org.apache.curator.RetryPolicy&nbsp;retryPolicy)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>retryPolicy</code> - <code>RetryPolicy</code> to use in case a ZK Connection String is being injected, or if using a
system property.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getBasePath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBasePath</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getBasePath()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Base path for service registration in ZK. Default value: <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#BASE_PATH"><code>BASE_PATH</code></a>.</dd>
</dl>
</li>
</ul>
<a name="setBasePath-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBasePath</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setBasePath(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;basePath)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>basePath</code> - Base path for service registration in ZK. If not passed, <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#BASE_PATH"><code>BASE_PATH</code></a> will be used.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getServiceName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceName</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getServiceName()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service name being used, in Curator terms. See <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setServiceName-java.lang.String-"><code>setServiceName(String)</code></a> for more information.</dd>
</dl>
</li>
</ul>
<a name="setServiceName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setServiceName</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setServiceName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceName</code> - Service name to use, as defined by Curator's {#link ServiceDiscovery} recipe. In physical ZK
terms, it represents the node under <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#basePath"><code>basePath</code></a>, under which services will be registered.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="isAllowDuplicateRegistrations--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllowDuplicateRegistrations</h4>
<pre>public&nbsp;boolean&nbsp;isAllowDuplicateRegistrations()</pre>
<div class="block">* @return The value of this flag. See <a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html#setAllowDuplicateRegistrations-boolean-"><code>setAllowDuplicateRegistrations(boolean)</code></a> for more details.</div>
</li>
</ul>
<a name="setAllowDuplicateRegistrations-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllowDuplicateRegistrations</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setAllowDuplicateRegistrations(boolean&nbsp;allowDuplicateRegistrations)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>allowDuplicateRegistrations</code> - Whether to register each node only once, or if duplicate registrations are
allowed. Nodes will attempt to register themselves, plus those they know about. By default, duplicate
registrations are not allowed, but you might want to set this property to <tt>true</tt> if you have multiple
network interfaces or if you are facing troubles.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="setShared-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setShared</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder.zk">TcpDiscoveryZookeeperIpFinder</a>&nbsp;setShared(boolean&nbsp;shared)</pre>
<div class="block">Sets shared flag. If <code>true</code> then it is expected that IP addresses registered
with IP finder will be seen by IP finders on all other nodes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html#setShared-boolean-">setShared</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.html" title="class in org.apache.ignite.spi.discovery.tcp.ipfinder">TcpDiscoveryIpFinderAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shared</code> - <code>true</code> if this IP finder is shared.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</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="class-use/TcpDiscoveryZookeeperIpFinder.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-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.html" target="_top">Frames</a></li>
<li><a href="TcpDiscoveryZookeeperIpFinder.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>