You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/05 15:07:30 UTC
[29/52] [abbrv] incubator-ignite git commit: # Renaming
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
deleted file mode 100644
index 68dd179..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Statistics for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public class TcpDiscoveryStatistics {
- /** Join started timestamp. */
- private long joinStartedTs;
-
- /** Join finished timestamp. */
- private long joinFinishedTs;
-
- /** Coordinator since timestamp. */
- private final AtomicLong crdSinceTs = new AtomicLong();
-
- /** Joined nodes count. */
- private int joinedNodesCnt;
-
- /** Failed nodes count. */
- private int failedNodesCnt;
-
- /** Left nodes count. */
- private int leftNodesCnt;
-
- /** Ack timeouts count. */
- private int ackTimeoutsCnt;
-
- /** Socket timeouts count. */
- private int sockTimeoutsCnt;
-
- /** Received messages. */
- @GridToStringInclude
- private final Map<String, Integer> rcvdMsgs = new HashMap<>();
-
- /** Processed messages. */
- @GridToStringInclude
- private final Map<String, Integer> procMsgs = new HashMap<>();
-
- /** Average time taken to serialize messages. */
- @GridToStringInclude
- private final Map<String, Long> avgMsgsSndTimes = new HashMap<>();
-
- /** Average time taken to serialize messages. */
- @GridToStringInclude
- private final Map<String, Long> maxMsgsSndTimes = new HashMap<>();
-
- /** Sent messages. */
- @GridToStringInclude
- private final Map<String, Integer> sentMsgs = new HashMap<>();
-
- /** Messages receive timestamps. */
- private final Map<IgniteUuid, Long> msgsRcvTs = new GridBoundedLinkedHashMap<>(1024);
-
- /** Messages processing start timestamps. */
- private final Map<IgniteUuid, Long> msgsProcStartTs = new GridBoundedLinkedHashMap<>(1024);
-
- /** Ring messages sent timestamps. */
- private final Map<IgniteUuid, Long> ringMsgsSndTs = new GridBoundedLinkedHashMap<>(1024);
-
- /** Average time messages is in queue. */
- private long avgMsgQueueTime;
-
- /** Max time messages is in queue. */
- private long maxMsgQueueTime;
-
- /** Total number of ring messages sent. */
- private int ringMsgsSent;
-
- /** Average time it takes for messages to pass the full ring. */
- private long avgRingMsgTime;
-
- /** Max time it takes for messages to pass the full ring. */
- private long maxRingMsgTime;
-
- /** Class name of ring message that required the biggest time for full ring traverse. */
- private String maxRingTimeMsgCls;
-
- /** Average message processing time. */
- private long avgMsgProcTime;
-
- /** Max message processing time. */
- private long maxMsgProcTime;
-
- /** Class name of the message that required the biggest time to process. */
- private String maxProcTimeMsgCls;
-
- /** Socket readers created count. */
- private int sockReadersCreated;
-
- /** Socket readers removed count. */
- private int sockReadersRmv;
-
- /** Average time it takes to initialize connection from another node. */
- private long avgSrvSockInitTime;
-
- /** Max time it takes to initialize connection from another node. */
- private long maxSrvSockInitTime;
-
- /** Number of outgoing connections established. */
- private int clientSockCreatedCnt;
-
- /** Average time it takes to connect to another node. */
- private long avgClientSockInitTime;
-
- /** Max time it takes to connect to another node. */
- private long maxClientSockInitTime;
-
- /** Pending messages registered count. */
- private int pendingMsgsRegistered;
-
- /** Pending messages discarded count. */
- private int pendingMsgsDiscarded;
-
- /**
- * Increments joined nodes count.
- */
- public synchronized void onNodeJoined() {
- joinedNodesCnt++;
- }
-
- /**
- * Increments left nodes count.
- */
- public synchronized void onNodeLeft() {
- leftNodesCnt++;
- }
-
- /**
- * Increments failed nodes count.
- */
- public synchronized void onNodeFailed() {
- failedNodesCnt++;
- }
-
- /**
- * Increments ack timeouts count.
- */
- public synchronized void onAckTimeout() {
- ackTimeoutsCnt++;
- }
-
- /**
- * Increments socket timeouts count.
- */
- public synchronized void onSocketTimeout() {
- sockTimeoutsCnt++;
- }
-
- /**
- * Initializes coordinator since date (if needed).
- */
- public void onBecomingCoordinator() {
- crdSinceTs.compareAndSet(0, U.currentTimeMillis());
- }
-
- /**
- * Initializes join started timestamp.
- */
- public synchronized void onJoinStarted() {
- joinStartedTs = U.currentTimeMillis();
- }
-
- /**
- * Initializes join finished timestamp.
- */
- public synchronized void onJoinFinished() {
- joinFinishedTs = U.currentTimeMillis();
- }
-
- /**
- * @return Join started timestamp.
- */
- public synchronized long joinStarted() {
- return joinStartedTs;
- }
-
- /**
- * @return Join finished timestamp.
- */
- public synchronized long joinFinished() {
- return joinFinishedTs;
- }
-
- /**
- * Collects necessary stats for message received by SPI.
- *
- * @param msg Received message.
- */
- public synchronized void onMessageReceived(TcpDiscoveryAbstractMessage msg) {
- assert msg != null;
-
- Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
- @Override public Integer call() {
- return 0;
- }
- });
-
- assert cnt != null;
-
- rcvdMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
- msgsRcvTs.put(msg.id(), U.currentTimeMillis());
- }
-
- /**
- * Collects necessary stats for message processed by SPI.
- *
- * @param msg Processed message.
- */
- public synchronized void onMessageProcessingStarted(TcpDiscoveryAbstractMessage msg) {
- assert msg != null;
-
- Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
- @Override public Integer call() {
- return 0;
- }
- });
-
- assert cnt != null;
-
- procMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
- Long rcvdTs = msgsRcvTs.remove(msg.id());
-
- if (rcvdTs != null) {
- long duration = U.currentTimeMillis() - rcvdTs;
-
- if (maxMsgQueueTime < duration)
- maxMsgQueueTime = duration;
-
- avgMsgQueueTime = (avgMsgQueueTime * (totalReceivedMessages() -1)) / totalProcessedMessages();
- }
-
- msgsProcStartTs.put(msg.id(), U.currentTimeMillis());
- }
-
- /**
- * Collects necessary stats for message processed by SPI.
- *
- * @param msg Processed message.
- */
- public synchronized void onMessageProcessingFinished(TcpDiscoveryAbstractMessage msg) {
- assert msg != null;
-
- Long startTs = msgsProcStartTs.get(msg.id());
-
- if (startTs != null) {
- long duration = U.currentTimeMillis() - startTs;
-
- avgMsgProcTime = (avgMsgProcTime * (totalProcessedMessages() - 1) + duration) / totalProcessedMessages();
-
- if (duration > maxMsgProcTime) {
- maxMsgProcTime = duration;
-
- maxProcTimeMsgCls = msg.getClass().getSimpleName();
- }
-
- msgsProcStartTs.remove(msg.id());
- }
- }
-
- /**
- * Called by coordinator when ring message is sent.
- *
- * @param msg Sent message.
- * @param time Time taken to serialize message.
- */
- public synchronized void onMessageSent(TcpDiscoveryAbstractMessage msg, long time) {
- assert msg != null;
- assert time >= 0;
-
- if (crdSinceTs.get() > 0 &&
- (msg instanceof TcpDiscoveryNodeAddedMessage) ||
- (msg instanceof TcpDiscoveryNodeLeftMessage) ||
- (msg instanceof TcpDiscoveryNodeFailedMessage)) {
- ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
-
- ringMsgsSent++;
- }
-
- Integer cnt = F.addIfAbsent(sentMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
- @Override public Integer call() {
- return 0;
- }
- });
-
- assert cnt != null;
-
- sentMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
- Long avgTime = F.addIfAbsent(avgMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
- @Override public Long call() {
- return 0L;
- }
- });
-
- assert avgTime != null;
-
- avgTime = (avgTime * (cnt - 1) + time) / cnt;
-
- avgMsgsSndTimes.put(msg.getClass().getSimpleName(), avgTime);
-
- Long maxTime = F.addIfAbsent(maxMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
- @Override public Long call() {
- return 0L;
- }
- });
-
- assert maxTime != null;
-
- if (time > maxTime)
- maxMsgsSndTimes.put(msg.getClass().getSimpleName(), time);
- }
-
- /**
- * Called by coordinator when ring message makes full pass.
- *
- * @param msg Message.
- */
- public synchronized void onRingMessageReceived(TcpDiscoveryAbstractMessage msg) {
- assert msg != null;
-
- Long sentTs = ringMsgsSndTs.get(msg.id());
-
- if (sentTs != null) {
- long duration = U.currentTimeMillis() - sentTs;
-
- if (maxRingMsgTime < duration) {
- maxRingMsgTime = duration;
-
- maxRingTimeMsgCls = msg.getClass().getSimpleName();
- }
-
- if (ringMsgsSent != 0)
- avgRingMsgTime = (avgRingMsgTime * (ringMsgsSent - 1) + duration) / ringMsgsSent;
- }
- }
-
- /**
- * Gets max time for ring message to make full pass.
- *
- * @return Max full pass time.
- */
- public synchronized long maxRingMessageTime() {
- return maxRingMsgTime;
- }
-
- /**
- * Gets class name of the message that took max time to make full pass.
- *
- * @return Message class name.
- */
- public synchronized String maxRingDurationMessageClass() {
- return maxRingTimeMsgCls;
- }
-
- /**
- * Gets class name of the message took max time to process.
- *
- * @return Message class name.
- */
- public synchronized String maxProcessingTimeMessageClass() {
- return maxProcTimeMsgCls;
- }
-
- /**
- * @param initTime Time socket was initialized in.
- */
- public synchronized void onServerSocketInitialized(long initTime) {
- assert initTime >= 0;
-
- if (maxSrvSockInitTime < initTime)
- maxSrvSockInitTime = initTime;
-
- avgSrvSockInitTime = (avgSrvSockInitTime * (sockReadersCreated - 1) + initTime) / sockReadersCreated;
- }
-
- /**
- * @param initTime Time socket was initialized in.
- */
- public synchronized void onClientSocketInitialized(long initTime) {
- assert initTime >= 0;
-
- clientSockCreatedCnt++;
-
- if (maxClientSockInitTime < initTime)
- maxClientSockInitTime = initTime;
-
- avgClientSockInitTime = (avgClientSockInitTime * (clientSockCreatedCnt - 1) + initTime) / clientSockCreatedCnt;
- }
-
- /**
- * Increments pending messages registered count.
- */
- public synchronized void onPendingMessageRegistered() {
- pendingMsgsRegistered++;
- }
-
- /**
- * Increments pending messages discarded count.
- */
- public synchronized void onPendingMessageDiscarded() {
- pendingMsgsDiscarded++;
- }
-
- /**
- * Increments socket readers created count.
- */
- public synchronized void onSocketReaderCreated() {
- sockReadersCreated++;
- }
-
- /**
- * Increments socket readers removed count.
- */
- public synchronized void onSocketReaderRemoved() {
- sockReadersRmv++;
- }
-
- /**
- * Gets processed messages counts (grouped by type).
- *
- * @return Map containing message types and respective counts.
- */
- public synchronized Map<String, Integer> processedMessages() {
- return new HashMap<>(procMsgs);
- }
-
- /**
- * Gets received messages counts (grouped by type).
- *
- * @return Map containing message types and respective counts.
- */
- public synchronized Map<String, Integer> receivedMessages() {
- return new HashMap<>(rcvdMsgs);
- }
-
- /**
- * Gets max messages send time (grouped by type).
- *
- * @return Map containing messages types and max send times.
- */
- public synchronized Map<String, Long> maxMessagesSendTimes() {
- return new HashMap<>(maxMsgsSndTimes);
- }
-
- /**
- * Gets average messages send time (grouped by type).
- *
- * @return Map containing messages types and average send times.
- */
- public synchronized Map<String, Long> avgMessagesSendTimes() {
- return new HashMap<>(avgMsgsSndTimes);
- }
-
- /**
- * Gets total received messages count.
- *
- * @return Total received messages count.
- */
- public synchronized int totalReceivedMessages() {
- return F.sumInt(receivedMessages().values());
- }
-
- /**
- * Gets total processed messages count.
- *
- * @return Total processed messages count.
- */
- public synchronized int totalProcessedMessages() {
- return F.sumInt(processedMessages().values());
- }
-
- /**
- * Gets max message processing time.
- *
- * @return Max message processing time.
- */
- public synchronized long maxMessageProcessingTime(){
- return maxMsgProcTime;
- }
-
- /**
- * Gets average message processing time.
- *
- * @return Average message processing time.
- */
- public synchronized long avgMessageProcessingTime() {
- return avgMsgProcTime;
- }
-
- /**
- * Gets pending messages registered count.
- *
- * @return Pending messages registered count.
- */
- public synchronized long pendingMessagesRegistered() {
- return pendingMsgsRegistered;
- }
-
- /**
- * Gets pending messages discarded count.
- *
- * @return Pending messages registered count.
- */
- public synchronized long pendingMessagesDiscarded() {
- return pendingMsgsDiscarded;
- }
-
- /**
- * Gets nodes joined count.
- *
- * @return Nodes joined count.
- */
- public synchronized int joinedNodesCount() {
- return joinedNodesCnt;
- }
-
- /**
- * Gets nodes left count.
- *
- * @return Nodes left count.
- */
- public synchronized int leftNodesCount() {
- return leftNodesCnt;
- }
-
- /**
- * Gets failed nodes count.
- *
- * @return Failed nodes count.
- */
- public synchronized int failedNodesCount() {
- return failedNodesCnt;
- }
-
- /**
- * @return Ack timeouts count.
- */
- public synchronized int ackTimeoutsCount() {
- return ackTimeoutsCnt;
- }
-
- /**
- * @return Socket timeouts count.
- */
- public synchronized int socketTimeoutsCount() {
- return sockTimeoutsCnt;
- }
-
- /**
- * Gets socket readers created count.
- *
- * @return Socket readers created count.
- */
- public synchronized int socketReadersCreated() {
- return sockReadersCreated;
- }
-
- /**
- * Gets socket readers removed count.
- *
- * @return Socket readers removed count.
- */
- public synchronized int socketReadersRemoved() {
- return sockReadersRmv;
- }
-
- /**
- * Gets time local node has been coordinator since.
- *
- * @return Coordinator since timestamp.
- */
- public long coordinatorSinceTimestamp() {
- return crdSinceTs.get();
- }
-
- /**
- * Clears statistics.
- */
- public synchronized void clear() {
- ackTimeoutsCnt = 0;
- avgClientSockInitTime = 0;
- avgMsgProcTime = 0;
- avgMsgQueueTime = 0;
- avgMsgsSndTimes.clear();
- avgRingMsgTime = 0;
- avgSrvSockInitTime = 0;
- clientSockCreatedCnt = 0;
- crdSinceTs.set(0);
- failedNodesCnt = 0;
- joinedNodesCnt = 0;
- joinFinishedTs = 0;
- joinStartedTs = 0;
- leftNodesCnt = 0;
- maxClientSockInitTime = 0;
- maxMsgProcTime = 0;
- maxMsgQueueTime = 0;
- maxMsgsSndTimes.clear();
- maxProcTimeMsgCls = null;
- maxRingMsgTime = 0;
- maxRingTimeMsgCls = null;
- maxSrvSockInitTime = 0;
- pendingMsgsDiscarded = 0;
- pendingMsgsRegistered = 0;
- procMsgs.clear();
- rcvdMsgs.clear();
- ringMsgsSent = 0;
- sentMsgs.clear();
- sockReadersCreated = 0;
- sockReadersRmv = 0;
- sockTimeoutsCnt = 0;
- }
-
- /** {@inheritDoc} */
- @Override public synchronized String toString() {
- return S.toString(TcpDiscoveryStatistics.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
deleted file mode 100644
index b44e05c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains internal implementation.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
deleted file mode 100644
index b5ff462..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public interface TcpDiscoveryIpFinder {
- /**
- * Callback invoked when SPI context is initialized after {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#spiStart(String)}
- * method is completed, SPI context can be stored for future access.
- *
- * @param spiCtx Spi context.
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
- */
- public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException;
-
- /**
- * 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.
- */
- public void onSpiContextDestroyed();
-
- /**
- * Initializes addresses discovery SPI binds to.
- *
- * @param addrs Addresses discovery SPI binds to.
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
- */
- public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
- /**
- * Gets all addresses registered in this finder.
- *
- * @return All known addresses, potentially empty, but never {@code null}.
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
- */
- public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException;
-
- /**
- * Checks whether IP finder is shared or not.
- * <p>
- * If it is shared then only coordinator can unregister addresses.
- * <p>
- * All nodes should register their address themselves, as early as possible on node start.
- *
- * @return {@code true} if IP finder is shared.
- */
- public boolean isShared();
-
- /**
- * Registers new addresses.
- * <p>
- * Implementation should accept duplicates quietly, but should not register address if it
- * is already registered.
- *
- * @param addrs Addresses to register. Not {@code null} and not empty.
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
- */
- public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
- /**
- * Unregisters provided addresses.
- * <p>
- * Implementation should accept addresses that are currently not
- * registered quietly (just no-op).
- *
- * @param addrs Addresses to unregister. Not {@code null} and not empty.
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
- */
- public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
- /**
- * Closes this IP finder and releases any system resources associated with it.
- */
- public void close();
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
deleted file mode 100644
index 27eb5ed..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface implementation adapter.
- */
-public abstract class TcpDiscoveryIpFinderAdapter implements TcpDiscoveryIpFinder {
- /** Shared flag. */
- private boolean shared;
-
- /** SPI context. */
- @GridToStringExclude
- private volatile IgniteSpiContext spiCtx;
-
- /** {@inheritDoc} */
- @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
- this.spiCtx = spiCtx;
- }
-
- /** {@inheritDoc} */
- @Override public void onSpiContextDestroyed() {
- spiCtx = null;
- }
-
- /** {@inheritDoc} */
- @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- registerAddresses(addrs);
- }
-
- /** {@inheritDoc} */
- @Override public boolean isShared() {
- return shared;
- }
-
- /**
- * Sets shared flag. If {@code true} then it is expected that IP addresses registered
- * with IP finder will be seen by IP finders on all other nodes.
- *
- * @param shared {@code true} if this IP finder is shared.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setShared(boolean shared) {
- this.shared = shared;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoveryIpFinderAdapter.class, this);
- }
-
- /** {@inheritDoc} */
- @Override public void close() {
- // No-op.
- }
-
- /**
- * @return SPI context.
- */
- protected IgniteSpiContext spiContext() {
- return spiCtx;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
deleted file mode 100644
index 4b5c00b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import javax.sql.*;
-import java.net.*;
-import java.sql.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static java.sql.Connection.*;
-
-/**
- * JDBC-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * <ul>
- * <li>Data source (see {@link #setDataSource(DataSource)}).</li>
- * </ul>
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- * <li>Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
- * was explicitly created by user (see {@link #setInitSchema(boolean)})</li>
- * </ul>
- * <p>
- * The database will contain 1 table which will hold IP addresses.
- */
-public class TcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
- /** Query to get addresses. */
- public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
-
- /** Query to register address. */
- public static final String REG_ADDR_QRY = "insert into tbl_addrs values (?, ?)";
-
- /** Query to unregister address. */
- public static final String UNREG_ADDR_QRY = "delete from tbl_addrs where hostname = ? and port = ?";
-
- /** Query to create addresses table. */
- public static final String CREATE_ADDRS_TABLE_QRY =
- "create table if not exists tbl_addrs (" +
- "hostname VARCHAR(1024), " +
- "port INT)";
-
- /** Query to check database validity. */
- public static final String CHK_QRY = "select count(*) from tbl_addrs";
-
- /** Grid logger. */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** Data source. */
- private DataSource dataSrc;
-
- /** Flag for schema initialization. */
- private boolean initSchema = true;
-
- /** Init guard. */
- @GridToStringExclude
- private final AtomicBoolean initGuard = new AtomicBoolean();
-
- /** Init latch. */
- @GridToStringExclude
- private final CountDownLatch initLatch = new CountDownLatch(1);
-
- /**
- * Constructor.
- */
- public TcpDiscoveryJdbcIpFinder() {
- setShared(true);
- }
-
- /** {@inheritDoc} */
- @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
- init();
-
- Connection conn = null;
-
- PreparedStatement stmt = null;
-
- ResultSet rs = null;
-
- try {
- conn = dataSrc.getConnection();
-
- conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
- stmt = conn.prepareStatement(GET_ADDRS_QRY);
-
- rs = stmt.executeQuery();
-
- Collection<InetSocketAddress> addrs = new LinkedList<>();
-
- while (rs.next())
- addrs.add(new InetSocketAddress(rs.getString(1), rs.getInt(2)));
-
- return addrs;
- }
- catch (SQLException e) {
- throw new IgniteSpiException("Failed to get registered addresses version.", e);
- }
- finally {
- U.closeQuiet(rs);
- U.closeQuiet(stmt);
- U.closeQuiet(conn);
- }
- }
-
- /** {@inheritDoc} */
- @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- assert !F.isEmpty(addrs);
-
- init();
-
- Connection conn = null;
-
- PreparedStatement stmtUnreg = null;
-
- PreparedStatement stmtReg = null;
-
- boolean committed = false;
-
- try {
- conn = dataSrc.getConnection();
-
- conn.setAutoCommit(false);
-
- conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
- stmtUnreg = conn.prepareStatement(UNREG_ADDR_QRY);
- stmtReg = conn.prepareStatement(REG_ADDR_QRY);
-
- for (InetSocketAddress addr : addrs) {
- stmtUnreg.setString(1, addr.getAddress().getHostAddress());
- stmtUnreg.setInt(2, addr.getPort());
-
- stmtUnreg.addBatch();
-
- stmtReg.setString(1, addr.getAddress().getHostAddress());
- stmtReg.setInt(2, addr.getPort());
-
- stmtReg.addBatch();
- }
-
- stmtUnreg.executeBatch();
- stmtUnreg.close();
-
- stmtReg.executeBatch();
- stmtReg.close();
-
- conn.commit();
-
- committed = true;
- }
- catch (SQLException e) {
- U.rollbackConnectionQuiet(conn);
-
- throw new IgniteSpiException("Failed to register addresses: " + addrs, e);
- }
- finally {
- if (!committed)
- U.rollbackConnectionQuiet(conn);
-
- U.closeQuiet(stmtUnreg);
- U.closeQuiet(stmtReg);
- U.closeQuiet(conn);
- }
- }
-
- /** {@inheritDoc} */
- @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- assert !F.isEmpty(addrs);
-
- init();
-
- Connection conn = null;
-
- PreparedStatement stmt = null;
-
- boolean committed = false;
-
- try {
- conn = dataSrc.getConnection();
-
- conn.setAutoCommit(false);
-
- conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
- stmt = conn.prepareStatement(UNREG_ADDR_QRY);
-
- for (InetSocketAddress addr : addrs) {
- stmt.setString(1, addr.getAddress().getHostAddress());
- stmt.setInt(2, addr.getPort());
-
- stmt.addBatch();
- }
-
- stmt.executeBatch();
- conn.commit();
-
- committed = true;
- }
- catch (SQLException e) {
- U.rollbackConnectionQuiet(conn);
-
- throw new IgniteSpiException("Failed to unregister addresses: " + addrs, e);
- }
- finally {
- if (!committed)
- U.rollbackConnectionQuiet(conn);
-
- U.closeQuiet(stmt);
- U.closeQuiet(conn);
- }
- }
-
- /**
- * Sets data source.
- * <p>
- * Data source should be fully configured and ready-to-use.
- *
- * @param dataSrc Data source.
- */
- @IgniteSpiConfiguration(optional = false)
- public void setDataSource(DataSource dataSrc) {
- this.dataSrc = dataSrc;
- }
-
- /**
- * Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
- * was explicitly created by user.
- *
- * @param initSchema {@code True} if DB schema should be initialized by GridGain (default behaviour),
- * {code @false} if schema was explicitly created by user.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setInitSchema(boolean initSchema) {
- this.initSchema = initSchema;
- }
-
- /**
- * Checks configuration validity.
- *
- * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
- */
- private void init() throws IgniteSpiException {
- if (initGuard.compareAndSet(false, true)) {
- if (dataSrc == null)
- throw new IgniteSpiException("Data source is null (you must configure it via setDataSource(..)" +
- " configuration property)");
-
- if (!initSchema) {
- initLatch.countDown();
-
- checkSchema();
-
- return;
- }
-
- Connection conn = null;
-
- Statement stmt = null;
-
- boolean committed = false;
-
- try {
- conn = dataSrc.getConnection();
-
- conn.setAutoCommit(false);
-
- conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
- // Create tbl_addrs.
- stmt = conn.createStatement();
-
- stmt.executeUpdate(CREATE_ADDRS_TABLE_QRY);
-
- conn.commit();
-
- committed = true;
-
- if (log.isDebugEnabled())
- log.debug("DB schema has been initialized.");
- }
- catch (SQLException e) {
- U.rollbackConnectionQuiet(conn);
-
- throw new IgniteSpiException("Failed to initialize DB schema.", e);
- }
- finally {
- if (!committed)
- U.rollbackConnectionQuiet(conn);
-
- U.closeQuiet(stmt);
- U.closeQuiet(conn);
-
- initLatch.countDown();
- }
- }
- else
- checkSchema();
- }
-
- /**
- * Checks correctness of existing DB schema.
- *
- * @throws org.apache.ignite.spi.IgniteSpiException If schema wasn't properly initialized.
- */
- private void checkSchema() throws IgniteSpiException {
- try {
- U.await(initLatch);
- }
- catch (GridInterruptedException e) {
- throw new IgniteSpiException("Thread has been interrupted.", e);
- }
-
- Connection conn = null;
-
- Statement stmt = null;
-
- try {
- conn = dataSrc.getConnection();
-
- conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
- // Check if tbl_addrs exists and database initialized properly.
- stmt = conn.createStatement();
-
- stmt.execute(CHK_QRY);
- }
- catch (SQLException e) {
- throw new IgniteSpiException("IP finder has not been properly initialized.", e);
- }
- finally {
- U.closeQuiet(stmt);
- U.closeQuiet(conn);
- }
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoveryJdbcIpFinder.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
deleted file mode 100644
index dfe23f6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains JDBC IP finder implementation.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
deleted file mode 100644
index acc20a4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast;
-
-import org.apache.ignite.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-import static org.apache.ignite.spi.IgnitePortProtocol.*;
-
-/**
- * Multicast-based IP finder.
- * <p>
- * When TCP discovery starts this finder sends multicast request and waits
- * for some time when others nodes reply to this request with messages containing
- * their addresses (time IP finder waits for response and number of attempts to
- * re-send multicast request in case if no replies are received can be configured,
- * see {@link #setResponseWaitTime(int)} and {@link #setAddressRequestAttempts(int)}).
- * <p>
- * In addition to address received via multicast this finder can work with pre-configured
- * list of addresses specified via {@link #setAddresses(Collection)} method.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- * <li>Multicast IP address (see {@link #setMulticastGroup(String)}).</li>
- * <li>Multicast port number (see {@link #setMulticastPort(int)}).</li>
- * <li>Address response wait time (see {@link #setResponseWaitTime(int)}).</li>
- * <li>Address request attempts (see {@link #setAddressRequestAttempts(int)}).</li>
- * <li>Pre-configured addresses (see {@link #setAddresses(Collection)})</li>
- * <li>Local address (see {@link #setLocalAddress(String)})</li>
- * </ul>
- */
-public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
- /** Default multicast IP address (value is {@code 228.1.2.4}). */
- public static final String DFLT_MCAST_GROUP = "228.1.2.4";
-
- /** Default multicast port number (value is {@code 47400}). */
- public static final int DFLT_MCAST_PORT = 47400;
-
- /** Default time IP finder waits for reply to multicast address request (value is {@code 500}). */
- public static final int DFLT_RES_WAIT_TIME = 500;
-
- /** Default number of attempts to send multicast address request (value is {@code 2}). */
- public static final int DFLT_ADDR_REQ_ATTEMPTS = 2;
-
- /** Address request message data. */
- private static final byte[] MSG_ADDR_REQ_DATA = U.GG_HEADER;
-
- /** */
- private static final IgniteMarshaller marsh = new IgniteJdkMarshaller();
-
- /** Grid logger. */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** Grid name. */
- @IgniteNameResource
- @GridToStringExclude
- private String gridName;
-
- /** Multicast IP address as string. */
- private String mcastGrp = DFLT_MCAST_GROUP;
-
- /** Multicast port number. */
- private int mcastPort = DFLT_MCAST_PORT;
-
- /** Time IP finder waits for reply to multicast address request. */
- private int resWaitTime = DFLT_RES_WAIT_TIME;
-
- /** Number of attempts to send multicast address request. */
- private int addrReqAttempts = DFLT_ADDR_REQ_ATTEMPTS;
-
- /** Local address */
- private String locAddr;
-
- /** */
- @GridToStringExclude
- private Collection<AddressSender> addrSnds;
-
- /**
- * Constructs new IP finder.
- */
- public TcpDiscoveryMulticastIpFinder() {
- setShared(true);
- }
-
- /**
- * Sets IP address of multicast group.
- * <p>
- * If not provided, default value is {@link #DFLT_MCAST_GROUP}.
- *
- * @param mcastGrp Multicast IP address.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setMulticastGroup(String mcastGrp) {
- this.mcastGrp = mcastGrp;
- }
-
- /**
- * Gets IP address of multicast group.
- *
- * @return Multicast IP address.
- */
- public String getMulticastGroup() {
- return mcastGrp;
- }
-
- /**
- * Sets port number which multicast messages are sent to.
- * <p>
- * If not provided, default value is {@link #DFLT_MCAST_PORT}.
- *
- * @param mcastPort Multicast port number.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setMulticastPort(int mcastPort) {
- this.mcastPort = mcastPort;
- }
-
- /**
- * Gets port number which multicast messages are sent to.
- *
- * @return Port number.
- */
- public int getMulticastPort() {
- return mcastPort;
- }
-
- /**
- * Sets time in milliseconds IP finder waits for reply to
- * multicast address request.
- * <p>
- * If not provided, default value is {@link #DFLT_RES_WAIT_TIME}.
- *
- * @param resWaitTime Time IP finder waits for reply to multicast address request.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setResponseWaitTime(int resWaitTime) {
- this.resWaitTime = resWaitTime;
- }
-
- /**
- * Gets time in milliseconds IP finder waits for reply to
- * multicast address request.
- *
- * @return Time IP finder waits for reply to multicast address request.
- */
- public int getResponseWaitTime() {
- return resWaitTime;
- }
-
- /**
- * Sets number of attempts to send multicast address request. IP finder re-sends
- * request only in case if no reply for previous request is received.
- * <p>
- * If not provided, default value is {@link #DFLT_ADDR_REQ_ATTEMPTS}.
- *
- * @param addrReqAttempts Number of attempts to send multicast address request.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setAddressRequestAttempts(int addrReqAttempts) {
- this.addrReqAttempts = addrReqAttempts;
- }
-
- /**
- * Gets number of attempts to send multicast address request. IP finder re-sends
- * request only in case if no reply for previous request is received.
- *
- * @return Number of attempts to send multicast address request.
- */
- public int getAddressRequestAttempts() {
- return addrReqAttempts;
- }
-
- /**
- * Sets local host address used by this IP finder. If provided address is non-loopback then multicast
- * socket is bound to this interface. If local address is not set or is any local address then IP finder
- * creates multicast sockets for all found non-loopback addresses.
- * <p>
- * If not provided then this property is initialized by the local address set in {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
- * configuration.
- *
- * @param locAddr Local host address.
- * @see org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#setLocalAddress(String)
- */
- @IgniteSpiConfiguration(optional = true)
- public void setLocalAddress(String locAddr) {
- this.locAddr = locAddr;
- }
-
- /**
- * Gets local address that multicast IP finder uses.
- *
- * @return Local address.
- */
- public String getLocalAddress() {
- return locAddr;
- }
-
- /** {@inheritDoc} */
- @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- // If GRIDGAIN_OVERRIDE_MCAST_GRP system property is set, use its value to override multicast group from
- // configuration. Used for testing purposes.
- String overrideMcastGrp = System.getProperty(GG_OVERRIDE_MCAST_GRP);
-
- if (overrideMcastGrp != null)
- mcastGrp = overrideMcastGrp;
-
- if (F.isEmpty(mcastGrp))
- throw new IgniteSpiException("Multicast IP address is not specified.");
-
- if (mcastPort < 0 || mcastPort > 65535)
- throw new IgniteSpiException("Invalid multicast port: " + mcastPort);
-
- if (resWaitTime <= 0)
- throw new IgniteSpiException("Invalid wait time, value greater than zero is expected: " + resWaitTime);
-
- if (addrReqAttempts <= 0)
- throw new IgniteSpiException("Invalid number of address request attempts, " +
- "value greater than zero is expected: " + addrReqAttempts);
-
- if (F.isEmpty(getRegisteredAddresses()))
- U.warn(log, "GridTcpDiscoveryMulticastIpFinder has no pre-configured addresses " +
- "(it is recommended in production to specify at least one address in " +
- "GridTcpDiscoveryMulticastIpFinder.getAddresses() configuration property)");
-
- InetAddress mcastAddr;
-
- try {
- mcastAddr = InetAddress.getByName(mcastGrp);
- }
- catch (UnknownHostException e) {
- throw new IgniteSpiException("Unknown multicast group: " + mcastGrp, e);
- }
-
- if (!mcastAddr.isMulticastAddress())
- throw new IgniteSpiException("Invalid multicast group address: " + mcastAddr);
-
- Collection<String> locAddrs;
-
- try {
- locAddrs = U.resolveLocalAddresses(U.resolveLocalHost(locAddr)).get1();
- }
- catch (IOException | GridException e) {
- throw new IgniteSpiException("Failed to resolve local addresses [locAddr=" + locAddr + ']', e);
- }
-
- assert locAddrs != null;
-
- addrSnds = new ArrayList<>(locAddrs.size());
-
- Collection<InetAddress> reqItfs = new ArrayList<>(locAddrs.size()); // Interfaces used to send requests.
-
- for (String locAddr : locAddrs) {
- InetAddress addr;
-
- try {
- addr = InetAddress.getByName(locAddr);
- }
- catch (UnknownHostException e) {
- if (log.isDebugEnabled())
- log.debug("Failed to resolve local address [locAddr=" + locAddr + ", err=" + e + ']');
-
- continue;
- }
-
- if (!addr.isLoopbackAddress()) {
- try {
- addrSnds.add(new AddressSender(mcastAddr, addr, addrs));
-
- reqItfs.add(addr);
- }
- catch (IOException e) {
- if (log.isDebugEnabled())
- log.debug("Failed to create multicast socket [mcastAddr=" + mcastAddr +
- ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ", locAddr=" + addr +
- ", err=" + e + ']');
- }
- }
- }
-
- if (addrSnds.isEmpty()) {
- try {
- // Create non-bound socket if local host is loopback or failed to create sockets explicitly
- // bound to interfaces.
- addrSnds.add(new AddressSender(mcastAddr, null, addrs));
- }
- catch (IOException e) {
- throw new IgniteSpiException("Failed to create multicast socket [mcastAddr=" + mcastAddr +
- ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ']', e);
- }
- }
-
- for (AddressSender addrSnd :addrSnds)
- addrSnd.start();
-
- Collection<InetSocketAddress> ret;
-
- if (reqItfs.size() > 1) {
- ret = new HashSet<>();
-
- Collection<AddressReceiver> rcvrs = new ArrayList<>();
-
- for (InetAddress itf : reqItfs) {
- AddressReceiver rcvr = new AddressReceiver(mcastAddr, itf);
-
- rcvr.start();
-
- rcvrs.add(rcvr);
- }
-
- for (AddressReceiver rcvr : rcvrs) {
- try {
- rcvr.join();
-
- ret.addAll(rcvr.addresses());
- }
- catch (InterruptedException ignore) {
- U.warn(log, "Got interrupted while receiving address request.");
-
- Thread.currentThread().interrupt();
-
- break;
- }
- }
- }
- else
- ret = requestAddresses(mcastAddr, F.first(reqItfs));
-
- if (!ret.isEmpty())
- registerAddresses(ret);
- }
-
- /** {@inheritDoc} */
- @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
- super.onSpiContextInitialized(spiCtx);
-
- spiCtx.registerPort(mcastPort, UDP);
- }
-
- /**
- * Sends multicast address request message and waits for reply. Response wait time and number
- * of request attempts are configured as properties {@link #setResponseWaitTime} and
- * {@link #setAddressRequestAttempts}.
- *
- * @param mcastAddr Multicast address where to send request.
- * @param sockItf Optional interface multicast socket should be bound to.
- * @return Collection of received addresses.
- */
- private Collection<InetSocketAddress> requestAddresses(InetAddress mcastAddr, @Nullable InetAddress sockItf) {
- Collection<InetSocketAddress> rmtAddrs = new HashSet<>();
-
- try {
- DatagramPacket reqPckt = new DatagramPacket(MSG_ADDR_REQ_DATA, MSG_ADDR_REQ_DATA.length,
- mcastAddr, mcastPort);
-
- byte[] resData = new byte[AddressResponse.MAX_DATA_LENGTH];
-
- DatagramPacket resPckt = new DatagramPacket(resData, resData.length);
-
- boolean sndError = false;
-
- for (int i = 0; i < addrReqAttempts; i++) {
- MulticastSocket sock = null;
-
- try {
- sock = new MulticastSocket(0);
-
- // Use 'false' to enable support for more than one node on the same machine.
- sock.setLoopbackMode(false);
-
- if (sockItf != null)
- sock.setInterface(sockItf);
-
- sock.setSoTimeout(resWaitTime);
-
- reqPckt.setData(MSG_ADDR_REQ_DATA);
-
- try {
- sock.send(reqPckt);
- }
- catch (IOException e) {
- if (!handleNetworkError(e))
- break;
-
- if (i < addrReqAttempts - 1) {
- if (log.isDebugEnabled())
- log.debug("Failed to send multicast address request (will retry in 500 ms): " + e);
-
- U.sleep(500);
- }
- else {
- if (log.isDebugEnabled())
- log.debug("Failed to send multicast address request: " + e);
- }
-
- sndError = true;
-
- continue;
- }
-
- long rcvEnd = U.currentTimeMillis() + resWaitTime;
-
- try {
- while (U.currentTimeMillis() < rcvEnd) { // Try to receive multiple responses.
- sock.receive(resPckt);
-
- byte[] data = resPckt.getData();
-
- if (!U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length)) {
- U.error(log, "Failed to verify message header.");
-
- continue;
- }
-
- AddressResponse addrRes;
-
- try {
- addrRes = new AddressResponse(data);
- }
- catch (GridException e) {
- LT.warn(log, e, "Failed to deserialize multicast response.");
-
- continue;
- }
-
- rmtAddrs.addAll(addrRes.addresses());
- }
- }
- catch (SocketTimeoutException ignored) {
- if (log.isDebugEnabled()) // DatagramSocket.receive timeout has expired.
- log.debug("Address receive timeout.");
- }
- }
- catch (IOException e) {
- U.error(log, "Failed to request nodes addresses.", e);
- }
- finally {
- U.close(sock);
- }
-
- if (!rmtAddrs.isEmpty())
- break;
-
- if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
- U.sleep(200);
- }
-
- if (log.isDebugEnabled())
- log.debug("Received nodes addresses: " + rmtAddrs);
-
- if (rmtAddrs.isEmpty() && sndError)
- U.quietAndWarn(log, "Failed to send multicast message (is multicast enabled on this node?).");
-
- return rmtAddrs;
- }
- catch (GridInterruptedException ignored) {
- U.warn(log, "Got interrupted while sending address request.");
-
- Thread.currentThread().interrupt();
-
- return rmtAddrs;
- }
- }
-
- /** {@inheritDoc} */
- @Override public void close() {
- for (AddressSender addrSnd : addrSnds)
- U.interrupt(addrSnd);
-
- for (AddressSender addrSnd : addrSnds)
- U.join(addrSnd, log);
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoveryMulticastIpFinder.class, this, "super", super.toString());
- }
-
- /**
- * @param e Network error to handle.
- * @return {@code True} if this error is recoverable and the operation can be retried.
- */
- private boolean handleNetworkError(IOException e) {
- if ("Network is unreachable".equals(e.getMessage()) && U.isMacOs()) {
- U.warn(log, "Multicast does not work on Mac OS JVM loopback address (configure external IP address " +
- "for 'localHost' configuration property)");
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Response to multicast address request.
- */
- private static class AddressResponse {
- /** Maximum supported multicast message. */
- public static final int MAX_DATA_LENGTH = 64 * 1024;
-
- /** */
- private byte[] data;
-
- /** */
- private Collection<InetSocketAddress> addrs;
-
- /**
- * @param addrs Addresses discovery SPI binds to.
- * @throws GridException If marshalling failed.
- */
- private AddressResponse(Collection<InetSocketAddress> addrs) throws GridException {
- this.addrs = addrs;
-
- byte[] addrsData = marsh.marshal(addrs);
- data = new byte[U.GG_HEADER.length + addrsData.length];
-
- if (data.length > MAX_DATA_LENGTH)
- throw new GridException("Too long data packet [size=" + data.length + ", max=" + MAX_DATA_LENGTH + "]");
-
- System.arraycopy(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
- System.arraycopy(addrsData, 0, data, 4, addrsData.length);
- }
-
- /**
- * @param data Message data.
- * @throws GridException If unmarshalling failed.
- */
- private AddressResponse(byte[] data) throws GridException {
- assert U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
-
- this.data = data;
-
- addrs = marsh.unmarshal(Arrays.copyOfRange(data, U.GG_HEADER.length, data.length), null);
- }
-
- /**
- * @return Message data.
- */
- byte[] data() {
- return data;
- }
-
- /**
- * @return IP address discovery SPI binds to.
- */
- public Collection<InetSocketAddress> addresses() {
- return addrs;
- }
- }
-
- /**
- * Thread sends multicast address request message and waits for reply.
- */
- private class AddressReceiver extends IgniteSpiThread {
- /** */
- private final InetAddress mcastAddr;
-
- /** */
- private final InetAddress sockAddr;
-
- /** */
- private Collection<InetSocketAddress> addrs;
-
- /**
- * @param mcastAddr Multicast address where to send request.
- * @param sockAddr Optional address multicast socket should be bound to.
- */
- private AddressReceiver(InetAddress mcastAddr, InetAddress sockAddr) {
- super(gridName, "tcp-disco-multicast-addr-rcvr", log);
- this.mcastAddr = mcastAddr;
- this.sockAddr = sockAddr;
- }
-
- /** {@inheritDoc} */
- @Override protected void body() throws InterruptedException {
- addrs = requestAddresses(mcastAddr, sockAddr);
- }
-
- /**
- * @return Received addresses.
- */
- Collection<InetSocketAddress> addresses() {
- return addrs;
- }
- }
-
- /**
- * Thread listening for multicast address requests and sending response
- * containing socket address this node's discovery SPI listens to.
- */
- private class AddressSender extends IgniteSpiThread {
- /** */
- @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
- private MulticastSocket sock;
-
- /** */
- private final InetAddress mcastGrp;
-
- /** */
- private final Collection<InetSocketAddress> addrs;
-
- /** */
- private final InetAddress sockItf;
-
- /**
- * @param mcastGrp Multicast address.
- * @param sockItf Optional interface multicast socket should be bound to.
- * @param addrs Local node addresses.
- * @throws IOException If fails to create multicast socket.
- */
- private AddressSender(InetAddress mcastGrp, @Nullable InetAddress sockItf, Collection<InetSocketAddress> addrs)
- throws IOException {
- super(gridName, "tcp-disco-multicast-addr-sender", log);
- this.mcastGrp = mcastGrp;
- this.addrs = addrs;
- this.sockItf = sockItf;
-
- sock = createSocket();
- }
-
- /**
- * Creates multicast socket and joins multicast group.
- *
- * @throws IOException If fails to create socket or join multicast group.
- * @return Multicast socket.
- */
- private MulticastSocket createSocket() throws IOException {
- MulticastSocket sock = new MulticastSocket(mcastPort);
-
- sock.setLoopbackMode(false); // Use 'false' to enable support for more than one node on the same machine.
-
- if (sockItf != null)
- sock.setInterface(sockItf);
-
- if (sock.getLoopbackMode())
- U.warn(log, "Loopback mode is disabled which prevents nodes on the same machine from discovering " +
- "each other.");
-
- sock.joinGroup(mcastGrp);
-
- return sock;
- }
-
- /** {@inheritDoc} */
- @Override protected void body() throws InterruptedException {
- AddressResponse res;
-
- try {
- res = new AddressResponse(addrs);
- }
- catch (GridException e) {
- U.error(log, "Failed to prepare multicast message.", e);
-
- return;
- }
-
- byte[] reqData = new byte[MSG_ADDR_REQ_DATA.length];
-
- DatagramPacket pckt = new DatagramPacket(reqData, reqData.length);
-
- while (!isInterrupted()) {
- try {
- MulticastSocket sock;
-
- synchronized (this) {
- if (isInterrupted())
- return;
-
- sock = this.sock;
-
- if (sock == null)
- sock = createSocket();
- }
-
- sock.receive(pckt);
-
- if (!U.bytesEqual(U.GG_HEADER, 0, reqData, 0, U.GG_HEADER.length)) {
- U.error(log, "Failed to verify message header.");
-
- continue;
- }
-
- try {
- sock.send(new DatagramPacket(res.data(), res.data().length, pckt.getAddress(), pckt.getPort()));
- }
- catch (IOException e) {
- if (e.getMessage().contains("Operation not permitted")) {
- if (log.isDebugEnabled())
- log.debug("Got 'operation not permitted' error, ignoring: " + e);
- }
- else
- throw e;
- }
- }
- catch (IOException e) {
- if (!isInterrupted()) {
- U.error(log, "Failed to send/receive address message (will try to reconnect).", e);
-
- synchronized (this) {
- U.close(sock);
-
- sock = null;
- }
- }
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override public void interrupt() {
- super.interrupt();
-
- synchronized (this) {
- U.close(sock);
-
- sock = null;
- }
- }
-
- /** {@inheritDoc} */
- @Override protected void cleanup() {
- synchronized (this) {
- U.close(sock);
-
- sock = null;
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
deleted file mode 100644
index c3ced9e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains multicast-based IP finder.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
deleted file mode 100644
index 0a05db1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains IP finder interface and adapter.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
deleted file mode 100644
index 7ee5631..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Shared filesystem-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- * <li>Path (see {@link #setPath(String)})</li>
- * <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- * <p>
- * If {@link #getPath()} is not provided, then {@link #DFLT_PATH} will be used and
- * only local nodes will discover each other. To enable discovery over network
- * you must provide a path to a shared directory explicitly.
- * <p>
- * The directory will contain empty files named like the following 192.168.1.136#1001.
- * <p>
- * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
- */
-public class TcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
- /**
- * Default path for discovering of local nodes (testing only). Note that this path is relative to
- * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
- * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
- *
- * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
- */
- public static final String DFLT_PATH = "disco/tcp";
-
- /** Delimiter to use between address and port tokens in file names. */
- public static final String DELIM = "#";
-
- /** Grid logger. */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** File-system path. */
- private String path = DFLT_PATH;
-
- /** Folder to keep items in. */
- @GridToStringExclude
- private File folder;
-
- /** Warning guard. */
- @GridToStringExclude
- private final AtomicBoolean warnGuard = new AtomicBoolean();
-
- /** Init guard. */
- @GridToStringExclude
- private final AtomicBoolean initGuard = new AtomicBoolean();
-
- /** Init latch. */
- @GridToStringExclude
- private final CountDownLatch initLatch = new CountDownLatch(1);
-
- /**
- * Constructor.
- */
- public TcpDiscoverySharedFsIpFinder() {
- setShared(true);
- }
-
- /**
- * Gets path.
- *
- * @return Shared path.
- */
- public String getPath() {
- return path;
- }
-
- /**
- * Sets path.
- *
- * @param path Shared path.
- */
- @IgniteSpiConfiguration(optional = true)
- public void setPath(String path) {
- this.path = path;
- }
-
- /**
- * Initializes folder to work with.
- *
- * @return Folder.
- * @throws org.apache.ignite.spi.IgniteSpiException If failed.
- */
- private File initFolder() throws IgniteSpiException {
- if (initGuard.compareAndSet(false, true)) {
- if (path == null)
- throw new IgniteSpiException("Shared file system path is null " +
- "(it should be configured via setPath(..) configuration property).");
-
- if (path.equals(DFLT_PATH) && warnGuard.compareAndSet(false, true))
- U.warn(log, "Default local computer-only share is used by IP finder.");
-
- try {
- File tmp;
-
- if (new File(path).exists())
- tmp = new File(path);
- else {
- try {
- tmp = U.resolveWorkDirectory(path, false);
- }
- catch (GridException e) {
- throw new IgniteSpiException("Failed to resolve directory [path=" + path +
- ", exception=" + e.getMessage() + ']');
- }
- }
-
- if (!tmp.isDirectory())
- throw new IgniteSpiException("Failed to initialize shared file system path " +
- "(path must point to folder): " + path);
-
- if (!tmp.canRead() || !tmp.canWrite())
- throw new IgniteSpiException("Failed to initialize shared file system path " +
- "(path must be readable and writable): " + path);
-
- folder = tmp;
- }
- finally {
- initLatch.countDown();
- }
- }
- else {
- try {
- U.await(initLatch);
- }
- catch (GridInterruptedException e) {
- throw new IgniteSpiException("Thread has been interrupted.", e);
- }
-
- if (folder == null)
- throw new IgniteSpiException("Failed to initialize shared file system folder (check logs for errors).");
- }
-
- return folder;
- }
-
- /** {@inheritDoc} */
- @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
- initFolder();
-
- Collection<InetSocketAddress> addrs = new LinkedList<>();
-
- for (String fileName : folder.list())
- if (!".svn".equals(fileName)) {
- InetSocketAddress addr = null;
-
- StringTokenizer st = new StringTokenizer(fileName, DELIM);
-
- if (st.countTokens() == 2) {
- String addrStr = st.nextToken();
- String portStr = st.nextToken();
-
- try {
- int port = Integer.parseInt(portStr);
-
- addr = new InetSocketAddress(addrStr, port);
- }
- catch (IllegalArgumentException e) {
- U.error(log, "Failed to parse file entry: " + fileName, e);
- }
- }
-
- if (addr != null)
- addrs.add(addr);
- }
-
- return Collections.unmodifiableCollection(addrs);
- }
-
- /** {@inheritDoc} */
- @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- assert !F.isEmpty(addrs);
-
- initFolder();
-
- try {
- for (InetSocketAddress addr : addrs) {
- File file = new File(folder, name(addr));
-
- file.createNewFile();
- }
- }
- catch (IOException e) {
- throw new IgniteSpiException("Failed to create file.", e);
- }
- }
-
- /** {@inheritDoc} */
- @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
- assert !F.isEmpty(addrs);
-
- initFolder();
-
- try {
- for (InetSocketAddress addr : addrs) {
- File file = new File(folder, name(addr));
-
- file.delete();
- }
- }
- catch (SecurityException e) {
- throw new IgniteSpiException("Failed to delete file.", e);
- }
- }
-
- /**
- * Creates file name for address.
- *
- * @param addr Node address.
- * @return Name.
- */
- private String name(InetSocketAddress addr) {
- assert addr != null;
-
- SB sb = new SB();
-
- sb.a(addr.getAddress().getHostAddress())
- .a(DELIM)
- .a(addr.getPort());
-
- return sb.toString();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoverySharedFsIpFinder.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
deleted file mode 100644
index e1305a3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains shared filesystem-based IP finder.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
deleted file mode 100644
index fdcee08..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.vm;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-
-/**
- * IP Finder which works only with pre-configured list of IP addresses specified
- * via {@link #setAddresses(Collection)} method. By default, this IP finder is
- * not {@code shared}, which means that all grid nodes have to be configured with the
- * same list of IP addresses when this IP finder is used.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- * <li>Addresses for initialization (see {@link #setAddresses(Collection)})</li>
- * <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- */
-public class TcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
- /** Grid logger. */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** Addresses. */
- @GridToStringInclude
- private Collection<InetSocketAddress> addrs;
-
- /**
- * Initialize from system property.
- */
- {
- String ips = IgniteSystemProperties.getString(GG_TCP_DISCOVERY_ADDRESSES);
-
- if (!F.isEmpty(ips)) {
- Collection<InetSocketAddress> addrsList = new LinkedHashSet<>();
-
- for (String s : ips.split(",")) {
- if (!F.isEmpty(s)) {
- s = s.trim();
-
- if (!F.isEmpty(s)) {
- try {
- addrsList.addAll(address(s));
- }
- catch (IgniteSpiException e) {
- throw new GridRuntimeException(e);
- }
- }
- }
- }
-
- addrs = addrsList;
- }
- else
- addrs = new LinkedHashSet<>();
- }
-
- /**
- * Constructs new IP finder.
- */
- public TcpDiscoveryVmIpFinder() {
- // No-op.
- }
-
- /**
- * Constructs new IP finder.
- *
- * @param shared {@code true} if IP finder is shared.
- * @see #setShared(boolean)
- */
- public TcpDiscoveryVmIpFinder(boolean shared) {
- setShared(shared);
- }
-
- /**
- * Parses provided values and initializes the internal collection of addresses.
- * <p>
- * Addresses may be represented as follows:
- * <ul>
- * <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>
- * <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>
- * <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>
- * <li>Hostname (e.g. host1.com, host2, etc);</li>
- * <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>
- * <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>
- * </ul>
- * <p>
- * If port is 0 or not provided then default port will be used (depends on
- * discovery SPI configuration).
- * <p>
- * If port range is provided (e.g. host:port1..port2) the following should be considered:
- * <ul>
- * <li>{@code port1 < port2} should be {@code true};</li>
- * <li>Both {@code port1} and {@code port2} should be greater than {@code 0}.</li>
- * </ul>
- *
- * @param addrs Known nodes addresses.
- * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
- */
- @IgniteSpiConfiguration(optional = true)
- public synchronized void setAddresses(Collection<String> addrs) throws IgniteSpiException {
- if (F.isEmpty(addrs))
- return;
-
- Collection<InetSocketAddress> newAddrs = new LinkedHashSet<>();
-
- for (String ipStr : addrs)
- newAddrs.addAll(address(ipStr));
-
- this.addrs = newAddrs;
- }
-
- /**
- * Creates address from string.
- *
- * @param ipStr Address string.
- * @return Socket addresses (may contain 1 or more addresses if provided string
- * includes port range).
- * @throws org.apache.ignite.spi.IgniteSpiException If failed.
- */
- private static Collection<InetSocketAddress> address(String ipStr) throws IgniteSpiException {
- ipStr = ipStr.trim();
-
- String errMsg = "Failed to parse provided address: " + ipStr;
-
- int colonCnt = ipStr.length() - ipStr.replace(":", "").length();
-
- if (colonCnt > 1) {
- // IPv6 address (literal IPv6 addresses are enclosed in square brackets, for example
- // https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443).
- if (ipStr.startsWith("[")) {
- ipStr = ipStr.substring(1);
-
- if (ipStr.contains("]:"))
- return addresses(ipStr, "\\]\\:", errMsg);
- else if (ipStr.endsWith("]"))
- ipStr = ipStr.substring(0, ipStr.length() - 1);
- else
- throw new IgniteSpiException(errMsg);
- }
- }
- else {
- // IPv4 address.
- if (ipStr.endsWith(":"))
- ipStr = ipStr.substring(0, ipStr.length() - 1);
- else if (ipStr.indexOf(':') >= 0)
- return addresses(ipStr, "\\:", errMsg);
- }
-
- // Provided address does not contain port (will use default one).
- return Collections.singleton(new InetSocketAddress(ipStr, 0));
- }
-
- /**
- * Creates address from string with port information.
- *
- * @param ipStr Address string
- * @param regexDelim Port regex delimiter.
- * @param errMsg Error message.
- * @return Socket addresses (may contain 1 or more addresses if provided string
- * includes port range).
- * @throws org.apache.ignite.spi.IgniteSpiException If failed.
- */
- private static Collection<InetSocketAddress> addresses(String ipStr, String regexDelim, String errMsg)
- throws IgniteSpiException {
- String[] tokens = ipStr.split(regexDelim);
-
- if (tokens.length == 2) {
- String addrStr = tokens[0];
- String portStr = tokens[1];
-
- if (portStr.contains("..")) {
- try {
- int port1 = Integer.parseInt(portStr.substring(0, portStr.indexOf("..")));
- int port2 = Integer.parseInt(portStr.substring(portStr.indexOf("..") + 2, portStr.length()));
-
- if (port2 < port1 || port1 == port2 || port1 <= 0 || port2 <= 0)
- throw new IgniteSpiException(errMsg);
-
- Collection<InetSocketAddress> res = new ArrayList<>(port2 - port1);
-
- // Upper bound included.
- for (int i = port1; i <= port2; i++)
- res.add(new InetSocketAddress(addrStr, i));
-
- return res;
- }
- catch (IllegalArgumentException e) {
- throw new IgniteSpiException(errMsg, e);
- }
- }
- else {
- try {
- int port = Integer.parseInt(portStr);
-
- return Collections.singleton(new InetSocketAddress(addrStr, port));
- }
- catch (IllegalArgumentException e) {
- throw new IgniteSpiException(errMsg, e);
- }
- }
- }
- else
- throw new IgniteSpiException(errMsg);
- }
-
- /** {@inheritDoc} */
- @Override public synchronized Collection<InetSocketAddress> getRegisteredAddresses() {
- return Collections.unmodifiableCollection(addrs);
- }
-
- /** {@inheritDoc} */
- @Override public synchronized void registerAddresses(Collection<InetSocketAddress> addrs) {
- assert !F.isEmpty(addrs);
-
- this.addrs = new LinkedHashSet<>(this.addrs);
-
- this.addrs.addAll(addrs);
- }
-
- /** {@inheritDoc} */
- @Override public synchronized void unregisterAddresses(Collection<InetSocketAddress> addrs) {
- assert !F.isEmpty(addrs);
-
- this.addrs = new LinkedHashSet<>(this.addrs);
-
- this.addrs.removeAll(addrs);
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoveryVmIpFinder.class, this, "super", super.toString());
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
deleted file mode 100644
index 7016083..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains local JVM-based IP finder.
-</body>
-</html>