You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/04/11 09:47:33 UTC
[01/31] incubator-ignite git commit: # ignite-537
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-721 2d3eac747 -> bf7b9f861
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/33dbf24b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/33dbf24b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/33dbf24b
Branch: refs/heads/ignite-721
Commit: 33dbf24b7bac8b5eea2709b7cc2bbd721a92ab70
Parents: fd9cdff
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 14:46:34 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 18:15:39 2015 +0300
----------------------------------------------------------------------
.../discovery/GridDiscoveryManager.java | 41 ++++--
.../spi/discovery/DiscoverySpiDataExchange.java | 13 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 14 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 135 ++++++++++++++++++-
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 13 ++
.../messages/TcpDiscoveryGetClassRequest.java | 47 +++++++
.../messages/TcpDiscoveryGetClassResponse.java | 67 +++++++++
.../TcpDiscoveryJoinRequestMessage.java | 6 +-
.../messages/TcpDiscoveryNodeAddedMessage.java | 16 ++-
.../discovery/AbstractDiscoverySelfTest.java | 7 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 7 +-
.../junits/spi/GridSpiAbstractTest.java | 7 +-
12 files changed, 334 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 04ff423..7662bcc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -36,6 +36,7 @@ import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.internal.util.worker.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.marshaller.jdk.*;
import org.apache.ignite.plugin.security.*;
import org.apache.ignite.plugin.segmentation.*;
import org.apache.ignite.spi.*;
@@ -171,6 +172,9 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
/** Map of dynamic cache filters. */
private Map<String, CachePredicate> registeredCaches = new HashMap<>();
+ /** */
+ private JdkMarshaller jdkMarsh = new JdkMarshaller();
+
/** @param ctx Context. */
public GridDiscoveryManager(GridKernalContext ctx) {
super(ctx, ctx.config().getDiscoverySpi());
@@ -417,10 +421,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, byte[]> collect(UUID nodeId) {
assert nodeId != null;
- Map<Integer, Object> data = new HashMap<>();
+ Map<Integer, byte[]> data = new HashMap<>();
for (GridComponent comp : ctx.components()) {
Object compData = comp.collectDiscoveryData(nodeId);
@@ -428,29 +432,48 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
if (compData != null) {
assert comp.discoveryDataType() != null;
- data.put(comp.discoveryDataType().ordinal(), compData);
+ try {
+ byte[] bytes = jdkMarsh.marshal(compData);
+
+ data.put(comp.discoveryDataType().ordinal(), bytes);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + comp + ", data=" + compData + ']', e);
+ }
}
}
return data;
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
- for (Map.Entry<Integer, Object> e : data.entrySet()) {
+ @Override public void onExchange(UUID joiningNodeId,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr) {
+ for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
GridComponent comp = null;
for (GridComponent c : ctx.components()) {
- if (c.discoveryDataType() != null && c.discoveryDataType().ordinal() == e.getKey()) {
+ if (c.discoveryDataType() != null && c.discoveryDataType().ordinal() == entry.getKey()) {
comp = c;
break;
}
}
- if (comp != null)
- comp.onDiscoveryDataReceived(joiningNodeId, nodeId, e.getValue());
+ if (comp != null) {
+ try {
+ Object compData = jdkMarsh.unmarshal(entry.getValue(), clsLdr);
+
+ comp.onDiscoveryDataReceived(joiningNodeId, nodeId, compData);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to unmarshal discovery data for component: " + comp, e);
+ }
+ }
else
- U.warn(log, "Received discovery data for unknown component: " + e.getKey());
+ U.warn(log, "Received discovery data for unknown component: " + entry.getKey());
}
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
index 29f6b5f..06f1af8 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
@@ -33,13 +33,18 @@ public interface DiscoverySpiDataExchange {
* @param joiningNodeId ID of new node that joins topology.
* @return Collection of discovery data objects from different components.
*/
- public Map<Integer, Object> collect(UUID joiningNodeId);
+ public Map<Integer, byte[]> collect(UUID joiningNodeId);
/**
* Notifies discovery manager about data received from remote node.
*
- * @param joiningNodeId Remote node ID.
- * @param data Collection of discovery data objects from different components.
+ * @param joiningNodeId Joining node ID.
+ * @param nodeId Remote node ID for which data is provided.
+ * @param data Collection of marshalled discovery data objects from different components.
+ * @param clsLdr Class loader to use for discovery data unmarshalling.
*/
- public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data);
+ public void onExchange(UUID joiningNodeId,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index bf69efb..6ced987 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -893,11 +893,15 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
if (msg.topologyHistory() != null)
topHist.putAll(msg.topologyHistory());
- Map<UUID, Map<Integer, Object>> dataMap = msg.oldNodesDiscoveryData();
+ Map<UUID, Map<Integer, byte[]>> dataMap = msg.oldNodesDiscoveryData();
if (dataMap != null) {
- for (Map.Entry<UUID, Map<Integer, Object>> entry : dataMap.entrySet())
- exchange.onExchange(newNodeId, entry.getKey(), entry.getValue());
+ for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
+ exchange.onExchange(newNodeId,
+ entry.getKey(),
+ entry.getValue(),
+ exchangeClassLoader(newNodeId));
+ }
}
locNode.setAttributes(node.attributes());
@@ -917,10 +921,10 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
if (log.isDebugEnabled())
log.debug("Added new node to topology: " + node);
- Map<Integer, Object> data = msg.newNodeDiscoveryData();
+ Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
if (data != null)
- exchange.onExchange(newNodeId, newNodeId, data);
+ exchange.onExchange(newNodeId, newNodeId, data, exchangeClassLoader(newNodeId));
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index bad8837..ef22291 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2192,6 +2192,54 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return dfltAllowMatch && bothHaveSamePerms;
}
+ /**
+ * @param req Get class request.
+ */
+ private TcpDiscoveryGetClassResponse processGetClassRequest(TcpDiscoveryGetClassRequest req) {
+ assert !F.isEmpty(req.className()) : req;
+
+ InputStream in = getClass().getResourceAsStream(req.className());
+
+ byte[] clsBytes = null;
+ String err = null;
+
+ if (in != null) {
+ try {
+ GridByteArrayList bytes = new GridByteArrayList(1024);
+
+ bytes.readAll(in);
+
+ clsBytes = bytes.entireArray();
+ }
+ catch (IOException e) {
+ err = "Failed to load class '" + req.className() + "' due IO error: " + e;
+
+ U.error(log, err, e);
+ }
+ finally {
+ U.close(in, log);
+ }
+ }
+ else {
+ if (log.isDebugEnabled())
+ log.debug("Failed to find requested class: " + req.className());
+
+ err = "Class '" + req.className() + "' not found.";
+ }
+
+ TcpDiscoveryGetClassResponse res;
+
+ if (clsBytes != null)
+ res = new TcpDiscoveryGetClassResponse(getLocalNodeId(), clsBytes);
+ else {
+ assert err != null;
+
+ res = new TcpDiscoveryGetClassResponse(getLocalNodeId(), err);
+ }
+
+ return res;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(TcpDiscoverySpi.class, this);
@@ -3540,10 +3588,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
if (topChanged) {
assert !node.visible() : "Added visible node [node=" + node + ", locNode=" + locNode + ']';
- Map<Integer, Object> data = msg.newNodeDiscoveryData();
+ Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
if (data != null)
- exchange.onExchange(node.id(), node.id(), data);
+ exchange.onExchange(node.id(), node.id(), data, exchangeClassLoader(node.id()));
msg.addDiscoveryData(locNodeId, exchange.collect(node.id()));
}
@@ -3555,7 +3603,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
if (msg.verified() && locNodeId.equals(node.id())) {
// Discovery data.
- Map<UUID, Map<Integer, Object>> dataMap;
+ Map<UUID, Map<Integer, byte[]>> dataMap;
synchronized (mux) {
if (spiState == CONNECTING && locNode.internalOrder() != node.internalOrder()) {
@@ -3614,8 +3662,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
// Notify outside of synchronized block.
if (dataMap != null) {
- for (Map.Entry<UUID, Map<Integer, Object>> entry : dataMap.entrySet())
- exchange.onExchange(node.id(), entry.getKey(), entry.getValue());
+ for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
+ exchange.onExchange(node.id(),
+ entry.getKey(),
+ entry.getValue(),
+ exchangeClassLoader(node.id()));
+ }
}
}
@@ -4872,6 +4924,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
continue;
}
+ else if (msg instanceof TcpDiscoveryGetClassRequest) {
+ TcpDiscoveryGetClassResponse res = processGetClassRequest((TcpDiscoveryGetClassRequest)msg);
+
+ writeToSocket(sock, res);
+
+ continue;
+ }
msgWorker.addMessage(msg);
@@ -5162,4 +5221,70 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.closeQuiet(sock);
}
}
+ /**
+ *
+ */
+ private class DiscoveryDeploymentClassLoader extends ClassLoader {
+ /** */
+ private final UUID nodeId;
+
+ /** */
+ private Socket sock;
+
+ /**
+ * @param nodeId Node ID.
+ */
+ public DiscoveryDeploymentClassLoader(UUID nodeId) {
+ this.nodeId = nodeId;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected Class<?> findClass(String name) throws ClassNotFoundException {
+ TcpDiscoveryGetClassResponse res = requestClass(name);
+
+ if (res.error() != null)
+ throw new ClassNotFoundException(res.error());
+
+ assert res.classBytes() != null;
+
+ Class<?> cls = defineClass(name, res.classBytes(), 0, res.classBytes().length);
+
+ return cls;
+ }
+
+ /**
+ * @param name Class name.
+ * @return Class response.
+ * @throws ClassNotFoundException If request failed.
+ */
+ private TcpDiscoveryGetClassResponse requestClass(String name) throws ClassNotFoundException {
+ sock = connect();
+
+ if (sock == null)
+ throw new ClassNotFoundException("Failed to load class, can not connect to peer node " +
+ "[cls=" + name + ", node=" + nodeId + ']');
+
+ try {
+ writeToSocket(sock, new TcpDiscoveryGetClassRequest(getLocalNodeId(), name));
+
+ TcpDiscoveryGetClassResponse res = readMessage(sock, null, netTimeout);
+
+ return res;
+ }
+ catch (IOException | IgniteCheckedException e) {
+ throw new ClassNotFoundException("Failed to load class: " + name, e);
+ }
+ }
+
+ private Socket connect() {
+ if (sock == null) {
+ TcpDiscoveryNode node = ring.node(nodeId);
+
+ if (node == null)
+ return null;
+ }
+
+ return sock;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index e949846..51d28f9 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -725,6 +725,19 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
/**
+ * @param nodeId Node ID.
+ * @return Class loader for exchange data unmarshalling.
+ */
+ protected ClassLoader exchangeClassLoader(UUID nodeId) {
+ assert ignite != null;
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled() || nodeId.equals(getLocalNodeId()))
+ return null;
+
+ return null;
+ }
+
+ /**
* @param msg Message.
* @return Whether delivery of the message is ensured.
*/
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
new file mode 100644
index 0000000..e372ea2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class TcpDiscoveryGetClassRequest extends TcpDiscoveryAbstractMessage {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private String clsName;
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param clsName Class name.
+ */
+ public TcpDiscoveryGetClassRequest(UUID creatorNodeId, String clsName) {
+ super(creatorNodeId);
+ this.clsName = clsName;
+ }
+
+ /**
+ * @return Class name.
+ */
+ public String className() {
+ return clsName;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
new file mode 100644
index 0000000..b1afe1c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class TcpDiscoveryGetClassResponse extends TcpDiscoveryAbstractMessage {
+ /** */
+ private String errMsg;
+
+ /** */
+ private byte[] clsBytes;
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param clsBytes Class bytes.
+ */
+ public TcpDiscoveryGetClassResponse(UUID creatorNodeId, byte[] clsBytes) {
+ super(creatorNodeId);
+
+ this.clsBytes = clsBytes;
+ }
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param errMsg Error message.
+ */
+ public TcpDiscoveryGetClassResponse(UUID creatorNodeId, String errMsg) {
+ super(creatorNodeId);
+
+ this.errMsg = errMsg;
+ }
+
+ /**
+ * @return Error if class loading failed.
+ */
+ @Nullable public String error() {
+ return errMsg;
+ }
+
+ /**
+ * @return Loaded class bytes.
+ */
+ public byte[] classBytes() {
+ return clsBytes;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
index 5e6b892..5fd99b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
@@ -34,7 +34,7 @@ public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage
private final TcpDiscoveryNode node;
/** Discovery data. */
- private final Map<Integer, Object> discoData;
+ private final Map<Integer, byte[]> discoData;
/**
* Constructor.
@@ -42,7 +42,7 @@ public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage
* @param node New node that wants to join.
* @param discoData Discovery data.
*/
- public TcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, Map<Integer, Object> discoData) {
+ public TcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, Map<Integer, byte[]> discoData) {
super(node.id());
this.node = node;
@@ -61,7 +61,7 @@ public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage
/**
* @return Discovery data.
*/
- public Map<Integer, Object> discoveryData() {
+ public Map<Integer, byte[]> discoveryData() {
return discoData;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
index 7b1704e..a9303f3 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
@@ -54,10 +54,10 @@ public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
private Map<Long, Collection<ClusterNode>> topHist;
/** Discovery data from new node. */
- private Map<Integer, Object> newNodeDiscoData;
+ private Map<Integer, byte[]> newNodeDiscoData;
/** Discovery data from old nodes. */
- private Map<UUID, Map<Integer, Object>> oldNodesDiscoData;
+ private Map<UUID, Map<Integer, byte[]>> oldNodesDiscoData;
/** Start time of the first grid node. */
private final long gridStartTime;
@@ -70,8 +70,9 @@ public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
* @param newNodeDiscoData New Node discovery data.
* @param gridStartTime Start time of the first grid node.
*/
- public TcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
- Map<Integer, Object> newNodeDiscoData,
+ public TcpDiscoveryNodeAddedMessage(UUID creatorNodeId,
+ TcpDiscoveryNode node,
+ Map<Integer, byte[]> newNodeDiscoData,
long gridStartTime)
{
super(creatorNodeId);
@@ -163,21 +164,22 @@ public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
/**
* @return Discovery data from new node.
*/
- public Map<Integer, Object> newNodeDiscoveryData() {
+ public Map<Integer, byte[]> newNodeDiscoveryData() {
return newNodeDiscoData;
}
/**
* @return Discovery data from old nodes.
*/
- public Map<UUID, Map<Integer, Object>> oldNodesDiscoveryData() {
+ public Map<UUID, Map<Integer, byte[]>> oldNodesDiscoveryData() {
return oldNodesDiscoData;
}
/**
+ * @param nodeId Node ID.
* @param discoData Discovery data to add.
*/
- public void addDiscoveryData(UUID nodeId, Map<Integer, Object> discoData) {
+ public void addDiscoveryData(UUID nodeId, Map<Integer, byte[]> discoData) {
// Old nodes disco data may be null if message
// makes more than 1 pass due to stopping of the nodes in topology.
if (oldNodesDiscoData != null)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index 234e3cd..78710fe 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -379,11 +379,14 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, byte[]> collect(UUID nodeId) {
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr) {
// No-op.
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
index b0e22b4..6692046 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
@@ -44,11 +44,14 @@ public class TcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTe
@GridSpiTestConfig
public DiscoverySpiDataExchange getDataExchange() {
return new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, byte[]> collect(UUID nodeId) {
return null;
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr) {
// No-op.
}
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33dbf24b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
index 7898c3d..7b83979 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
@@ -215,11 +215,14 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
discoSpi.setMetricsProvider(createMetricsProvider());
discoSpi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, byte[]> collect(UUID nodeId) {
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr) {
}
});
[09/31] incubator-ignite git commit: #ignite-537: test
Posted by ag...@apache.org.
#ignite-537: test
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e544aaab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e544aaab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e544aaab
Branch: refs/heads/ignite-721
Commit: e544aaab7ae759631cd73b40f745ac23f32b84bc
Parents: c1c1cf9
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Apr 10 15:15:57 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Apr 10 15:15:57 2015 +0300
----------------------------------------------------------------------
.../p2p/GridMultiJvmClassPathSelfTest.java | 109 +++++++++++++++++++
1 file changed, 109 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e544aaab/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java b/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
new file mode 100644
index 0000000..00b61b1
--- /dev/null
+++ b/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.p2p;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.testframework.config.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.concurrent.*;
+
+/**
+ * Test.
+ */
+public class GridMultiJvmClassPathSelfTest extends GridCommonAbstractTest {
+ private static String START = "Start external node";
+
+ public static void main(String[] args) throws Exception {
+ U.setWorkDirectory(null, U.getIgniteHome());
+
+ // Tell our process PID to the wrapper.
+ X.println(GridJavaProcess.PID_MSG_PREFIX + U.jvmPid());
+
+ X.println("Java path: " + System.getProperty("java.class.path"));
+
+ try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
+ X.println(START);
+ U.sleep(10000);
+ }
+ }
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDifferentClassPath() throws Exception {
+ final CountDownLatch killedLatch = new CountDownLatch(2);
+
+ final CountDownLatch readyLatch = new CountDownLatch(2);
+
+ GridJavaProcess proc1 = GridJavaProcess.exec(
+ GridMultiJvmClassPathSelfTest.class, null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Process 1 prints: " + s);
+
+ if (s.startsWith(START))
+ readyLatch.countDown();
+ }
+ },
+ new CA() {
+ @Override public void apply() {
+ info("Process 1 is killed");
+
+ killedLatch.countDown();
+ }
+ },
+ null,
+ null
+ );
+
+ GridJavaProcess proc2 = GridJavaProcess.exec(
+ GridMultiJvmClassPathSelfTest.class, null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Process 2 prints: " + s);
+
+ if (s.contains(START))
+ readyLatch.countDown();
+ }
+ },
+ new CA() {
+ @Override public void apply() {
+ info("Process 2 is killed");
+
+ killedLatch.countDown();
+ }
+ },
+ null,
+ GridTestProperties.getProperty("p2p.uri.cls")
+ );
+
+ readyLatch.await();
+
+ try(Ignite ignite = Ignition.start("examples/config/example-ignite.xml")){
+ proc1.kill();
+ proc2.kill();
+
+ killedLatch.await();
+ }
+ }
+}
[23/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/35537fa0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/35537fa0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/35537fa0
Branch: refs/heads/ignite-721
Commit: 35537fa02b60f404b0f2ecd8620fdc83c7d26a61
Parents: 4957a35
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 22:32:08 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 22:32:08 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/35537fa0/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index b61a402..3301303 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -290,6 +290,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
private ConcurrentLinkedDeque<String> debugLog;
/** Class loaders for event data unmarshalling. */
+ @GridToStringExclude
private transient ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> p2pLdrs = new ConcurrentHashMap<>();
/** {@inheritDoc} */
[19/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f316e9af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f316e9af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f316e9af
Branch: refs/heads/ignite-721
Commit: f316e9afa523a945d8d02886a896fc6add8d83c6
Parents: c85175b
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 20:58:20 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 20:58:20 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f316e9af/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index d9cec3c..bf8cbdb 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -5462,6 +5462,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/** {@inheritDoc} */
@Override protected Class<?> findClass(String name) throws ClassNotFoundException {
+ try {
+ return U.gridClassLoader().loadClass(name);
+ }
+ catch (ClassNotFoundException ignore) {
+ // Ignore.
+ }
+
lock.readLock().lock();
try {
[17/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c85175b7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c85175b7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c85175b7
Branch: refs/heads/ignite-721
Commit: c85175b7ebaf24c0c1cd3519b4c9889ca7efb071
Parents: 876beff
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 20:43:20 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 20:43:20 2015 +0300
----------------------------------------------------------------------
.../spi/discovery/tcp/TcpDiscoverySpi.java | 24 ++++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c85175b7/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 117166f..d9cec3c 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2328,19 +2328,23 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
private Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
Map<Integer, Serializable> data = exchange.collect(nodeId);
- Map<Integer, byte[]> data0 = U.newHashMap(data.size());
+ Map<Integer, byte[]> data0 = null;
- for (Map.Entry<Integer, Serializable> entry : data.entrySet()) {
- try {
- byte[] bytes = marsh.marshal(entry.getValue());
+ if (data != null) {
+ data0 = U.newHashMap(data.size());
- data0.put(entry.getKey(), bytes);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to marshal discovery data " +
- "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+ for (Map.Entry<Integer, Serializable> entry : data.entrySet()) {
+ try {
+ byte[] bytes = marsh.marshal(entry.getValue());
- throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ data0.put(entry.getKey(), bytes);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+
+ throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ }
}
}
[21/31] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-3' into ignite-537
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b9100618
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b9100618
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b9100618
Branch: refs/heads/ignite-721
Commit: b9100618ecdd0626c8942017511589616161631b
Parents: 439af36 c3210d8
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 21:16:40 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 21:16:40 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/igfs/IgfsInputStreamImpl.java | 2 +-
.../ignite/internal/processors/igfs/IgfsOutputStreamImpl.java | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
[04/31] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-3' into ignite-537
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c1c1cf94
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c1c1cf94
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c1c1cf94
Branch: refs/heads/ignite-721
Commit: c1c1cf9433190e2ae944b1559ec94a2c925d7f7b
Parents: 88e1ff8 845787c
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 08:59:33 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 08:59:33 2015 +0300
----------------------------------------------------------------------
DEVNOTES.txt | 4 +-
.../java/org/apache/ignite/IgniteCache.java | 6 ++-
.../processors/cache/GridCacheAdapter.java | 25 +++++++-----
.../distributed/dht/GridDhtLockFuture.java | 3 +-
.../GridCacheAffinityBackupsSelfTest.java | 15 ++++----
.../cache/GridCacheAbstractFullApiSelfTest.java | 13 ++++---
.../GridCacheAbstractIteratorsSelfTest.java | 3 +-
.../cache/GridCacheAbstractSelfTest.java | 10 ++---
.../cache/GridCacheClearAllSelfTest.java | 2 +-
.../cache/GridCacheDeploymentSelfTest.java | 9 +++--
.../GridCachePreloadingEvictionsSelfTest.java | 23 +++++------
.../cache/GridCacheSwapPreloadSelfTest.java | 5 ++-
.../cache/IgniteCachePeekModesAbstractTest.java | 40 ++++++++++----------
.../GridCacheMultiNodeAbstractTest.java | 13 ++++---
.../dht/GridCacheDhtEntrySelfTest.java | 12 +++---
.../dht/GridCacheDhtPreloadUnloadSelfTest.java | 2 +-
.../near/GridCacheNearMultiNodeSelfTest.java | 26 ++++++-------
...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 2 +-
...achePartitionedMultiNodeFullApiSelfTest.java | 6 +--
.../near/IgniteCacheNearReadCommittedTest.java | 4 +-
...CacheReplicatedPreloadLifecycleSelfTest.java | 5 ++-
.../GridCacheReplicatedPreloadSelfTest.java | 23 ++++++-----
.../junits/common/GridCommonAbstractTest.java | 13 ++++++-
...CacheOffheapTieredMultithreadedSelfTest.java | 4 +-
.../cache/ttl/CacheTtlAbstractSelfTest.java | 14 +++----
.../IgniteCacheQuerySelfTestSuite.java | 1 +
26 files changed, 157 insertions(+), 126 deletions(-)
----------------------------------------------------------------------
[10/31] incubator-ignite git commit: Merge branch 'ignite-537' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-537
Posted by ag...@apache.org.
Merge branch 'ignite-537' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/49996e71
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/49996e71
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/49996e71
Branch: refs/heads/ignite-721
Commit: 49996e718443557200de54b3d655c12589258b31
Parents: e544aaa 3ca7c8a
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Apr 10 15:16:38 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Apr 10 15:16:38 2015 +0300
----------------------------------------------------------------------
assembly/release-hadoop.xml | 4 -
bin/ignitevisorcmd.bat | 39 +-
.../examples/MessagingExamplesSelfTest.java | 2 +-
.../java8/examples/BasicExamplesSelfTest.java | 3 +
.../java8/examples/CacheExamplesSelfTest.java | 4 +
.../examples/CheckpointExamplesSelfTest.java | 3 +
.../examples/ClusterGroupExampleSelfTest.java | 3 +-
.../examples/ContinuationExamplesSelfTest.java | 3 +
.../ContinuousMapperExamplesSelfTest.java | 4 +-
.../DeploymentExamplesMultiNodeSelfTest.java | 2 +
.../examples/DeploymentExamplesSelfTest.java | 2 +
.../HibernateL2CacheExampleSelfTest.java | 3 +
.../java8/examples/IgfsExamplesSelfTest.java | 3 +
.../examples/LifecycleExamplesSelfTest.java | 3 +
.../MemcacheRestExamplesMultiNodeSelfTest.java | 2 +
.../examples/MemcacheRestExamplesSelfTest.java | 2 +
.../examples/MessagingExamplesSelfTest.java | 4 +-
.../examples/MonteCarloExamplesSelfTest.java | 3 +
.../examples/SpringBeanExamplesSelfTest.java | 3 +
.../java8/examples/TaskExamplesSelfTest.java | 2 +
.../client/ClientReconnectionSelfTest.java | 67 +--
.../ignite/codegen/MessageCodeGenerator.java | 1 -
modules/core/pom.xml | 2 +-
.../java/org/apache/ignite/IgniteCache.java | 18 +
.../java/org/apache/ignite/IgniteState.java | 2 +-
.../configuration/CacheConfiguration.java | 69 ++-
.../configuration/IgniteConfiguration.java | 35 +-
.../internal/ComputeTaskInternalFuture.java | 2 +-
.../ignite/internal/GridJobExecuteRequest.java | 10 +-
.../ignite/internal/GridJobExecuteResponse.java | 4 +-
.../apache/ignite/internal/GridTaskMessage.java | 30 --
.../ignite/internal/GridTaskSessionRequest.java | 6 +-
.../org/apache/ignite/internal/IgnitionEx.java | 4 +-
.../client/GridClientConfiguration.java | 14 +-
.../GridClientConnectionManagerAdapter.java | 2 +-
.../router/GridTcpRouterConfiguration.java | 6 +-
.../internal/cluster/ClusterGroupAdapter.java | 150 +++++-
.../internal/managers/GridManagerAdapter.java | 4 +-
.../discovery/GridDiscoveryManager.java | 32 +-
.../eventstorage/GridEventStorageManager.java | 4 +-
.../processors/cache/CacheMetricsImpl.java | 7 +-
.../processors/cache/CacheMetricsSnapshot.java | 223 +++++++-
.../processors/cache/GridCacheAdapter.java | 12 +-
.../processors/cache/GridCacheContext.java | 64 ++-
.../cache/GridCacheEvictionManager.java | 6 +-
.../cache/GridCacheExplicitLockSpan.java | 2 +-
.../processors/cache/GridCacheMapEntry.java | 6 +-
.../processors/cache/GridCacheMvcc.java | 2 +-
.../cache/GridCacheMvccCandidate.java | 50 +-
.../processors/cache/GridCacheMvccManager.java | 44 +-
.../processors/cache/GridCacheProcessor.java | 52 +-
.../processors/cache/IgniteCacheProxy.java | 26 +
.../distributed/GridDistributedCacheEntry.java | 12 +-
.../distributed/dht/GridDhtCacheEntry.java | 36 +-
.../distributed/dht/GridDhtLockFuture.java | 15 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 14 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 22 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 2 +
.../distributed/dht/GridDhtTxLocalAdapter.java | 30 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 28 +-
.../dht/atomic/GridDhtAtomicCache.java | 6 +-
.../dht/colocated/GridDhtColocatedCache.java | 35 +-
.../colocated/GridDhtColocatedLockFuture.java | 46 +-
.../GridDhtPartitionsExchangeFuture.java | 39 +-
.../distributed/near/GridNearAtomicCache.java | 2 +-
.../distributed/near/GridNearCacheEntry.java | 10 +-
.../distributed/near/GridNearLockFuture.java | 13 +-
.../near/GridNearTransactionalCache.java | 2 +-
.../near/GridNearTxFinishFuture.java | 8 +-
.../cache/distributed/near/GridNearTxLocal.java | 7 +
.../near/GridNearTxPrepareFuture.java | 122 +++--
.../near/GridNearTxPrepareRequest.java | 64 ++-
.../local/atomic/GridLocalAtomicCache.java | 6 +-
.../cache/query/GridCacheQueryAdapter.java | 2 +-
.../continuous/CacheContinuousQueryManager.java | 2 +-
.../cache/transactions/IgniteTxAdapter.java | 3 +-
.../cache/transactions/IgniteTxHandler.java | 120 ++++-
.../transactions/IgniteTxLocalAdapter.java | 82 +--
.../cache/transactions/IgniteTxManager.java | 7 +
.../continuous/GridContinuousProcessor.java | 25 +-
.../internal/processors/igfs/IgfsAsyncImpl.java | 4 +-
.../ignite/internal/processors/igfs/IgfsEx.java | 4 +-
.../processors/igfs/IgfsFileWorker.java | 180 -------
.../processors/igfs/IgfsFileWorkerBatch.java | 225 ++++----
.../processors/igfs/IgfsFileWorkerTask.java | 32 --
.../internal/processors/igfs/IgfsImpl.java | 150 ++++--
.../internal/processors/igfs/IgfsProcessor.java | 2 +-
.../processors/rest/GridRestProcessor.java | 33 +-
.../security/GridSecurityProcessor.java | 13 +-
.../processors/security/SecurityContext.java | 8 +-
.../security/os/GridOsSecurityProcessor.java | 11 +-
.../processors/task/GridTaskProcessor.java | 9 +-
.../internal/util/future/GridFutureAdapter.java | 20 +-
.../ignite/internal/util/worker/GridWorker.java | 6 +-
.../visor/cache/VisorCacheClearTask.java | 3 +
.../cache/VisorCacheQueryConfiguration.java | 9 -
.../internal/visor/log/VisorLogSearchTask.java | 12 +-
.../node/VisorNodeEventsCollectorTask.java | 3 +
.../node/VisorSegmentationConfiguration.java | 4 +-
.../internal/visor/util/VisorTaskUtils.java | 3 +
.../plugin/security/AuthenticationContext.java | 12 +-
.../security/GridSecurityCredentials.java | 184 -------
.../GridSecurityCredentialsBasicProvider.java | 44 --
.../GridSecurityCredentialsProvider.java | 44 --
.../plugin/security/GridSecurityException.java | 58 --
.../plugin/security/GridSecurityPermission.java | 69 ---
.../security/GridSecurityPermissionSet.java | 66 ---
.../plugin/security/GridSecuritySubject.java | 62 ---
.../security/GridSecuritySubjectType.java | 48 --
.../plugin/security/SecurityCredentials.java | 191 +++++++
.../SecurityCredentialsBasicProvider.java | 44 ++
.../security/SecurityCredentialsProvider.java | 44 ++
.../plugin/security/SecurityException.java | 61 +++
.../plugin/security/SecurityPermission.java | 69 +++
.../plugin/security/SecurityPermissionSet.java | 66 +++
.../ignite/plugin/security/SecuritySubject.java | 62 +++
.../plugin/security/SecuritySubjectType.java | 48 ++
.../segmentation/GridSegmentationPolicy.java | 47 --
.../segmentation/GridSegmentationResolver.java | 64 ---
.../plugin/segmentation/SegmentationPolicy.java | 49 ++
.../segmentation/SegmentationResolver.java | 65 +++
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 4 +-
.../org/apache/ignite/spi/IgniteSpiContext.java | 4 +-
.../spi/discovery/DiscoveryMetricsProvider.java | 10 +
.../spi/discovery/DiscoverySpiDataExchange.java | 9 +-
.../DiscoverySpiNodeAuthenticator.java | 2 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 46 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 539 ++++++++++++-------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 27 +
.../tcp/internal/TcpDiscoveryNode.java | 76 ++-
.../TcpDiscoveryCustomEventMessage.java | 14 +-
.../messages/TcpDiscoveryGetClassRequest.java | 1 +
.../messages/TcpDiscoveryGetClassResponse.java | 3 +
.../messages/TcpDiscoveryHeartbeatMessage.java | 65 +++
.../startup/cmdline/CommandLineStartup.java | 7 +-
.../internal/GridLifecycleAwareSelfTest.java | 2 +-
.../ignite/internal/GridProjectionSelfTest.java | 82 +++
.../ignite/internal/GridStartStopSelfTest.java | 8 +-
.../CacheMetricsForClusterGroupSelfTest.java | 236 ++++++++
.../cache/GridCacheBasicApiAbstractTest.java | 4 +-
...CacheOffHeapMultiThreadedUpdateSelfTest.java | 42 +-
.../GridCacheOffHeapTieredAbstractSelfTest.java | 4 +-
.../cache/GridCacheReloadSelfTest.java | 3 +-
.../GridCacheReturnValueTransferSelfTest.java | 15 +-
.../IgniteTxMultiThreadedAbstractTest.java | 5 +-
...GridCacheQueueMultiNodeAbstractSelfTest.java | 5 +-
.../GridCacheSetAbstractSelfTest.java | 10 +-
.../GridCacheSetFailoverAbstractSelfTest.java | 6 +-
.../distributed/GridCacheEventAbstractTest.java | 16 +-
.../GridCacheNodeFailureAbstractTest.java | 15 +-
.../dht/IgniteCacheLockFailoverSelfTest.java | 156 ++++++
.../dht/IgniteCacheMultiTxLockSelfTest.java | 219 ++++++++
...licatedNearOnlyMultiNodeFullApiSelfTest.java | 2 +-
.../continuous/GridEventConsumeSelfTest.java | 5 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 24 +-
.../tostring/GridToStringBuilderSelfTest.java | 5 +-
.../GridP2PMissedResourceCacheSizeSelfTest.java | 2 +-
.../discovery/AbstractDiscoverySelfTest.java | 4 +-
.../tcp/TcpClientDiscoverySelfTest.java | 5 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 4 +-
.../testframework/GridSpiTestContext.java | 4 +-
.../testframework/junits/GridAbstractTest.java | 6 +-
.../junits/spi/GridSpiAbstractTest.java | 76 +--
.../IgniteCacheMetricsSelfTestSuite.java | 4 +
.../ignite/testsuites/IgniteCacheTestSuite.java | 3 +
.../IgniteSpiDiscoverySelfTestSuite.java | 2 +
...rrentLinkedHashMapMultiThreadedSelfTest.java | 4 +-
.../p2p/startcache/CacheAllNodesFilter.java | 31 ++
.../startcache/CacheConfigP2PStartClient.java | 116 ++++
.../HadoopDefaultMapReducePlannerSelfTest.java | 2 +-
.../GridCacheAbstractFieldsQuerySelfTest.java | 10 +-
.../processors/cache/GridCacheSwapSelfTest.java | 5 +-
...hePartitionedQueryMultiThreadedSelfTest.java | 2 +-
.../cache/IgniteCacheQueryIndexSelfTest.java | 3 +-
.../IgniteCachePartitionedQuerySelfTest.java | 5 +-
.../IgniteCacheReplicatedQuerySelfTest.java | 18 +-
.../processors/cache/GridCacheJtaSelfTest.java | 6 +-
.../http/jetty/GridJettyRestHandler.java | 2 +-
.../p2p/GridP2PUserVersionChangeSelfTest.java | 8 +-
.../ignite/tools/classgen/ClassesGenerator.java | 2 +-
.../ignite/visor/commands/VisorConsole.scala | 19 +
181 files changed, 3892 insertions(+), 2060 deletions(-)
----------------------------------------------------------------------
[05/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b8870305
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b8870305
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b8870305
Branch: refs/heads/ignite-721
Commit: b8870305c74ea5ed489a98de73086e5bb67ff9a3
Parents: c1c1cf9
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 13:16:28 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 14:48:44 2015 +0300
----------------------------------------------------------------------
.../continuous/GridContinuousProcessor.java | 25 +-
.../spi/discovery/DiscoverySpiDataExchange.java | 9 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 11 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 482 ++++++++++++-------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 27 ++
.../TcpDiscoveryCustomEventMessage.java | 14 +-
.../messages/TcpDiscoveryGetClassResponse.java | 3 +
.../continuous/GridEventConsumeSelfTest.java | 2 +-
.../discovery/AbstractDiscoverySelfTest.java | 4 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 4 +-
.../junits/spi/GridSpiAbstractTest.java | 4 +-
11 files changed, 357 insertions(+), 228 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index 99b9c0c..54da8e6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -30,7 +30,6 @@ import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.processors.timeout.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.future.*;
-import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.tostring.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -1560,7 +1559,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
/**
* Discovery data.
*/
- private static class DiscoveryData implements Externalizable, GridPeerDeployAware {
+ private static class DiscoveryData implements Externalizable {
/** */
private static final long serialVersionUID = 0L;
@@ -1578,16 +1577,6 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
// No-op.
}
- @Override
- public Class<?> deployClass() {
- return U.peerDeployAware0(items).deployClass();
- }
-
- @Override
- public ClassLoader classLoader() {
- return U.peerDeployAware0(items).classLoader();
- }
-
/**
* @param nodeId Node ID.
*/
@@ -1627,7 +1616,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
/**
* Discovery data item.
*/
- private static class DiscoveryDataItem implements Externalizable, GridPeerDeployAware {
+ private static class DiscoveryDataItem implements Externalizable {
/** */
private static final long serialVersionUID = 0L;
@@ -1677,16 +1666,6 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
this.interval = interval;
}
- @Override
- public Class<?> deployClass() {
- return prjPred.getClass();
- }
-
- @Override
- public ClassLoader classLoader() {
- return prjPred.getClass().getClassLoader();
- }
-
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
U.writeUuid(out, routineId);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
index 1f64c87..29f6b5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
@@ -38,11 +38,8 @@ public interface DiscoverySpiDataExchange {
/**
* Notifies discovery manager about data received from remote node.
*
- * @param joiningNodeId Joining node ID.
- * @param nodeId Remote node ID for which data is provided.
- * @param data Collection of marshalled discovery data objects from different components.
+ * @param joiningNodeId Remote node ID.
+ * @param data Collection of discovery data objects from different components.
*/
- public void onExchange(UUID joiningNodeId,
- UUID nodeId,
- Map<Integer, Object> data);
+ public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index f613f4a..4a448f2 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -896,11 +896,8 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<UUID, Map<Integer, byte[]>> dataMap = msg.oldNodesDiscoveryData();
if (dataMap != null) {
- for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
-// exchange.onExchange(newNodeId,
-// entry.getKey(),
-// entry.getValue());
- }
+ for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet())
+ onExchange(newNodeId, entry.getKey(), entry.getValue(), null);
}
locNode.setAttributes(node.attributes());
@@ -922,8 +919,8 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
-// if (data != null)
-// exchange.onExchange(newNodeId, newNodeId, data);
+ if (data != null)
+ onExchange(newNodeId, newNodeId, data, null);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3fa6fd1..bc0fec5 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -50,6 +50,7 @@ import java.net.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
+import java.util.concurrent.locks.*;
import static org.apache.ignite.events.EventType.*;
import static org.apache.ignite.internal.IgniteNodeAttributes.*;
@@ -287,6 +288,15 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
private ConcurrentLinkedDeque<String> debugLog;
+ /** */
+ private DeploymentClassLoadersCleaner p2pLdrCleaner;
+
+ /** Class loaders for event data unmarshalling. */
+ private ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> p2pLdrs = new ConcurrentHashMap<>();
+
+ /** Class loader for local data unmarshalling. */
+ private ClassLoader locLdr = U.gridClassLoader();
+
/** {@inheritDoc} */
@IgniteInstanceResource
@Override public void injectResources(Ignite ignite) {
@@ -764,6 +774,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
ipFinderCleaner.start();
}
+ if (ignite.configuration().isPeerClassLoadingEnabled()) {
+ p2pLdrCleaner = new DeploymentClassLoadersCleaner();
+ p2pLdrCleaner.start();
+ }
+
if (log.isDebugEnabled() && !restart)
log.debug(startInfo());
@@ -988,6 +1003,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.interrupt(statsPrinter);
U.join(statsPrinter, log);
+ U.interrupt(p2pLdrCleaner);
+ U.join(p2pLdrCleaner, log);
+
if (ipFinder != null)
ipFinder.close();
@@ -1246,7 +1264,16 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/** {@inheritDoc} */
@Override public void sendCustomEvent(Serializable evt) {
- msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), evt));
+ byte[] msgBytes;
+
+ try {
+ msgBytes = marsh.marshal(evt);
+ }
+ catch (IgniteCheckedException e) {
+ throw new IgniteSpiException("Failed to marshal custom event: " + evt, e);
+ }
+
+ msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), msgBytes));
}
/**
@@ -1377,87 +1404,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
log.debug("Discovery SPI has been connected to topology with order: " + locNode.internalOrder());
}
- /** */
- private GridConcurrentHashSet<ClassLoader> exchangeLdrs = new GridConcurrentHashSet();
-
- /**
- * @param nodeId Node ID>
- * @return Marshalled exchange data.
- * @throws IgniteSpiException If failed.
- */
- protected Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
- boolean p2pEnaled = ignite.configuration().isPeerClassLoadingEnabled();
-
- Map<Integer, Object> data = exchange.collect(nodeId);
-
- Map<Integer, byte[]> data0 = U.newHashMap(data.size());
-
- for (Map.Entry<Integer, Object> entry : data.entrySet()) {
- try {
- byte[] bytes = marsh.marshal(entry.getValue());
-
- data0.put(entry.getKey(), bytes);
-
- if (p2pEnaled) {
- ClassLoader ldr;
-
- if (entry.getValue() instanceof GridPeerDeployAware)
- ldr = ((GridPeerDeployAware)entry.getValue()).classLoader();
- else
- ldr = entry.getValue().getClass().getClassLoader();
-
- log.info("Add loader: " + entry.getValue() + " " + ldr);
-
- if (ldr != null) {
- if (exchangeLdrs.add(ldr))
- log.info("Added loader: " + ldr);
- }
- }
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to marshal discovery data " +
- "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
-
- throw new IgniteSpiException("Failed to marshal discovery data.", e);
- }
- }
-
- return data0;
- }
-
- /**
- * @param joiningNode Joining node.
- * @param nodeId Remote node ID for which data is provided.
- * @param data Collection of marshalled discovery data objects from different components.
- */
- protected void onExchange(TcpDiscoveryNode joiningNode,
- UUID nodeId,
- Map<Integer, byte[]> data) {
- TcpDiscoveryNode node;
-
- if (joiningNode.id().equals(nodeId))
- node = joiningNode;
- else
- node = ring.node(nodeId);
-
- ClassLoader clsLdr = exchangeClassLoader(node);
-
- Map<Integer, Object> data0 = U.newHashMap(data.size());
-
- for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
- try {
- Object compData = marsh.unmarshal(entry.getValue(), clsLdr);
-
- data0.put(entry.getKey(), compData);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to unmarshal discovery data for component: " + entry.getKey(), e);
- }
- }
-
- exchange.onExchange(joiningNode.id(), nodeId, data0);
- }
-
/**
* Tries to send join request message to a random node presenting in topology.
* Address is provided by {@link TcpDiscoveryIpFinder} and message is
@@ -2275,14 +2221,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/**
* @param req Get class request.
+ * @return Get class response.
*/
private TcpDiscoveryGetClassResponse processGetClassRequest(TcpDiscoveryGetClassRequest req) {
assert !F.isEmpty(req.className()) : req;
String rsrc = U.classNameToResourceName(req.className());
- log.info("Get class request: " + req.className() + " " + rsrc);
-
InputStream in = locLdr.getResourceAsStream(rsrc);
byte[] clsBytes = null;
@@ -2559,6 +2504,41 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
/**
+ *
+ */
+ private class DeploymentClassLoadersCleaner extends IgniteSpiThread {
+ /**
+ * Constructor.
+ */
+ private DeploymentClassLoadersCleaner() {
+ super(gridName, "tcp-disco-p2p-ldr-cleaner", log);
+
+ setPriority(threadPri);
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("BusyWait")
+ @Override protected void body() throws InterruptedException {
+ if (log.isDebugEnabled())
+ log.debug("Deployment class loader cleaner has been started.");
+
+ while (!isInterrupted()) {
+ Thread.sleep(5000);
+
+ for (DiscoveryDeploymentClassLoader ldr : p2pLdrs.values()) {
+ if (ring.node(ldr.nodeId()) == null) {
+ ldr.onNodeLeft();
+
+ p2pLdrs.remove(ldr.nodeId(), ldr);
+ }
+ else
+ ldr.closeConnectionIfNotUsed();
+ }
+ }
+ }
+ }
+
+ /**
* Pending messages container.
*/
private static class PendingMessages {
@@ -3489,10 +3469,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
private void processClientReconnectMessage(TcpDiscoveryClientReconnectMessage msg) {
UUID locNodeId = getLocalNodeId();
- boolean isLocalNodeRouter = locNodeId.equals(msg.routerNodeId());
+ boolean isLocNodeRouter = locNodeId.equals(msg.routerNodeId());
if (!msg.verified()) {
- assert isLocalNodeRouter;
+ assert isLocNodeRouter;
msg.verify(locNodeId);
}
@@ -3530,7 +3510,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
else if (log.isDebugEnabled())
log.debug("Reconnecting client node is already failed [nodeId=" + nodeId + ']');
- if (isLocalNodeRouter) {
+ if (isLocNodeRouter) {
ClientMessageWorker wrk = clientMsgWorkers.get(nodeId);
if (wrk != null)
@@ -3676,7 +3656,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
if (data != null)
- onExchange(node, node.id(), data);
+ onExchange(node.id(), node.id(), data, exchangeClassLoader(node, node.id()));
msg.addDiscoveryData(locNodeId, collectExchangeData(node.id()));
}
@@ -3747,8 +3727,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
// Notify outside of synchronized block.
if (dataMap != null) {
- for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet())
- onExchange(node, entry.getKey(), entry.getValue());
+ for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
+ onExchange(node.id(),
+ entry.getKey(),
+ entry.getValue(),
+ exchangeClassLoader(node, entry.getKey()));
+ }
}
}
@@ -4524,13 +4508,27 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Collection<ClusterNode> snapshot = hist.get(msg.topologyVersion());
- if (lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING))
+ if (lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING)) {
+ assert msg.messageBytes() != null;
+
+ TcpDiscoveryNode node = ring.node(msg.creatorNodeId());
+
+ Serializable msgObj;
+
+ try {
+ msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node));
+ }
+ catch (IgniteCheckedException e) {
+ throw new IgniteSpiException("Failed to unmarshal discovery custom message.", e);
+ }
+
lsnr.onDiscovery(DiscoveryCustomEvent.EVT_DISCOVERY_CUSTOM_EVT,
msg.topologyVersion(),
- ring.node(msg.creatorNodeId()),
+ node,
snapshot,
hist,
- msg.message());
+ msgObj);
+ }
}
if (ring.hasRemoteNodes())
@@ -5303,177 +5301,311 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
- /** */
- private ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> ldrs = new ConcurrentHashMap<>();
-
- /** */
- private LocalDeploymentClassLoader locLdr = new LocalDeploymentClassLoader(null);
-
/**
- *
+ * @param node Node created event.
+ * @return Class loader for custom event unmarshalling.
*/
- class LocalDeploymentClassLoader extends ClassLoader {
- public LocalDeploymentClassLoader(ClassLoader parent) {
- super(parent);
- }
-
- @Override
- public InputStream getResourceAsStream(String name) {
- log.info("Local getResourceAsStream: " + name);
-
- for (ClassLoader ldr : exchangeLdrs) {
- InputStream in = ldr.getResourceAsStream(name);
+ @Nullable protected ClassLoader customMessageClassLoader(TcpDiscoveryNode node) {
+ assert ignite != null;
- if (in != null)
- return in;
- }
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
- return super.getResourceAsStream(name);
- }
+ if (node.id().equals(getLocalNodeId()))
+ return locLdr;
- @Override public Class<?> loadClass(String name) throws ClassNotFoundException {
- log.info("Local loadClass: " + name);
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
- for (ClassLoader ldr : exchangeLdrs) {
- try {
- return ldr.loadClass(name);
- }
- catch (ClassNotFoundException ignore) {
- }
- }
+ if (ldr == null)
+ ldr = F.addIfAbsent(p2pLdrs, node.id(), new DiscoveryDeploymentClassLoader(node));
- return super.loadClass(name);
- }
+ return ldr;
}
/**
- * @param nodeId Node ID.
+ * @param joiningNode Joining node.
+ * @param nodeId Remote node provided data.
* @return Class loader for exchange data unmarshalling.
*/
- protected ClassLoader exchangeClassLoader(TcpDiscoveryNode node) {
+ @Nullable protected ClassLoader exchangeClassLoader(TcpDiscoveryNode joiningNode, UUID nodeId) {
+ assert joiningNode != null;
assert ignite != null;
- UUID nodeId = node.id();
-
if (!ignite.configuration().isPeerClassLoadingEnabled())
return null;
if (nodeId.equals(getLocalNodeId()))
return locLdr;
- DiscoveryDeploymentClassLoader ldr = ldrs.get(nodeId);
+ TcpDiscoveryNode node;
+
+ if (joiningNode.id().equals(nodeId))
+ node = joiningNode;
+ else {
+ node = ring.node(nodeId);
+
+ if (node == null) {
+ if (log.isDebugEnabled())
+ log.debug("Node provided exchange data left, will use local class loader " +
+ "for exchange data [nodeId=" + nodeId + ']');
+
+ return locLdr;
+ }
+ }
+
+ if (node.isClient()) // Do not support loading from client nodes.
+ return locLdr;
+
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
if (ldr == null)
- ldr = F.addIfAbsent(ldrs, nodeId, new DiscoveryDeploymentClassLoader(node));
+ ldr = F.addIfAbsent(p2pLdrs, nodeId, new DiscoveryDeploymentClassLoader(node));
return ldr;
}
/**
+ * @param nodeId Node ID.
+ * @return Marshalled exchange data.
+ * @throws IgniteSpiException If failed.
+ */
+ private Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
+ Map<Integer, Object> data = exchange.collect(nodeId);
+
+ Map<Integer, byte[]> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, Object> entry : data.entrySet()) {
+ try {
+ byte[] bytes = marsh.marshal(entry.getValue());
+
+ data0.put(entry.getKey(), bytes);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+
+ throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ }
+ }
+
+ return data0;
+ }
+
+ /**
*
*/
private class DiscoveryDeploymentClassLoader extends ClassLoader {
/** */
- private final TcpDiscoveryNode node;
+ private final UUID nodeId;
+
+ /** */
+ private volatile TcpDiscoveryNode node;
/** */
private Socket sock;
+ /** */
+ private final ReadWriteLock lock = new ReentrantReadWriteLock();
+
/**
* @param node Node.
*/
public DiscoveryDeploymentClassLoader(TcpDiscoveryNode node) {
+ assert !node.isClient();
assert !node.id().equals(getLocalNodeId());
this.node = node;
+
+ nodeId = node.id();
}
- @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
- // log.info("P2p load class: " + name);
+ /**
+ * @return Target node ID.
+ */
+ UUID nodeId() {
+ return nodeId;
+ }
- return super.loadClass(name, resolve);
+ /**
+ * Node left callback.
+ */
+ void onNodeLeft() {
+ lock.writeLock().lock();
+
+ try {
+ if (sock != null) {
+ if (log.isDebugEnabled())
+ log.debug("Closing deployment class loader connection on node left [node=" + nodeId + ']');
+
+ U.closeQuiet(sock);
+
+ sock = null;
+ }
+
+ node = null;
+ }
+ finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ /**
+ * Closes connection if there is no class loading in progress.
+ */
+ void closeConnectionIfNotUsed() {
+ if (lock.writeLock().tryLock()) {
+ try {
+ if (sock != null) {
+ if (log.isDebugEnabled())
+ log.debug("Closing idle deployment class loader connection [node=" + nodeId + ']');
+
+ U.closeQuiet(sock);
+
+ sock = null;
+ }
+ }
+ finally {
+ lock.writeLock().unlock();
+ }
+ }
}
/** {@inheritDoc} */
@Override protected Class<?> findClass(String name) throws ClassNotFoundException {
- log.info("P2p find class: " + name);
+ if (node == null)
+ throw new ClassNotFoundException("Failed to load class, peer node left " +
+ "[cls=" +name + ", node=" + nodeId + ']');
- TcpDiscoveryGetClassResponse res = requestClass(name);
+ lock.readLock().lock();
- if (res.error() != null)
- throw new ClassNotFoundException(res.error());
+ try {
+ TcpDiscoveryGetClassResponse res = requestClass(name);
- log.info("P2p loaded: " + name);
+ if (res == null)
+ throw new ClassNotFoundException("Failed to load class, can not connect to peer node " +
+ "[cls=" + name + ", node=" + nodeId + ']');
- assert res.classBytes() != null;
+ if (res.error() != null)
+ throw new ClassNotFoundException(res.error());
- Class<?> cls = defineClass(name, res.classBytes(), 0, res.classBytes().length);
+ assert res.classBytes() != null;
- return cls;
+ return defineClass(name, res.classBytes(), 0, res.classBytes().length);
+ }
+ finally {
+ lock.readLock().unlock();
+ }
}
/**
* @param name Class name.
- * @return Class response.
- * @throws ClassNotFoundException If request failed.
+ * @return Class response or {@code null} if failed to connect.
*/
- private TcpDiscoveryGetClassResponse requestClass(String name) throws ClassNotFoundException {
- sock = connect();
+ @Nullable private synchronized TcpDiscoveryGetClassResponse requestClass(String name) {
+ TcpDiscoveryGetClassRequest msg = new TcpDiscoveryGetClassRequest(getLocalNodeId(), name);
- if (sock == null)
- throw new ClassNotFoundException("Failed to load class, can not connect to peer node " +
- "[cls=" + name + ", node=" + nodeId + ']');
+ for (int i = 0; i < reconCnt; i++) {
+ if (sock == null) {
+ TcpDiscoveryNode node0 = node;
- try {
- writeToSocket(sock, new TcpDiscoveryGetClassRequest(getLocalNodeId(), name));
+ if (node0 == null)
+ return null; // Node left.
- TcpDiscoveryGetClassResponse res = readMessage(sock, null, netTimeout);
+ sock = connect(node0);
- return res;
- }
- catch (IOException | IgniteCheckedException e) {
- e.printStackTrace();
+ if (sock == null)
+ break;
+ }
+
+ try {
+ return request(sock, msg);
+ }
+ catch (IOException | IgniteCheckedException e) {
+ U.closeQuiet(sock);
- throw new ClassNotFoundException("Failed to load class: " + name, e);
+ sock = null;
+ }
}
+
+ node = null; // Consider node failed.
+
+ p2pLdrs.remove(nodeId, this);
+
+ return null;
}
- private Socket connect() {
- if (sock == null) {
- for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
- sock = connect(addr);
+ /**
+ * @param sock Socket.
+ * @param msg Message.
+ * @return Response.
+ * @throws IOException If request failed.
+ * @throws IgniteCheckedException If request failed.
+ */
+ private TcpDiscoveryGetClassResponse request(Socket sock, TcpDiscoveryGetClassRequest msg)
+ throws IOException, IgniteCheckedException
+ {
+ long tstamp = U.currentTimeMillis();
- if (sock != null)
- break;
- }
+ writeToSocket(sock, msg);
+
+ stats.onMessageSent(msg, U.currentTimeMillis() - tstamp);
+
+ TcpDiscoveryGetClassResponse res = readMessage(sock, null, netTimeout);
+
+ stats.onMessageReceived(res);
+
+ return res;
+ }
+
+ /**
+ * @param node Node.
+ * @return Socket or {@code null} if failed to connect.
+ */
+ private Socket connect(TcpDiscoveryNode node) {
+ Socket sock = null;
+
+ for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
+ sock = connect(addr);
+
+ if (sock != null)
+ break;
}
return sock;
}
+ /**
+ * @param addr Address.
+ * @return Socket or {@code null} if failed to connect.
+ */
private Socket connect(InetSocketAddress addr) {
- UUID locNodeId = getLocalNodeId();
-
- Socket sock = null;
+ TcpDiscoveryHandshakeRequest req = new TcpDiscoveryHandshakeRequest(getLocalNodeId());
for (int i = 0; i < reconCnt; i++) {
+ Socket sock = null;
+
+ long tstamp = U.currentTimeMillis();
+
try {
sock = openSocket(addr);
- writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
+ writeToSocket(sock, req);
TcpDiscoveryHandshakeResponse res = readMessage(sock, null, netTimeout);
- break;
+ if (!res.creatorNodeId().equals(nodeId))
+ return null;
+
+ stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
+
+ return sock;
}
catch (IOException | IgniteCheckedException e) {
- e.printStackTrace();
-
U.closeQuiet(sock);
}
}
- return sock;
+ return null;
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 9cde198..db75051 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -744,6 +744,33 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
/**
+ * @param joiningNodeID Joining node ID.
+ * @param nodeId Remote node ID for which data is provided.
+ * @param data Collection of marshalled discovery data objects from different components.
+ * @param clsLdr Class loader for discovery data unmarshalling.
+ */
+ protected void onExchange(UUID joiningNodeID,
+ UUID nodeId,
+ Map<Integer, byte[]> data,
+ ClassLoader clsLdr)
+ {
+ Map<Integer, Object> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
+ try {
+ Object compData = marsh.unmarshal(entry.getValue(), clsLdr);
+
+ data0.put(entry.getKey(), compData);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to unmarshal discovery data for component: " + entry.getKey(), e);
+ }
+ }
+
+ exchange.onExchange(joiningNodeID, nodeId, data0);
+ }
+
+ /**
* Handles sockets timeouts.
*/
protected class SocketTimeoutWorker extends IgniteSpiThread {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
index 234efaa..6f78953 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
@@ -17,7 +17,6 @@
package org.apache.ignite.spi.discovery.tcp.messages;
-import java.io.*;
import java.util.*;
/**
@@ -29,21 +28,22 @@ public class TcpDiscoveryCustomEventMessage extends TcpDiscoveryAbstractMessage
private static final long serialVersionUID = 0L;
/** */
- private final Serializable msg;
+ private final byte[] msgBytes;
/**
* @param creatorNodeId Creator node id.
+ * @param msgBytes Serialized message.
*/
- public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, Serializable msg) {
+ public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, byte[] msgBytes) {
super(creatorNodeId);
- this.msg = msg;
+ this.msgBytes = msgBytes;
}
/**
- * @return Message.
+ * @return Serialized message.
*/
- public Serializable message() {
- return msg;
+ public byte[] messageBytes() {
+ return msgBytes;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
index b1afe1c..d377aee 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
@@ -26,6 +26,9 @@ import java.util.*;
*/
public class TcpDiscoveryGetClassResponse extends TcpDiscoveryAbstractMessage {
/** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
private String errMsg;
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
index 4bd2901..4273c9d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
@@ -763,7 +763,7 @@ public class GridEventConsumeSelfTest extends GridCommonAbstractTest implements
* @throws Exception If failed.
*/
// TODO: GG-6730
- public void testNodeJoinWithP2P() throws Exception {
+ public void _testNodeJoinWithP2P() throws Exception {
final Collection<UUID> nodeIds = new HashSet<>();
final AtomicInteger cnt = new AtomicInteger();
final CountDownLatch latch = new CountDownLatch(GRID_CNT + 1);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index 91d3514..234e3cd 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -383,9 +383,7 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId,
- UUID nodeId,
- Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
// No-op.
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
index 058d908..b0e22b4 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
@@ -48,9 +48,7 @@ public class TcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTe
return null;
}
- @Override public void onExchange(UUID joiningNodeId,
- UUID nodeId,
- Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
// No-op.
}
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8870305/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
index 82f3d6c..7898c3d 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
@@ -219,9 +219,7 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId,
- UUID nodeId,
- Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
}
});
[14/31] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-3' into ignite-537
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0b14239d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0b14239d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0b14239d
Branch: refs/heads/ignite-721
Commit: 0b14239d611c2150740fcbb97dfda5ca9478d15b
Parents: 9f44423 baaf8bb
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 20:06:30 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 20:06:30 2015 +0300
----------------------------------------------------------------------
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
modules/clients/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
.../configuration/CacheConfiguration.java | 7 +-
.../query/GridQueryFieldMetadata.java | 2 +-
.../processors/query/GridQueryProcessor.java | 89 +++---
.../visor/cache/VisorCacheConfiguration.java | 2 +-
.../internal/visor/cache/VisorCacheMetrics.java | 2 +-
.../visor/node/VisorNodeDataCollectorTask.java | 1 +
.../internal/visor/query/VisorQueryArg.java | 82 ++++++
.../visor/query/VisorQueryCleanupTask.java | 10 +-
.../internal/visor/query/VisorQueryCursor.java | 96 +++++++
.../internal/visor/query/VisorQueryField.java | 66 ++++-
.../internal/visor/query/VisorQueryJob.java | 174 ++++++++++++
.../visor/query/VisorQueryNextPageTask.java | 75 +++--
.../internal/visor/query/VisorQueryResult.java | 6 +-
.../visor/query/VisorQueryResultEx.java | 16 +-
.../internal/visor/query/VisorQueryTask.java | 281 ++-----------------
.../internal/visor/query/VisorQueryUtils.java | 55 ++--
.../ignite/startup/BasicWarmupClosure.java | 9 +-
.../resources/META-INF/classnames.properties | 36 ++-
.../cache/IgniteWarmupClosureSelfTest.java | 82 ++++++
.../IgniteFairAffinityDynamicCacheSelfTest.java | 96 +++++++
.../ignite/testsuites/IgniteCacheTestSuite.java | 5 +
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
.../processors/query/h2/IgniteH2Indexing.java | 17 +-
.../query/h2/sql/BaseH2CompareQueryTest.java | 20 ++
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
.../commands/cache/VisorCacheScanCommand.scala | 13 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 48 ++--
53 files changed, 878 insertions(+), 468 deletions(-)
----------------------------------------------------------------------
[26/31] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-537' into ignite-sprint-3
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-537' into ignite-sprint-3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/59537866
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/59537866
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/59537866
Branch: refs/heads/ignite-721
Commit: 59537866520271d27f8191690932e40985970a87
Parents: 7bb7586 98587c6
Author: sboikov <se...@inria.fr>
Authored: Sat Apr 11 00:51:15 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Sat Apr 11 00:51:15 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/GridComponent.java | 5 +-
.../ignite/internal/GridPluginComponent.java | 5 +-
.../internal/managers/GridManagerAdapter.java | 4 +-
.../discovery/GridDiscoveryManager.java | 10 +-
.../processors/GridProcessorAdapter.java | 5 +-
.../processors/cache/GridCacheProcessor.java | 4 +-
.../continuous/GridContinuousProcessor.java | 4 +-
.../plugin/IgnitePluginProcessor.java | 13 +-
.../ignite/internal/util/GridJavaProcess.java | 38 +-
.../apache/ignite/plugin/PluginProvider.java | 5 +-
.../spi/discovery/DiscoverySpiDataExchange.java | 5 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 14 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 474 +++++++++++++++++--
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 27 ++
.../tcp/messages/TcpDiscoveryClassRequest.java | 55 +++
.../tcp/messages/TcpDiscoveryClassResponse.java | 76 +++
.../TcpDiscoveryCustomEventMessage.java | 23 +-
.../TcpDiscoveryJoinRequestMessage.java | 6 +-
.../messages/TcpDiscoveryNodeAddedMessage.java | 16 +-
.../cache/CacheConfigurationP2PTest.java | 122 +++++
.../cache/CacheConfigurationP2PTestServer.java | 63 +++
.../continuous/GridEventConsumeSelfTest.java | 3 +-
.../discovery/AbstractDiscoverySelfTest.java | 4 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 5 +-
.../junits/spi/GridSpiAbstractTest.java | 4 +-
.../p2p/startcache/CacheAllNodesFilter.java | 31 ++
.../CacheConfigurationP2PTestClient.java | 155 ++++++
27 files changed, 1082 insertions(+), 94 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/59537866/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
[30/31] incubator-ignite git commit: Merge branch 'ignite-sprint-3'
of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-721
Posted by ag...@apache.org.
Merge branch 'ignite-sprint-3' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-721
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c0085a30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c0085a30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c0085a30
Branch: refs/heads/ignite-721
Commit: c0085a30eb350e0202879fd4443d6dcf716cd7db
Parents: 2d3eac7 df1fbef
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Sat Apr 11 00:44:41 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Sat Apr 11 00:44:41 2015 -0700
----------------------------------------------------------------------
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
modules/clients/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
.../apache/ignite/internal/GridComponent.java | 5 +-
.../ignite/internal/GridPluginComponent.java | 5 +-
.../internal/managers/GridManagerAdapter.java | 4 +-
.../discovery/GridDiscoveryManager.java | 10 +-
.../processors/GridProcessorAdapter.java | 5 +-
.../processors/cache/GridCacheProcessor.java | 4 +-
.../continuous/GridContinuousProcessor.java | 4 +-
.../processors/igfs/IgfsInputStreamImpl.java | 2 +-
.../processors/igfs/IgfsOutputStreamImpl.java | 6 +-
.../plugin/IgnitePluginProcessor.java | 13 +-
.../ignite/internal/util/GridJavaProcess.java | 38 +-
.../internal/visor/query/VisorQueryTask.java | 4 +-
.../apache/ignite/plugin/PluginProvider.java | 5 +-
.../spi/discovery/DiscoverySpiDataExchange.java | 5 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 10 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 479 +++++++++++++++++--
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 27 ++
.../tcp/internal/TcpDiscoveryNode.java | 12 +-
.../tcp/messages/TcpDiscoveryClassRequest.java | 55 +++
.../tcp/messages/TcpDiscoveryClassResponse.java | 76 +++
.../TcpDiscoveryCustomEventMessage.java | 23 +-
.../TcpDiscoveryJoinRequestMessage.java | 6 +-
.../messages/TcpDiscoveryNodeAddedMessage.java | 16 +-
.../CacheMetricsForClusterGroupSelfTest.java | 18 +-
.../continuous/GridEventConsumeSelfTest.java | 3 +-
.../discovery/AbstractDiscoverySelfTest.java | 4 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 5 +-
.../junits/spi/GridSpiAbstractTest.java | 4 +-
modules/extdata/p2p/pom.xml | 2 +-
.../p2p/startcache/CacheAllNodesFilter.java | 31 ++
.../CacheConfigurationP2PTestClient.java | 114 +++++
.../tests/p2p/startcache/Organization1.java | 52 ++
.../tests/p2p/startcache/Organization2.java | 52 ++
modules/extdata/uri/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
.../cache/CacheConfigurationP2PTest.java | 177 +++++++
.../cache/CacheConfigurationP2PTestServer.java | 49 ++
.../IgniteCacheWithIndexingTestSuite.java | 2 +
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 2 +-
64 files changed, 1248 insertions(+), 135 deletions(-)
----------------------------------------------------------------------
[13/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9f44423c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9f44423c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9f44423c
Branch: refs/heads/ignite-721
Commit: 9f44423cd819f76e636aad82bb777253b56db412
Parents: 9837a4a
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 20:06:07 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 20:06:07 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9f44423c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 7da004a..82a2e59 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -5504,7 +5504,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
- p2pLdrs.remove(nodeId, this);
+ p2pLdrs.remove(node.id(), this);
return null;
}
@@ -5568,7 +5568,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
TcpDiscoveryHandshakeResponse res = readMessage(sock, null, netTimeout);
- if (!res.creatorNodeId().equals(nodeId))
+ if (!res.creatorNodeId().equals(node.id()))
return null;
stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
[28/31] incubator-ignite git commit: # ignite-sprint-3 reverted
ignoring disovery data exchange for daemon nodes (was done in ignite-537)
Posted by ag...@apache.org.
# ignite-sprint-3 reverted ignoring disovery data exchange for daemon nodes (was done in ignite-537)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/46d1369c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/46d1369c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/46d1369c
Branch: refs/heads/ignite-721
Commit: 46d1369c2fb17efec325793ced87276b8be98450
Parents: 5953786
Author: sboikov <se...@inria.fr>
Authored: Sat Apr 11 05:58:13 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Sat Apr 11 06:53:57 2015 +0300
----------------------------------------------------------------------
.../discovery/tcp/TcpClientDiscoverySpi.java | 4 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 26 +--
.../cache/CacheConfigurationP2PTest.java | 122 -------------
.../cache/CacheConfigurationP2PTestServer.java | 63 -------
.../CacheConfigurationP2PTestClient.java | 75 ++------
.../tests/p2p/startcache/Organization1.java | 52 ++++++
.../tests/p2p/startcache/Organization2.java | 52 ++++++
.../cache/CacheConfigurationP2PTest.java | 177 +++++++++++++++++++
.../cache/CacheConfigurationP2PTestServer.java | 49 +++++
.../IgniteCacheWithIndexingTestSuite.java | 2 +
10 files changed, 364 insertions(+), 258 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 312b940..2ab8e8f 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -900,7 +900,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<UUID, Map<Integer, byte[]>> dataMap = msg.oldNodesDiscoveryData();
- if (!locNode.isDaemon() && dataMap != null) {
+ if (dataMap != null) {
for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet())
onExchange(newNodeId, entry.getKey(), entry.getValue(), null);
}
@@ -924,7 +924,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
- if (!locNode.isDaemon() && data != null)
+ if (data != null)
onExchange(newNodeId, newNodeId, data, null);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index e1b1a92..81c608a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2211,7 +2211,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param req Get class request.
* @return Get class response.
*/
- private TcpDiscoveryClassResponse processGetClassRequest(TcpDiscoveryClassRequest req) {
+ private TcpDiscoveryClassResponse processClassRequest(TcpDiscoveryClassRequest req) {
assert !F.isEmpty(req.className()) : req;
String rsrc = U.classNameToResourceName(req.className());
@@ -3722,7 +3722,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
- if (!locNode.isDaemon() && data != null)
+ if (data != null)
onExchange(node.id(), node.id(), data, exchangeClassLoader(node, node.id()));
msg.addDiscoveryData(locNodeId, collectExchangeData(node.id()));
@@ -3793,7 +3793,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
// Notify outside of synchronized block.
- if (!locNode.isDaemon() && dataMap != null) {
+ if (dataMap != null) {
for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
onExchange(node.id(),
entry.getKey(),
@@ -4594,7 +4594,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Collection<ClusterNode> snapshot = hist.get(msg.topologyVersion());
- if (!locNode.isDaemon() && lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING)) {
+ if (lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING)) {
assert msg.messageBytes() != null;
TcpDiscoveryNode node = ring.node(msg.creatorNodeId());
@@ -4604,17 +4604,17 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
try {
if (msgObj == null)
msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node));
+
+ lsnr.onDiscovery(DiscoveryCustomEvent.EVT_DISCOVERY_CUSTOM_EVT,
+ msg.topologyVersion(),
+ node,
+ snapshot,
+ hist,
+ msgObj);
}
catch (IgniteCheckedException e) {
- throw new IgniteSpiException("Failed to unmarshal discovery custom message.", e);
+ U.error(log, "Failed to unmarshal discovery custom message.", e);
}
-
- lsnr.onDiscovery(DiscoveryCustomEvent.EVT_DISCOVERY_CUSTOM_EVT,
- msg.topologyVersion(),
- node,
- snapshot,
- hist,
- msgObj);
}
}
@@ -5091,7 +5091,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
continue;
}
else if (msg instanceof TcpDiscoveryClassRequest) {
- TcpDiscoveryClassResponse res = processGetClassRequest((TcpDiscoveryClassRequest)msg);
+ TcpDiscoveryClassResponse res = processClassRequest((TcpDiscoveryClassRequest) msg);
writeToSocket(sock, res);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
deleted file mode 100644
index 96b124c..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import java.util.concurrent.*;
-
-import static java.util.concurrent.TimeUnit.*;
-
-/**
- *
- */
-public class CacheConfigurationP2PTest extends GridCommonAbstractTest {
- /** */
- public static final String NODE_START_MSG = "Test external node started";
-
- /** */
- private static final String CLIENT_CLS_NAME =
- "org.apache.ignite.tests.p2p.startcache.CacheConfigurationP2PTestClient";
-
- /**
- * @throws Exception If failed.
- */
- public void testCacheConfigurationP2P() throws Exception {
- final CountDownLatch srvsReadyLatch = new CountDownLatch(2);
-
- final CountDownLatch clientReadyLatch = new CountDownLatch(1);
-
- GridJavaProcess node1 = null;
- GridJavaProcess node2 = null;
- GridJavaProcess clientNode = null;
-
- try {
- node1 = GridJavaProcess.exec(
- CacheConfigurationP2PTestServer.class.getName(), null,
- log,
- new CI1<String>() {
- @Override public void apply(String s) {
- info("Server node1: " + s);
-
- if (s.contains(NODE_START_MSG))
- srvsReadyLatch.countDown();
- }
- },
- null,
- null,
- null
- );
-
- node2 = GridJavaProcess.exec(
- CacheConfigurationP2PTestServer.class.getName(), null,
- log,
- new CI1<String>() {
- @Override public void apply(String s) {
- info("Server node2: " + s);
-
- if (s.contains(NODE_START_MSG))
- srvsReadyLatch.countDown();
- }
- },
- null,
- null,
- null
- );
-
- assertTrue(srvsReadyLatch.await(60, SECONDS));
-
- String str = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/";
-
- clientNode = GridJavaProcess.exec(
- CLIENT_CLS_NAME, null,
- log,
- new CI1<String>() {
- @Override public void apply(String s) {
- info("Client node: " + s);
-
- if (s.contains(NODE_START_MSG))
- clientReadyLatch.countDown();
- }
- },
- null,
- null,
- str
- );
-
- assertTrue(clientReadyLatch.await(60, SECONDS));
-
- int exitCode = clientNode.getProcess().waitFor();
-
- assertEquals("Unexpected exit code", 0, exitCode);
- }
- finally {
- if (node1 != null)
- node1.killProcess();
-
- if (node2 != null)
- node2.killProcess();
-
- if (clientNode != null)
- clientNode.killProcess();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
deleted file mode 100644
index 490f951..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-
-import java.util.*;
-
-/**
- *
- */
-public class CacheConfigurationP2PTestServer {
- /**
- * @param args Arguments.
- * @throws Exception If failed.
- */
- public static void main(String[] args) throws Exception {
- System.out.println("Starting test server node.");
-
- IgniteConfiguration cfg = new IgniteConfiguration();
-
- cfg.setPeerClassLoadingEnabled(true);
-
- cfg.setLocalHost("127.0.0.1");
-
- TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
- TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
-
- ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
-
- disco.setIpFinder(ipFinder);
-
- cfg.setDiscoverySpi(disco);
-
- U.setWorkDirectory(null, U.getIgniteHome());
-
- try (Ignite ignite = Ignition.start(cfg)) {
- System.out.println(CacheConfigurationP2PTest.NODE_START_MSG);
-
- U.sleep(Long.MAX_VALUE);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
index 0634e5f..be3f3bc 100644
--- a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
@@ -18,13 +18,12 @@
package org.apache.ignite.tests.p2p.startcache;
import org.apache.ignite.*;
-import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.cache.query.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import java.io.*;
import java.util.*;
/**
@@ -61,7 +60,7 @@ public class CacheConfigurationP2PTestClient {
int nodes = ignite.cluster().nodes().size();
- if (nodes != 3)
+ if (nodes != 4)
throw new Exception("Unexpected nodes number: " + nodes);
CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
@@ -79,6 +78,11 @@ public class CacheConfigurationP2PTestClient {
for (int i = 0; i < 500; i++)
cache1.put(i, new Organization1("org-" + i));
+ SqlQuery<Integer, Organization1> qry1 = new SqlQuery<>(Organization1.class, "_key >= 0");
+
+ if (cache1.query(qry1).getAll().isEmpty())
+ throw new Exception("Query failed.");
+
System.out.println("Sleep some time.");
Thread.sleep(5000); // Sleep some time to wait when connection of p2p loader is closed.
@@ -89,67 +93,22 @@ public class CacheConfigurationP2PTestClient {
ccfg2.setName("cache2");
- ccfg2.setIndexedTypes(Integer.class, Organization1.class);
+ ccfg2.setIndexedTypes(Integer.class, Organization2.class);
IgniteCache<Integer, Organization2> cache2 = ignite.createCache(ccfg2);
- }
- }
- /**
- * Organization class.
- */
- private static class Organization1 implements Serializable {
- /** Organization ID (indexed). */
- @QuerySqlField(index = true)
- private UUID id;
-
- /** Organization name (indexed). */
- @QuerySqlField(index = true)
- private String name;
-
- /**
- * Create organization.
- *
- * @param name Organization name.
- */
- Organization1(String name) {
- id = UUID.randomUUID();
-
- this.name = name;
- }
+ for (int i = 0; i < 500; i++)
+ cache2.put(i, new Organization2("org-" + i));
- /** {@inheritDoc} */
- @Override public String toString() {
- return "Organization [id=" + id + ", name=" + name + ']';
- }
- }
+ SqlQuery<Integer, Organization2> qry2 = new SqlQuery<>(Organization2.class, "_key >= 0");
- /**
- * Organization class.
- */
- private static class Organization2 implements Serializable {
- /** Organization ID (indexed). */
- @QuerySqlField(index = true)
- private UUID id;
-
- /** Organization name (indexed). */
- @QuerySqlField(index = true)
- private String name;
-
- /**
- * Create organization.
- *
- * @param name Organization name.
- */
- Organization2(String name) {
- id = UUID.randomUUID();
-
- this.name = name;
- }
+ if (cache2.query(qry2).getAll().isEmpty())
+ throw new Exception("Query failed.");
+
+ cache1.close();
- /** {@inheritDoc} */
- @Override public String toString() {
- return "Organization [id=" + id + ", name=" + name + ']';
+ cache2.close();
}
}
+
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization1.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization1.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization1.java
new file mode 100644
index 0000000..9c371f1
--- /dev/null
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization1.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.tests.p2p.startcache;
+
+import org.apache.ignite.cache.query.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Organization class.
+ */
+class Organization1 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization1(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization1 [id=" + id + ", name=" + name + ']';
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization2.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization2.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization2.java
new file mode 100644
index 0000000..e44ce97
--- /dev/null
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/Organization2.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.tests.p2p.startcache;
+
+import org.apache.ignite.cache.query.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Organization class.
+ */
+class Organization2 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization2(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization2 [id=" + id + ", name=" + name + ']';
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
new file mode 100644
index 0000000..8f0f4ca
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+
+import static java.util.concurrent.TimeUnit.*;
+
+/**
+ *
+ */
+public class CacheConfigurationP2PTest extends GridCommonAbstractTest {
+ /** */
+ public static final String NODE_START_MSG = "Test external node started";
+
+ /** */
+ private static final String CLIENT_CLS_NAME =
+ "org.apache.ignite.tests.p2p.startcache.CacheConfigurationP2PTestClient";
+
+ /**
+ * @return Configuration.
+ */
+ static IgniteConfiguration createConfiguration() {
+ IgniteConfiguration cfg = new IgniteConfiguration();
+
+ cfg.setPeerClassLoadingEnabled(true);
+
+ cfg.setLocalHost("127.0.0.1");
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ disco.setIpFinderCleanFrequency(1000);
+
+ TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
+
+ ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
+
+ disco.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(disco);
+
+ return cfg;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testCacheConfigurationP2P() throws Exception {
+ try (Ignite ignite = Ignition.start(createConfiguration())) {
+ final CountDownLatch srvsReadyLatch = new CountDownLatch(2);
+
+ final CountDownLatch clientReadyLatch = new CountDownLatch(1);
+
+ GridJavaProcess node1 = null;
+ GridJavaProcess node2 = null;
+ GridJavaProcess clientNode = null;
+
+ Collection<String> jvmArgs = Arrays.asList("-ea", "-DIGNITE_QUIET=false");
+
+ try {
+ node1 = GridJavaProcess.exec(
+ CacheConfigurationP2PTestServer.class.getName(),
+ null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Server node1: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ srvsReadyLatch.countDown();
+ }
+ },
+ null,
+ jvmArgs,
+ null
+ );
+
+ node2 = GridJavaProcess.exec(
+ CacheConfigurationP2PTestServer.class.getName(), null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Server node2: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ srvsReadyLatch.countDown();
+ }
+ },
+ null,
+ jvmArgs,
+ null
+ );
+
+ assertTrue(srvsReadyLatch.await(60, SECONDS));
+
+ String cp = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/";
+
+ clientNode = GridJavaProcess.exec(
+ CLIENT_CLS_NAME, null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Client node: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ clientReadyLatch.countDown();
+ }
+ },
+ null,
+ jvmArgs,
+ cp
+ );
+
+ assertTrue(clientReadyLatch.await(60, SECONDS));
+
+ int exitCode = clientNode.getProcess().waitFor();
+
+ assertEquals("Unexpected exit code", 0, exitCode);
+
+ node1.killProcess();
+ node2.killProcess();
+
+ final DiscoverySpi spi = ignite.configuration().getDiscoverySpi();
+
+ boolean wait = GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ Map p2pLdrs = GridTestUtils.getFieldValue(spi, "p2pLdrs");
+
+ log.info("p2pLdrs: " + p2pLdrs.size());
+
+ return p2pLdrs.isEmpty();
+ }
+ }, 10_000);
+
+ assertTrue(wait);
+ }
+ finally {
+ if (node1 != null)
+ node1.killProcess();
+
+ if (node2 != null)
+ node2.killProcess();
+
+ if (clientNode != null)
+ clientNode.killProcess();
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
new file mode 100644
index 0000000..738f7cb
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class CacheConfigurationP2PTestServer {
+ /**
+ * @param args Arguments.
+ * @throws Exception If failed.
+ */
+ public static void main(String[] args) throws Exception {
+ System.out.println("Starting test server node.");
+
+ IgniteConfiguration cfg = CacheConfigurationP2PTest.createConfiguration();
+
+ U.setWorkDirectory(null, U.getIgniteHome());
+
+ try (Ignite ignite = Ignition.start(cfg)) {
+ System.out.println(CacheConfigurationP2PTest.NODE_START_MSG);
+
+ U.sleep(Long.MAX_VALUE);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46d1369c/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheWithIndexingTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheWithIndexingTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheWithIndexingTestSuite.java
index ba6fe36..a2ccc82 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheWithIndexingTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheWithIndexingTestSuite.java
@@ -46,6 +46,8 @@ public class IgniteCacheWithIndexingTestSuite extends TestSuite {
suite.addTestSuite(CacheTtlOnheapAtomicLocalSelfTest.class);
suite.addTestSuite(CacheTtlOnheapAtomicPartitionedSelfTest.class);
+ suite.addTestSuite(CacheConfigurationP2PTest.class);
+
return suite;
}
}
[29/31] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-3' into ignite-sprint-3
Posted by ag...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-3' into ignite-sprint-3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/df1fbef1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/df1fbef1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/df1fbef1
Branch: refs/heads/ignite-721
Commit: df1fbef13774cf57c165023255da6b4d3ddaa22d
Parents: 46d1369 1a5990c
Author: sboikov <se...@inria.fr>
Authored: Sat Apr 11 07:02:03 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Sat Apr 11 07:02:03 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/internal/visor/query/VisorQueryTask.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
[11/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d25627c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d25627c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d25627c9
Branch: refs/heads/ignite-721
Commit: d25627c9af1038c7c7c6a573fa0b39ccd48dceb1
Parents: 49996e7
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 16:16:29 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 16:16:29 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/GridComponent.java | 5 +-
.../ignite/internal/GridPluginComponent.java | 5 +-
.../internal/managers/GridManagerAdapter.java | 4 +-
.../discovery/GridDiscoveryManager.java | 10 +-
.../processors/GridProcessorAdapter.java | 5 +-
.../processors/cache/GridCacheProcessor.java | 4 +-
.../continuous/GridContinuousProcessor.java | 4 +-
.../plugin/IgnitePluginProcessor.java | 13 +-
.../apache/ignite/plugin/PluginProvider.java | 5 +-
.../spi/discovery/DiscoverySpiDataExchange.java | 5 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 4 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 364 ++++++++-----------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 4 +-
.../tcp/messages/TcpDiscoveryClassRequest.java | 55 +++
.../tcp/messages/TcpDiscoveryClassResponse.java | 76 ++++
.../TcpDiscoveryCustomEventMessage.java | 7 +
.../messages/TcpDiscoveryGetClassRequest.java | 48 ---
.../messages/TcpDiscoveryGetClassResponse.java | 70 ----
.../discovery/AbstractDiscoverySelfTest.java | 4 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 5 +-
.../junits/spi/GridSpiAbstractTest.java | 4 +-
.../startcache/CacheConfigP2PStartClient.java | 38 +-
22 files changed, 363 insertions(+), 376 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java b/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
index 9f08d6e..fb227cd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.spi.*;
import org.jetbrains.annotations.*;
+import java.io.*;
import java.util.*;
/**
@@ -81,7 +82,7 @@ public interface GridComponent {
* @return Discovery data object or {@code null} if there is nothing
* to send for this component.
*/
- @Nullable public Object collectDiscoveryData(UUID nodeId);
+ @Nullable public Serializable collectDiscoveryData(UUID nodeId);
/**
* Receives discovery data object from remote nodes (called
@@ -90,7 +91,7 @@ public interface GridComponent {
* @param rmtNodeId Remote node ID for which data is provided.
* @param data Discovery data object or {@code null} if nothing was
*/
- public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Object data);
+ public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Serializable data);
/**
* Prints memory statistics (sizes of internal structures, etc.).
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java b/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
index 305a7e3..b438bc1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
@@ -23,6 +23,7 @@ import org.apache.ignite.plugin.*;
import org.apache.ignite.spi.*;
import org.jetbrains.annotations.*;
+import java.io.*;
import java.util.*;
/**
@@ -73,12 +74,12 @@ public class GridPluginComponent implements GridComponent {
}
/** {@inheritDoc} */
- @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
+ @Nullable @Override public Serializable collectDiscoveryData(UUID nodeId) {
return null;
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Object data) {
+ @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Serializable data) {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index a0521c8..cb91313 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -571,12 +571,12 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
}
/** {@inheritDoc} */
- @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
+ @Override @Nullable public Serializable collectDiscoveryData(UUID nodeId) {
return null;
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Object data) {
+ @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Serializable data) {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 299b3c2..c073596 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -419,13 +419,13 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, Serializable> collect(UUID nodeId) {
assert nodeId != null;
- Map<Integer, Object> data = new HashMap<>();
+ Map<Integer, Serializable> data = new HashMap<>();
for (GridComponent comp : ctx.components()) {
- Object compData = comp.collectDiscoveryData(nodeId);
+ Serializable compData = comp.collectDiscoveryData(nodeId);
if (compData != null) {
assert comp.discoveryDataType() != null;
@@ -437,8 +437,8 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
return data;
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
- for (Map.Entry<Integer, Object> e : data.entrySet()) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Serializable> data) {
+ for (Map.Entry<Integer, Serializable> e : data.entrySet()) {
GridComponent comp = null;
for (GridComponent c : ctx.components()) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
index 39ccd7a..a84c48a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
@@ -25,6 +25,7 @@ import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.spi.*;
import org.jetbrains.annotations.*;
+import java.io.*;
import java.util.*;
/**
@@ -66,12 +67,12 @@ public abstract class GridProcessorAdapter implements GridProcessor {
}
/** {@inheritDoc} */
- @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
+ @Override @Nullable public Serializable collectDiscoveryData(UUID nodeId) {
return null;
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Object data) {
+ @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Serializable data) {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index cc90cd3..2859061 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -1587,7 +1587,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
+ @Nullable @Override public Serializable collectDiscoveryData(UUID nodeId) {
// Collect dynamically started caches to a single object.
Collection<DynamicCacheChangeRequest> reqs =
new ArrayList<>(registeredCaches.size() + registeredTemplates.size());
@@ -1626,7 +1626,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Object data) {
+ @Override public void onDiscoveryDataReceived(UUID joiningNodeId, UUID rmtNodeId, Serializable data) {
if (data instanceof DynamicCacheChangeBatch) {
DynamicCacheChangeBatch batch = (DynamicCacheChangeBatch)data;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index 54da8e6..0d76ad4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -318,7 +318,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
+ @Override @Nullable public Serializable collectDiscoveryData(UUID nodeId) {
if (!nodeId.equals(ctx.localNodeId())) {
pendingLock.lock();
@@ -349,7 +349,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID nodeId, UUID rmtNodeId, Object obj) {
+ @Override public void onDiscoveryDataReceived(UUID nodeId, UUID rmtNodeId, Serializable obj) {
DiscoveryData data = (DiscoveryData)obj;
if (!ctx.isDaemon() && data != null) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
index 0b9ca5e..8f2cc51 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.plugin.*;
import org.jetbrains.annotations.*;
+import java.io.*;
import java.lang.reflect.*;
import java.security.*;
import java.util.*;
@@ -153,11 +154,11 @@ public class IgnitePluginProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
- Map<String, Object> discData = null;
+ @Nullable @Override public Serializable collectDiscoveryData(UUID nodeId) {
+ HashMap<String, Serializable> discData = null;
for (Map.Entry<String, PluginProvider> e : plugins.entrySet()) {
- Object data = e.getValue().provideDiscoveryData(nodeId);
+ Serializable data = e.getValue().provideDiscoveryData(nodeId);
if (data != null) {
if (discData == null)
@@ -171,11 +172,11 @@ public class IgnitePluginProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public void onDiscoveryDataReceived(UUID nodeId, UUID rmtNodeId, Object data) {
- Map<String, Object> discData = (Map<String, Object>)data;
+ @Override public void onDiscoveryDataReceived(UUID nodeId, UUID rmtNodeId, Serializable data) {
+ Map<String, Serializable> discData = (Map<String, Serializable>)data;
if (discData != null) {
- for (Map.Entry<String, Object> e : discData.entrySet()) {
+ for (Map.Entry<String, Serializable> e : discData.entrySet()) {
PluginProvider provider = plugins.get(e.getKey());
if (provider != null)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/plugin/PluginProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/PluginProvider.java b/modules/core/src/main/java/org/apache/ignite/plugin/PluginProvider.java
index d2aedff..17bbc36 100644
--- a/modules/core/src/main/java/org/apache/ignite/plugin/PluginProvider.java
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/PluginProvider.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.jetbrains.annotations.*;
+import java.io.*;
import java.util.*;
/**
@@ -101,7 +102,7 @@ public interface PluginProvider<C extends PluginConfiguration> {
* @return Discovery data object or {@code null} if there is nothing
* to send for this component.
*/
- @Nullable public Object provideDiscoveryData(UUID nodeId);
+ @Nullable public Serializable provideDiscoveryData(UUID nodeId);
/**
* Receives plugin discovery data object from remote nodes (called
@@ -112,7 +113,7 @@ public interface PluginProvider<C extends PluginConfiguration> {
* @param data Discovery data object or {@code null} if nothing was
* sent for this component.
*/
- public void receiveDiscoveryData(UUID nodeId, Object data);
+ public void receiveDiscoveryData(UUID nodeId, Serializable data);
/**
* Validates that new node can join grid topology, this method is called on coordinator
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
index 29f6b5f..46d6716 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
@@ -17,6 +17,7 @@
package org.apache.ignite.spi.discovery;
+import java.io.*;
import java.util.*;
/**
@@ -33,7 +34,7 @@ public interface DiscoverySpiDataExchange {
* @param joiningNodeId ID of new node that joins topology.
* @return Collection of discovery data objects from different components.
*/
- public Map<Integer, Object> collect(UUID joiningNodeId);
+ public Map<Integer, Serializable> collect(UUID joiningNodeId);
/**
* Notifies discovery manager about data received from remote node.
@@ -41,5 +42,5 @@ public interface DiscoverySpiDataExchange {
* @param joiningNodeId Remote node ID.
* @param data Collection of discovery data objects from different components.
*/
- public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data);
+ public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Serializable> data);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 2ab8e8f..312b940 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -900,7 +900,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<UUID, Map<Integer, byte[]>> dataMap = msg.oldNodesDiscoveryData();
- if (dataMap != null) {
+ if (!locNode.isDaemon() && dataMap != null) {
for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet())
onExchange(newNodeId, entry.getKey(), entry.getValue(), null);
}
@@ -924,7 +924,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
- if (data != null)
+ if (!locNode.isDaemon() && data != null)
onExchange(newNodeId, newNodeId, data, null);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 94fbfee..21f1c97 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -239,9 +239,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
private CheckStatusSender chkStatusSnd;
- /** IP finder cleaner. */
+ /** IP finder and p2p loaders cleaner. */
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
- private IpFinderCleaner ipFinderCleaner;
+ private DiscoveryCleaner cleaner;
/** Statistics printer thread. */
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
@@ -289,15 +289,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
private ConcurrentLinkedDeque<String> debugLog;
- /** Thread periodically closing unused p2p class loader connections. */
- private DeploymentClassLoadersCleaner p2pLdrCleaner;
-
/** Class loaders for event data unmarshalling. */
private ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> p2pLdrs = new ConcurrentHashMap<>();
- /** Class loader for local data unmarshalling. */
- private ClassLoader locLdr = U.gridClassLoader();
-
/** {@inheritDoc} */
@IgniteInstanceResource
@Override public void injectResources(Ignite ignite) {
@@ -770,14 +764,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
chkStatusSnd = new CheckStatusSender();
chkStatusSnd.start();
- if (ipFinder.isShared()) {
- ipFinderCleaner = new IpFinderCleaner();
- ipFinderCleaner.start();
- }
-
- if (ignite.configuration().isPeerClassLoadingEnabled()) {
- p2pLdrCleaner = new DeploymentClassLoadersCleaner();
- p2pLdrCleaner.start();
+ if (ipFinder.isShared() || ignite.configuration().isPeerClassLoadingEnabled()) {
+ cleaner = new DiscoveryCleaner();
+ cleaner.start();
}
if (log.isDebugEnabled() && !restart)
@@ -992,8 +981,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.interrupt(chkStatusSnd);
U.join(chkStatusSnd, log);
- U.interrupt(ipFinderCleaner);
- U.join(ipFinderCleaner, log);
+ U.interrupt(cleaner);
+ U.join(cleaner, log);
U.interrupt(msgWorker);
U.join(msgWorker, log);
@@ -1004,9 +993,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.interrupt(statsPrinter);
U.join(statsPrinter, log);
- U.interrupt(p2pLdrCleaner);
- U.join(p2pLdrCleaner, log);
-
if (ipFinder != null)
ipFinder.close();
@@ -1265,16 +1251,16 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/** {@inheritDoc} */
@Override public void sendCustomEvent(Serializable evt) {
- byte[] msgBytes;
-
try {
+ byte[] msgBytes;
+
msgBytes = marsh.marshal(evt);
+
+ msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), msgBytes));
}
catch (IgniteCheckedException e) {
throw new IgniteSpiException("Failed to marshal custom event: " + evt, e);
}
-
- msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), msgBytes));
}
/**
@@ -2024,8 +2010,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.interrupt(chkStatusSnd);
U.join(chkStatusSnd, log);
- U.interrupt(ipFinderCleaner);
- U.join(ipFinderCleaner, log);
+ U.interrupt(cleaner);
+ U.join(cleaner, log);
Collection<SocketReader> tmp;
@@ -2123,7 +2109,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
b.append(" Check status sender: ").append(threadStatus(chkStatusSnd)).append(U.nl());
b.append(" HB sender: ").append(threadStatus(hbsSnd)).append(U.nl());
b.append(" Socket timeout worker: ").append(threadStatus(sockTimeoutWorker)).append(U.nl());
- b.append(" IP finder cleaner: ").append(threadStatus(ipFinderCleaner)).append(U.nl());
+ b.append(" Cleaner: ").append(threadStatus(cleaner)).append(U.nl());
b.append(" Stats printer: ").append(threadStatus(statsPrinter)).append(U.nl());
b.append(U.nl());
@@ -2224,12 +2210,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param req Get class request.
* @return Get class response.
*/
- private TcpDiscoveryGetClassResponse processGetClassRequest(TcpDiscoveryGetClassRequest req) {
+ private TcpDiscoveryClassResponse processGetClassRequest(TcpDiscoveryClassRequest req) {
assert !F.isEmpty(req.className()) : req;
String rsrc = U.classNameToResourceName(req.className());
- InputStream in = locLdr.getResourceAsStream(rsrc);
+ InputStream in = U.gridClassLoader().getResourceAsStream(rsrc);
byte[] clsBytes = null;
String err = null;
@@ -2243,7 +2229,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
clsBytes = bytes.entireArray();
}
catch (IOException e) {
- err = "Failed to load class '" + req.className() + "' due IO error: " + e;
+ err = "Failed to load class due IO error [cls=" + req.className() + ", err=" + e + ']';
U.error(log, err, e);
}
@@ -2255,22 +2241,121 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
if (log.isDebugEnabled())
log.debug("Failed to find requested class: " + req.className());
- err = "Class '" + req.className() + "' not found.";
+ err = "Failed to find requested class: " + req.className();
}
- TcpDiscoveryGetClassResponse res;
+ TcpDiscoveryClassResponse res;
if (clsBytes != null)
- res = new TcpDiscoveryGetClassResponse(getLocalNodeId(), clsBytes);
+ res = new TcpDiscoveryClassResponse(getLocalNodeId(), clsBytes);
else {
assert err != null;
- res = new TcpDiscoveryGetClassResponse(getLocalNodeId(), err);
+ res = new TcpDiscoveryClassResponse(getLocalNodeId(), err);
}
return res;
}
+ /**
+ * @param node Node created event.
+ * @return Class loader for custom event unmarshalling.
+ */
+ @Nullable protected ClassLoader customMessageClassLoader(TcpDiscoveryNode node) {
+ assert ignite != null;
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
+
+ if (node.id().equals(getLocalNodeId()) || node.isClient())
+ return U.gridClassLoader();
+
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
+
+ if (ldr == null)
+ ldr = F.addIfAbsent(p2pLdrs, node.id(), new DiscoveryDeploymentClassLoader(node));
+
+ return ldr;
+ }
+
+ /**
+ * @param joiningNode Joining node.
+ * @param nodeId Remote node provided data.
+ * @return Class loader for exchange data unmarshalling.
+ */
+ @Nullable protected ClassLoader exchangeClassLoader(TcpDiscoveryNode joiningNode, UUID nodeId) {
+ assert joiningNode != null;
+ assert ignite != null;
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
+
+ if (nodeId.equals(getLocalNodeId()))
+ return U.gridClassLoader();
+
+ TcpDiscoveryNode node;
+
+ if (joiningNode.id().equals(nodeId))
+ node = joiningNode;
+ else {
+ node = ring.node(nodeId);
+
+ if (node == null) {
+ if (log.isDebugEnabled())
+ log.debug("Node provided exchange data left, will use local class loader " +
+ "for exchange data [nodeId=" + nodeId + ']');
+
+ return U.gridClassLoader();
+ }
+ }
+
+ if (node.isClient()) // Do not support loading from client nodes.
+ return U.gridClassLoader();
+
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
+
+ if (ldr == null)
+ ldr = F.addIfAbsent(p2pLdrs, nodeId, new DiscoveryDeploymentClassLoader(node));
+
+ return ldr;
+ }
+
+ /**
+ * @param nodeId Node ID.
+ * @return Marshalled exchange data.
+ * @throws IgniteSpiException If failed.
+ */
+ private Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
+ Map<Integer, Serializable> data = exchange.collect(nodeId);
+
+ Map<Integer, byte[]> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, Serializable> entry : data.entrySet()) {
+ try {
+ byte[] bytes = marsh.marshal(entry.getValue());
+
+ data0.put(entry.getKey(), bytes);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+
+ throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ }
+ }
+
+ return data0;
+ }
+
+ /**
+ * @param msg Message.
+ * @param nodeId Node ID.
+ */
+ private static void removeMetrics(TcpDiscoveryHeartbeatMessage msg, UUID nodeId) {
+ msg.removeMetrics(nodeId);
+ msg.removeCacheMetrics(nodeId);
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(TcpDiscoverySpi.class, this);
@@ -2381,18 +2466,19 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
/**
- * Thread that cleans IP finder and keeps it in the correct state, unregistering
- * addresses of the nodes that has left the topology.
+ * Thread that periodically tries to release p2p class loaders connections, cleans
+ * IP finder and keeps it in the correct state, unregistering addresses of the nodes
+ * that has left the topology.
* <p>
- * This thread should run only on coordinator node and will clean IP finder
+ * IP finder cleaner should run only on coordinator node and will clean IP finder
* if and only if {@link TcpDiscoveryIpFinder#isShared()} is {@code true}.
*/
- private class IpFinderCleaner extends IgniteSpiThread {
+ private class DiscoveryCleaner extends IgniteSpiThread {
/**
* Constructor.
*/
- private IpFinderCleaner() {
- super(gridName, "tcp-disco-ip-finder-cleaner", log);
+ private DiscoveryCleaner() {
+ super(gridName, "tcp-disco-cleaner", log);
setPriority(threadPri);
}
@@ -2401,11 +2487,21 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings("BusyWait")
@Override protected void body() throws InterruptedException {
if (log.isDebugEnabled())
- log.debug("IP finder cleaner has been started.");
+ log.debug("Tcp discovery cleaner has been started.");
while (!isInterrupted()) {
Thread.sleep(ipFinderCleanFreq);
+ for (DiscoveryDeploymentClassLoader ldr : p2pLdrs.values()) {
+ if (ring.node(ldr.nodeId()) == null) {
+ ldr.onNodeLeft();
+
+ p2pLdrs.remove(ldr.nodeId(), ldr);
+ }
+ else
+ ldr.closeConnectionIfNotUsed();
+ }
+
if (!isLocalNodeCoordinator())
continue;
@@ -2505,41 +2601,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
/**
- *
- */
- private class DeploymentClassLoadersCleaner extends IgniteSpiThread {
- /**
- * Constructor.
- */
- private DeploymentClassLoadersCleaner() {
- super(gridName, "tcp-disco-p2p-ldr-cleaner", log);
-
- setPriority(threadPri);
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("BusyWait")
- @Override protected void body() throws InterruptedException {
- if (log.isDebugEnabled())
- log.debug("Deployment class loader cleaner has been started.");
-
- while (!isInterrupted()) {
- Thread.sleep(5000);
-
- for (DiscoveryDeploymentClassLoader ldr : p2pLdrs.values()) {
- if (ring.node(ldr.nodeId()) == null) {
- ldr.onNodeLeft();
-
- p2pLdrs.remove(ldr.nodeId(), ldr);
- }
- else
- ldr.closeConnectionIfNotUsed();
- }
- }
- }
- }
-
- /**
* Pending messages container.
*/
private static class PendingMessages {
@@ -3656,7 +3717,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
- if (data != null)
+ if (!locNode.isDaemon() && data != null)
onExchange(node.id(), node.id(), data, exchangeClassLoader(node, node.id()));
msg.addDiscoveryData(locNodeId, collectExchangeData(node.id()));
@@ -3727,7 +3788,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
// Notify outside of synchronized block.
- if (dataMap != null) {
+ if (!locNode.isDaemon() && dataMap != null) {
for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
onExchange(node.id(),
entry.getKey(),
@@ -4529,7 +4590,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Collection<ClusterNode> snapshot = hist.get(msg.topologyVersion());
- if (lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING)) {
+ if (!locNode.isDaemon() && lsnr != null && (spiState == CONNECTED || spiState == DISCONNECTING)) {
assert msg.messageBytes() != null;
TcpDiscoveryNode node = ring.node(msg.creatorNodeId());
@@ -5024,8 +5085,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
continue;
}
- else if (msg instanceof TcpDiscoveryGetClassRequest) {
- TcpDiscoveryGetClassResponse res = processGetClassRequest((TcpDiscoveryGetClassRequest)msg);
+ else if (msg instanceof TcpDiscoveryClassRequest) {
+ TcpDiscoveryClassResponse res = processGetClassRequest((TcpDiscoveryClassRequest)msg);
writeToSocket(sock, res);
@@ -5324,104 +5385,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
/**
- * @param node Node created event.
- * @return Class loader for custom event unmarshalling.
- */
- @Nullable protected ClassLoader customMessageClassLoader(TcpDiscoveryNode node) {
- assert ignite != null;
-
- if (!ignite.configuration().isPeerClassLoadingEnabled())
- return null;
-
- if (node.id().equals(getLocalNodeId()))
- return locLdr;
-
- DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
-
- if (ldr == null)
- ldr = F.addIfAbsent(p2pLdrs, node.id(), new DiscoveryDeploymentClassLoader(node));
-
- return ldr;
- }
-
- /**
- * @param joiningNode Joining node.
- * @param nodeId Remote node provided data.
- * @return Class loader for exchange data unmarshalling.
- */
- @Nullable protected ClassLoader exchangeClassLoader(TcpDiscoveryNode joiningNode, UUID nodeId) {
- assert joiningNode != null;
- assert ignite != null;
-
- if (!ignite.configuration().isPeerClassLoadingEnabled())
- return null;
-
- if (nodeId.equals(getLocalNodeId()))
- return locLdr;
-
- TcpDiscoveryNode node;
-
- if (joiningNode.id().equals(nodeId))
- node = joiningNode;
- else {
- node = ring.node(nodeId);
-
- if (node == null) {
- if (log.isDebugEnabled())
- log.debug("Node provided exchange data left, will use local class loader " +
- "for exchange data [nodeId=" + nodeId + ']');
-
- return locLdr;
- }
- }
-
- if (node.isClient()) // Do not support loading from client nodes.
- return locLdr;
-
- DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
-
- if (ldr == null)
- ldr = F.addIfAbsent(p2pLdrs, nodeId, new DiscoveryDeploymentClassLoader(node));
-
- return ldr;
- }
-
- /**
- * @param nodeId Node ID.
- * @return Marshalled exchange data.
- * @throws IgniteSpiException If failed.
- */
- private Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
- Map<Integer, Object> data = exchange.collect(nodeId);
-
- Map<Integer, byte[]> data0 = U.newHashMap(data.size());
-
- for (Map.Entry<Integer, Object> entry : data.entrySet()) {
- try {
- byte[] bytes = marsh.marshal(entry.getValue());
-
- data0.put(entry.getKey(), bytes);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to marshal discovery data " +
- "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
-
- throw new IgniteSpiException("Failed to marshal discovery data.", e);
- }
- }
-
- return data0;
- }
-
- /**
*
*/
private class DiscoveryDeploymentClassLoader extends ClassLoader {
/** */
- private final UUID nodeId;
-
- /** */
- private volatile TcpDiscoveryNode node;
+ private final TcpDiscoveryNode node;
/** */
private Socket sock;
@@ -5437,15 +5405,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
assert !node.id().equals(getLocalNodeId());
this.node = node;
-
- nodeId = node.id();
}
/**
* @return Target node ID.
*/
UUID nodeId() {
- return nodeId;
+ return node.id();
}
/**
@@ -5457,14 +5423,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
try {
if (sock != null) {
if (log.isDebugEnabled())
- log.debug("Closing deployment class loader connection on node left [node=" + nodeId + ']');
+ log.debug("Closing deployment class loader connection on node left [node=" + node.id() + ']');
U.closeQuiet(sock);
sock = null;
}
-
- node = null;
}
finally {
lock.writeLock().unlock();
@@ -5479,7 +5443,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
try {
if (sock != null) {
if (log.isDebugEnabled())
- log.debug("Closing idle deployment class loader connection [node=" + nodeId + ']');
+ log.debug("Closing idle deployment class loader connection [node=" + node.id() + ']');
U.closeQuiet(sock);
@@ -5494,18 +5458,14 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/** {@inheritDoc} */
@Override protected Class<?> findClass(String name) throws ClassNotFoundException {
- if (node == null)
- throw new ClassNotFoundException("Failed to load class, peer node left " +
- "[cls=" +name + ", node=" + nodeId + ']');
-
lock.readLock().lock();
try {
- TcpDiscoveryGetClassResponse res = requestClass(name);
+ TcpDiscoveryClassResponse res = requestClass(name);
if (res == null)
throw new ClassNotFoundException("Failed to load class, can not connect to peer node " +
- "[cls=" + name + ", node=" + nodeId + ']');
+ "[cls=" + name + ", node=" + node.id() + ']');
if (res.error() != null)
throw new ClassNotFoundException(res.error());
@@ -5523,17 +5483,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param name Class name.
* @return Class response or {@code null} if failed to connect.
*/
- @Nullable private synchronized TcpDiscoveryGetClassResponse requestClass(String name) {
- TcpDiscoveryGetClassRequest msg = new TcpDiscoveryGetClassRequest(getLocalNodeId(), name);
+ @Nullable private synchronized TcpDiscoveryClassResponse requestClass(String name) {
+ TcpDiscoveryClassRequest msg = new TcpDiscoveryClassRequest(getLocalNodeId(), name);
for (int i = 0; i < reconCnt; i++) {
if (sock == null) {
- TcpDiscoveryNode node0 = node;
-
- if (node0 == null)
- return null; // Node left.
-
- sock = connect(node0);
+ sock = connect(node);
if (sock == null)
break;
@@ -5549,8 +5504,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
- node = null; // Consider node failed.
-
p2pLdrs.remove(nodeId, this);
return null;
@@ -5563,7 +5516,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @throws IOException If request failed.
* @throws IgniteCheckedException If request failed.
*/
- private TcpDiscoveryGetClassResponse request(Socket sock, TcpDiscoveryGetClassRequest msg)
+ private TcpDiscoveryClassResponse request(Socket sock, TcpDiscoveryClassRequest msg)
throws IOException, IgniteCheckedException
{
long tstamp = U.currentTimeMillis();
@@ -5572,7 +5525,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
stats.onMessageSent(msg, U.currentTimeMillis() - tstamp);
- TcpDiscoveryGetClassResponse res = readMessage(sock, null, netTimeout);
+ TcpDiscoveryClassResponse res = readMessage(sock, null, netTimeout);
stats.onMessageReceived(res);
@@ -5630,13 +5583,4 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return null;
}
}
-
- /**
- * @param msg Message.
- * @param nodeId Node ID.
- */
- private static void removeMetrics(TcpDiscoveryHeartbeatMessage msg, UUID nodeId) {
- msg.removeMetrics(nodeId);
- msg.removeCacheMetrics(nodeId);
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index db75051..98e048d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -754,11 +754,11 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
Map<Integer, byte[]> data,
ClassLoader clsLdr)
{
- Map<Integer, Object> data0 = U.newHashMap(data.size());
+ Map<Integer, Serializable> data0 = U.newHashMap(data.size());
for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
try {
- Object compData = marsh.unmarshal(entry.getValue(), clsLdr);
+ Serializable compData = marsh.unmarshal(entry.getValue(), clsLdr);
data0.put(entry.getKey(), compData);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassRequest.java
new file mode 100644
index 0000000..befe483
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassRequest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class TcpDiscoveryClassRequest extends TcpDiscoveryAbstractMessage {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private String clsName;
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param clsName Class name.
+ */
+ public TcpDiscoveryClassRequest(UUID creatorNodeId, String clsName) {
+ super(creatorNodeId);
+
+ this.clsName = clsName;
+ }
+
+ /**
+ * @return Class name.
+ */
+ public String className() {
+ return clsName;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(TcpDiscoveryClassRequest.class, this, "super", super.toString());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassResponse.java
new file mode 100644
index 0000000..3bfe61d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClassResponse.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class TcpDiscoveryClassResponse extends TcpDiscoveryAbstractMessage {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private String errMsg;
+
+ /** */
+ private byte[] clsBytes;
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param clsBytes Class bytes.
+ */
+ public TcpDiscoveryClassResponse(UUID creatorNodeId, byte[] clsBytes) {
+ super(creatorNodeId);
+
+ this.clsBytes = clsBytes;
+ }
+
+ /**
+ * @param creatorNodeId Creator node ID.
+ * @param errMsg Error message.
+ */
+ public TcpDiscoveryClassResponse(UUID creatorNodeId, String errMsg) {
+ super(creatorNodeId);
+
+ this.errMsg = errMsg;
+ }
+
+ /**
+ * @return Error if class loading failed.
+ */
+ @Nullable public String error() {
+ return errMsg;
+ }
+
+ /**
+ * @return Loaded class bytes.
+ */
+ public byte[] classBytes() {
+ return clsBytes;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(TcpDiscoveryClassResponse.class, this, "super", super.toString());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
index 6f78953..3144b93 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
@@ -17,6 +17,8 @@
package org.apache.ignite.spi.discovery.tcp.messages;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
import java.util.*;
/**
@@ -46,4 +48,9 @@ public class TcpDiscoveryCustomEventMessage extends TcpDiscoveryAbstractMessage
public byte[] messageBytes() {
return msgBytes;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(TcpDiscoveryCustomEventMessage.class, this, "super", super.toString());
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
deleted file mode 100644
index 0f6a0c4..0000000
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.spi.discovery.tcp.messages;
-
-import java.util.*;
-
-/**
- *
- */
-public class TcpDiscoveryGetClassRequest extends TcpDiscoveryAbstractMessage {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private String clsName;
-
- /**
- * @param creatorNodeId Creator node ID.
- * @param clsName Class name.
- */
- public TcpDiscoveryGetClassRequest(UUID creatorNodeId, String clsName) {
- super(creatorNodeId);
-
- this.clsName = clsName;
- }
-
- /**
- * @return Class name.
- */
- public String className() {
- return clsName;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
deleted file mode 100644
index d377aee..0000000
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassResponse.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.spi.discovery.tcp.messages;
-
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- *
- */
-public class TcpDiscoveryGetClassResponse extends TcpDiscoveryAbstractMessage {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private String errMsg;
-
- /** */
- private byte[] clsBytes;
-
- /**
- * @param creatorNodeId Creator node ID.
- * @param clsBytes Class bytes.
- */
- public TcpDiscoveryGetClassResponse(UUID creatorNodeId, byte[] clsBytes) {
- super(creatorNodeId);
-
- this.clsBytes = clsBytes;
- }
-
- /**
- * @param creatorNodeId Creator node ID.
- * @param errMsg Error message.
- */
- public TcpDiscoveryGetClassResponse(UUID creatorNodeId, String errMsg) {
- super(creatorNodeId);
-
- this.errMsg = errMsg;
- }
-
- /**
- * @return Error if class loading failed.
- */
- @Nullable public String error() {
- return errMsg;
- }
-
- /**
- * @return Loaded class bytes.
- */
- public byte[] classBytes() {
- return clsBytes;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index 234e3cd..3c61f00 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -379,11 +379,11 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, Serializable> collect(UUID nodeId) {
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Serializable> data) {
// No-op.
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
index b0e22b4..1ce0bcd 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
@@ -23,6 +23,7 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.testframework.junits.spi.*;
+import java.io.*;
import java.util.*;
/**
@@ -44,11 +45,11 @@ public class TcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTe
@GridSpiTestConfig
public DiscoverySpiDataExchange getDataExchange() {
return new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, Serializable> collect(UUID nodeId) {
return null;
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Serializable> data) {
// No-op.
}
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
index bc6b4cb..de8596d 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
@@ -208,11 +208,11 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
discoSpi.setMetricsProvider(createMetricsProvider());
discoSpi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, Object> collect(UUID nodeId) {
+ @Override public Map<Integer, Serializable> collect(UUID nodeId) {
return new HashMap<>();
}
- @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Serializable> data) {
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d25627c9/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
index b5e0989..1170175 100644
--- a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
@@ -35,25 +35,41 @@ public class CacheConfigP2PStartClient {
public static void main(String[] args) throws Exception {
IgniteConfiguration cfg = new IgniteConfiguration();
- Ignite ignite = Ignition.start(cfg);
+ try (Ignite ignite = Ignition.start(cfg)) {
+ int nodes = ignite.cluster().nodes().size();
- int nodes = ignite.cluster().nodes().size();
+ if (nodes != 3)
+ throw new Exception("Unexpected nodes number: " + nodes);
- if (nodes != 3)
- throw new Exception("Unexpected nodes number: " + nodes);
+ CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
- CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
+ ccfg1.setName("cache1");
- ccfg1.setNodeFilter(new CacheAllNodesFilter());
+ ccfg1.setNodeFilter(new CacheAllNodesFilter());
- ccfg1.setIndexedTypes(Integer.class, Organization1.class);
+ ccfg1.setIndexedTypes(Integer.class, Organization1.class);
- IgniteCache<Integer, Organization1> cache1 = ignite.createCache(ccfg1);
+ System.out.println("Create cache1.");
- for (int i = 0; i < 500; i++)
- cache1.put(i, new Organization1("org-" + i));
+ IgniteCache<Integer, Organization1> cache1 = ignite.createCache(ccfg1);
- Thread.sleep(5000);
+ for (int i = 0; i < 500; i++)
+ cache1.put(i, new Organization1("org-" + i));
+
+ System.out.println("Sleep some time.");
+
+ Thread.sleep(5000); // Sleep some time to wait when connection of p2p loader is closed.
+
+ System.out.println("Create cache2.");
+
+ CacheConfiguration<Integer, Organization2> ccfg2 = new CacheConfiguration<>();
+
+ ccfg2.setName("cache2");
+
+ ccfg2.setIndexedTypes(Integer.class, Organization1.class);
+
+ IgniteCache<Integer, Organization2> cache2 = ignite.createCache(ccfg2);
+ }
}
/**
[25/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/98587c6c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/98587c6c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/98587c6c
Branch: refs/heads/ignite-721
Commit: 98587c6cd66c42eee2fd8a27ad0715599ef8665b
Parents: 35537fa
Author: sboikov <se...@inria.fr>
Authored: Sat Apr 11 00:38:39 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Sat Apr 11 00:38:39 2015 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 7 ++++---
.../tcp/messages/TcpDiscoveryCustomEventMessage.java | 14 +++++++++++++-
2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/98587c6c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3301303..5392331 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1257,7 +1257,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
msgBytes = marsh.marshal(evt);
- msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), msgBytes));
+ msgWorker.addMessage(new TcpDiscoveryCustomEventMessage(getLocalNodeId(), evt, msgBytes));
}
catch (IgniteCheckedException e) {
throw new IgniteSpiException("Failed to marshal custom event: " + evt, e);
@@ -4600,10 +4600,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
TcpDiscoveryNode node = ring.node(msg.creatorNodeId());
- Serializable msgObj;
+ Serializable msgObj = msg.message();
try {
- msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node));
+ if (msgObj == null)
+ msgObj = marsh.unmarshal(msg.messageBytes(), customMessageClassLoader(node));
}
catch (IgniteCheckedException e) {
throw new IgniteSpiException("Failed to unmarshal discovery custom message.", e);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/98587c6c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
index 3144b93..4e42f2d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
@@ -19,6 +19,7 @@ package org.apache.ignite.spi.discovery.tcp.messages;
import org.apache.ignite.internal.util.typedef.internal.*;
+import java.io.*;
import java.util.*;
/**
@@ -30,19 +31,30 @@ public class TcpDiscoveryCustomEventMessage extends TcpDiscoveryAbstractMessage
private static final long serialVersionUID = 0L;
/** */
+ private transient Serializable msg;
+
+ /** */
private final byte[] msgBytes;
/**
* @param creatorNodeId Creator node id.
* @param msgBytes Serialized message.
*/
- public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, byte[] msgBytes) {
+ public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, Serializable msg, byte[] msgBytes) {
super(creatorNodeId);
+ this.msg = msg;
this.msgBytes = msgBytes;
}
/**
+ * @return Message.
+ */
+ public Serializable message() {
+ return msg;
+ }
+
+ /**
* @return Serialized message.
*/
public byte[] messageBytes() {
[15/31] incubator-ignite git commit: sprint-3 1.1.0-SNAPSHOT again ...
Posted by ag...@apache.org.
sprint-3 1.1.0-SNAPSHOT again ...
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/26fa0bf3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/26fa0bf3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/26fa0bf3
Branch: refs/heads/ignite-721
Commit: 26fa0bf357d07750da3ca0a95d38fbe65e605554
Parents: 232b10b
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Fri Apr 10 20:32:08 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Fri Apr 10 20:32:08 2015 +0300
----------------------------------------------------------------------
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
modules/clients/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 2 +-
29 files changed, 29 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index f56625a..f38ff9d 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
</parent>
<artifactId>ignite-examples</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index 7b91aa3..1b03acd 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aop</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index 63dd298..057f246 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aws</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index 77f681e..19d6a25 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-clients</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index b8bff95..d112735 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-codegen</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 569dba3..cdf2cf2 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-core</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index 86af433..6509c47 100644
--- a/modules/extdata/p2p/pom.xml
+++ b/modules/extdata/p2p/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-extdata-p2p</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index 4a501b5..921775f 100644
--- a/modules/extdata/uri/pom.xml
+++ b/modules/extdata/uri/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-extdata-uri</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index 11446fd..6a7610c 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-geospatial</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index 26c55e7..9b5bcfb 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hadoop</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index b76782d..fbd40ce 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hibernate</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index 38dae94..2949c34 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-indexing</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index b4214bc..04ab11b 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jcl</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index 69094ec..7322da2 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jta</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index 145027d..42c8523 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-log4j</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 7a6e361..72bf1ff 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-rest-http</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index 8c48c52..b8840e3 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-scalar</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 2ffd916..ee733ad 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-schedule</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 69bfeb6..d420681 100644
--- a/modules/schema-import/pom.xml
+++ b/modules/schema-import/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-schema-import</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 3bc60be..9acb521 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-slf4j</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index e0523e7..a0bcaaa 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spring</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index 7d559cc..521c7d0 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-ssh</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index 58f2e68..674f22f 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-tools</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index ef1eba0..939966c 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-urideploy</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index e7eb06c..c5b9523 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-visor-console</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index 8b74d41..04dda81 100644
--- a/modules/visor-plugins/pom.xml
+++ b/modules/visor-plugins/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-visor-plugins</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<!-- Ignite dependencies -->
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index 14ebc25..446d7a0 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-web</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index 5bd949b..108fa62 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-yardstick</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<properties>
<yardstick.version>0.7.0</yardstick.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26fa0bf3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c3d3c70..1ebf7c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
<groupId>org.apache.ignite</groupId>
<artifactId>ignite</artifactId>
- <version>1.1.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
[22/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4957a35a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4957a35a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4957a35a
Branch: refs/heads/ignite-721
Commit: 4957a35a2c02096a5e01f4fb06f098334367e621
Parents: b910061
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 22:02:17 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 22:02:17 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4957a35a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 1ab5332..b61a402 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -290,7 +290,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
private ConcurrentLinkedDeque<String> debugLog;
/** Class loaders for event data unmarshalling. */
- private ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> p2pLdrs = new ConcurrentHashMap<>();
+ private transient ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> p2pLdrs = new ConcurrentHashMap<>();
/** {@inheritDoc} */
@IgniteInstanceResource
[16/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/876beff5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/876beff5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/876beff5
Branch: refs/heads/ignite-721
Commit: 876beff516e02c205e69c02d8bbd48811aec15e6
Parents: 0b14239
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 20:36:07 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 20:36:07 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/876beff5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 82a2e59..117166f 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2268,7 +2268,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return null;
if (node.id().equals(getLocalNodeId()) || node.isClient())
- return U.gridClassLoader();
+ return null;
DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
@@ -2291,7 +2291,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return null;
if (nodeId.equals(getLocalNodeId()))
- return U.gridClassLoader();
+ return null;
TcpDiscoveryNode node;
@@ -2305,12 +2305,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
log.debug("Node provided exchange data left, will use local class loader " +
"for exchange data [nodeId=" + nodeId + ']');
- return U.gridClassLoader();
+ return null;
}
}
if (node.isClient()) // Do not support loading from client nodes.
- return U.gridClassLoader();
+ return null;
DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
[31/31] incubator-ignite git commit: IGNITE-721 - Restoring test.
Posted by ag...@apache.org.
IGNITE-721 - Restoring test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bf7b9f86
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bf7b9f86
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bf7b9f86
Branch: refs/heads/ignite-721
Commit: bf7b9f861add6a9bf73513066938fc49384ad381
Parents: c0085a3
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Sat Apr 11 00:47:00 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Sat Apr 11 00:47:00 2015 -0700
----------------------------------------------------------------------
.../IgniteFairAffinityDynamicCacheSelfTest.java | 36 +++++++++-----------
1 file changed, 17 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bf7b9f86/modules/core/src/test/java/org/apache/ignite/cache/affinity/fair/IgniteFairAffinityDynamicCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/fair/IgniteFairAffinityDynamicCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/fair/IgniteFairAffinityDynamicCacheSelfTest.java
index 90571a4..18b77e0 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/fair/IgniteFairAffinityDynamicCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/fair/IgniteFairAffinityDynamicCacheSelfTest.java
@@ -70,30 +70,28 @@ public class IgniteFairAffinityDynamicCacheSelfTest extends GridCommonAbstractTe
* @throws Exception If failed.
*/
public void testStartStopCache() throws Exception {
- for (int k = 0; k < 10; k++) {
- CacheConfiguration<Integer, Integer> cacheCfg = new CacheConfiguration<>();
+ CacheConfiguration<Integer, Integer> cacheCfg = new CacheConfiguration<>();
- cacheCfg.setCacheMode(CacheMode.PARTITIONED);
- cacheCfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
- cacheCfg.setBackups(1);
- cacheCfg.setName("test");
- cacheCfg.setAffinity(new FairAffinityFunction());
+ cacheCfg.setCacheMode(CacheMode.PARTITIONED);
+ cacheCfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
+ cacheCfg.setBackups(1);
+ cacheCfg.setName("test");
+ cacheCfg.setAffinity(new FairAffinityFunction());
- final IgniteCache<Integer, Integer> cache = ignite(0).createCache(cacheCfg);
+ final IgniteCache<Integer, Integer> cache = ignite(0).createCache(cacheCfg);
- for (int i = 0; i < 10_000; i++)
- cache.put(i, i);
+ for (int i = 0; i < 10_000; i++)
+ cache.put(i, i);
- IgniteInternalFuture<Object> destFut = GridTestUtils.runAsync(new Callable<Object>() {
- @Override
- public Object call() throws Exception {
- ignite(0).destroyCache(cache.getName());
+ IgniteInternalFuture<Object> destFut = GridTestUtils.runAsync(new Callable<Object>() {
+ @Override
+ public Object call() throws Exception {
+ ignite(0).destroyCache(cache.getName());
- return null;
- }
- });
+ return null;
+ }
+ });
- destFut.get(2000L);
- }
+ destFut.get(2000L);
}
}
[06/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/eb85f066
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/eb85f066
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/eb85f066
Branch: refs/heads/ignite-721
Commit: eb85f0661d582affa47461358a829ca89394815b
Parents: b887030
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 15:09:11 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 15:09:11 2015 +0300
----------------------------------------------------------------------
.../p2p/startcache/CacheAllNodesFilter.java | 31 +++++
.../startcache/CacheConfigP2PStartClient.java | 116 +++++++++++++++++++
2 files changed, 147 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/eb85f066/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheAllNodesFilter.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheAllNodesFilter.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheAllNodesFilter.java
new file mode 100644
index 0000000..f057fb8
--- /dev/null
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheAllNodesFilter.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.tests.p2p.startcache;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+
+/**
+ *
+ */
+public class CacheAllNodesFilter implements IgnitePredicate<ClusterNode> {
+ /** {@inheritDoc} */
+ @Override public boolean apply(ClusterNode clusterNode) {
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/eb85f066/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
new file mode 100644
index 0000000..b5e0989
--- /dev/null
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.tests.p2p.startcache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.configuration.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ *
+ */
+public class CacheConfigP2PStartClient {
+ /**
+ * @param args Arguments.
+ * @throws Exception If failed.
+ */
+ public static void main(String[] args) throws Exception {
+ IgniteConfiguration cfg = new IgniteConfiguration();
+
+ Ignite ignite = Ignition.start(cfg);
+
+ int nodes = ignite.cluster().nodes().size();
+
+ if (nodes != 3)
+ throw new Exception("Unexpected nodes number: " + nodes);
+
+ CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
+
+ ccfg1.setNodeFilter(new CacheAllNodesFilter());
+
+ ccfg1.setIndexedTypes(Integer.class, Organization1.class);
+
+ IgniteCache<Integer, Organization1> cache1 = ignite.createCache(ccfg1);
+
+ for (int i = 0; i < 500; i++)
+ cache1.put(i, new Organization1("org-" + i));
+
+ Thread.sleep(5000);
+ }
+
+ /**
+ * Organization class.
+ */
+ private static class Organization1 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization1(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization [id=" + id + ", name=" + name + ']';
+ }
+ }
+
+ /**
+ * Organization class.
+ */
+ private static class Organization2 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization2(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization [id=" + id + ", name=" + name + ']';
+ }
+ }
+}
[27/31] incubator-ignite git commit: # sprint-3 Fixed Visor tests.
Posted by ag...@apache.org.
# sprint-3 Fixed Visor tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1a5990c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1a5990c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1a5990c9
Branch: refs/heads/ignite-721
Commit: 1a5990c99536580ad934cd916fc64695c86b9350
Parents: 5953786
Author: AKuznetsov <ak...@gridgain.com>
Authored: Sat Apr 11 09:51:17 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Sat Apr 11 09:51:17 2015 +0700
----------------------------------------------------------------------
.../org/apache/ignite/internal/visor/query/VisorQueryTask.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1a5990c9/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java
index b320842..6683205 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java
@@ -44,7 +44,9 @@ public class VisorQueryTask extends VisorOneNodeTask<VisorQueryArg, IgniteBiTupl
ClusterNode node;
if (taskArg.localCacheNodeId() == null) {
- ClusterGroup prj = ignite.cluster().forDataNodes(cacheName);
+ ClusterGroup prj = (ignite.cluster().localNode().isDaemon())
+ ? ignite.cluster().forRemotes()
+ : ignite.cluster().forDataNodes(cacheName);
if (prj.nodes().isEmpty())
throw new IgniteException("No data nodes for cache: " + escapeName(cacheName));
[12/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9837a4ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9837a4ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9837a4ab
Branch: refs/heads/ignite-721
Commit: 9837a4abdc87d81f7d640e413d7b47a782909203
Parents: d25627c
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 17:14:18 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 17:14:18 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/GridJavaProcess.java | 38 ++++-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 4 +-
.../cache/CacheConfigurationP2PTest.java | 122 +++++++++++++++
.../cache/CacheConfigurationP2PTestServer.java | 63 ++++++++
.../startcache/CacheConfigP2PStartClient.java | 132 ----------------
.../CacheConfigurationP2PTestClient.java | 155 +++++++++++++++++++
.../p2p/GridMultiJvmClassPathSelfTest.java | 109 -------------
7 files changed, 378 insertions(+), 245 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
index b90c4a9..d62e0b7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
@@ -82,7 +82,7 @@ public final class GridJavaProcess {
*/
public static GridJavaProcess exec(Class cls, String params, @Nullable IgniteLogger log,
@Nullable IgniteInClosure<String> printC, @Nullable GridAbsClosure procKilledC) throws Exception {
- return exec(cls, params, log, printC, procKilledC, null, null);
+ return exec(cls.getCanonicalName(), params, log, printC, procKilledC, null, null);
}
/**
@@ -101,6 +101,25 @@ public final class GridJavaProcess {
public static GridJavaProcess exec(Class cls, String params, @Nullable IgniteLogger log,
@Nullable IgniteInClosure<String> printC, @Nullable GridAbsClosure procKilledC,
@Nullable Collection<String> jvmArgs, @Nullable String cp) throws Exception {
+ return exec(cls.getCanonicalName(), params, log, printC, procKilledC, jvmArgs, cp);
+ }
+
+ /**
+ * Executes main() method of the given class in a separate system process.
+ *
+ * @param clsName Class with main() method to be run.
+ * @param params main() method parameters.
+ * @param printC Optional closure to be called each time wrapped process prints line to system.out or system.err.
+ * @param procKilledC Optional closure to be called when process termination is detected.
+ * @param log Log to use.
+ * @param jvmArgs JVM arguments to use.
+ * @param cp Additional classpath.
+ * @return Wrapper around {@link Process}
+ * @throws Exception If any problem occurred.
+ */
+ public static GridJavaProcess exec(String clsName, String params, @Nullable IgniteLogger log,
+ @Nullable IgniteInClosure<String> printC, @Nullable GridAbsClosure procKilledC,
+ @Nullable Collection<String> jvmArgs, @Nullable String cp) throws Exception {
if (!(U.isLinux() || U.isMacOs() || U.isWindows()))
throw new Exception("Your OS is not supported.");
@@ -111,7 +130,6 @@ public final class GridJavaProcess {
String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
String classpath = System.getProperty("java.class.path");
- String clsName = cls.getCanonicalName();
if (cp != null)
classpath += System.getProperty("path.separator") + cp;
@@ -170,6 +188,22 @@ public final class GridJavaProcess {
}
/**
+ * Kills process using {@link Process#destroy()}.
+ */
+ public void killProcess() {
+ proc.destroy();
+
+ if (procKilledC != null)
+ procKilledC.apply();
+
+ U.interrupt(osGrabber);
+ U.interrupt(esGrabber);
+
+ U.join(osGrabber, log);
+ U.join(esGrabber, log);
+ }
+
+ /**
* Returns pid of the java process.
* Wrapped java class should print it's PID to system.out or system.err to make wrapper know about it.
*
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 21f1c97..7da004a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -5401,8 +5401,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param node Node.
*/
public DiscoveryDeploymentClassLoader(TcpDiscoveryNode node) {
- assert !node.isClient();
- assert !node.id().equals(getLocalNodeId());
+ assert !node.isClient() : node;
+ assert !node.id().equals(getLocalNodeId()) : node;
this.node = node;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
new file mode 100644
index 0000000..96b124c
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTest.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.concurrent.*;
+
+import static java.util.concurrent.TimeUnit.*;
+
+/**
+ *
+ */
+public class CacheConfigurationP2PTest extends GridCommonAbstractTest {
+ /** */
+ public static final String NODE_START_MSG = "Test external node started";
+
+ /** */
+ private static final String CLIENT_CLS_NAME =
+ "org.apache.ignite.tests.p2p.startcache.CacheConfigurationP2PTestClient";
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testCacheConfigurationP2P() throws Exception {
+ final CountDownLatch srvsReadyLatch = new CountDownLatch(2);
+
+ final CountDownLatch clientReadyLatch = new CountDownLatch(1);
+
+ GridJavaProcess node1 = null;
+ GridJavaProcess node2 = null;
+ GridJavaProcess clientNode = null;
+
+ try {
+ node1 = GridJavaProcess.exec(
+ CacheConfigurationP2PTestServer.class.getName(), null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Server node1: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ srvsReadyLatch.countDown();
+ }
+ },
+ null,
+ null,
+ null
+ );
+
+ node2 = GridJavaProcess.exec(
+ CacheConfigurationP2PTestServer.class.getName(), null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Server node2: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ srvsReadyLatch.countDown();
+ }
+ },
+ null,
+ null,
+ null
+ );
+
+ assertTrue(srvsReadyLatch.await(60, SECONDS));
+
+ String str = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/";
+
+ clientNode = GridJavaProcess.exec(
+ CLIENT_CLS_NAME, null,
+ log,
+ new CI1<String>() {
+ @Override public void apply(String s) {
+ info("Client node: " + s);
+
+ if (s.contains(NODE_START_MSG))
+ clientReadyLatch.countDown();
+ }
+ },
+ null,
+ null,
+ str
+ );
+
+ assertTrue(clientReadyLatch.await(60, SECONDS));
+
+ int exitCode = clientNode.getProcess().waitFor();
+
+ assertEquals("Unexpected exit code", 0, exitCode);
+ }
+ finally {
+ if (node1 != null)
+ node1.killProcess();
+
+ if (node2 != null)
+ node2.killProcess();
+
+ if (clientNode != null)
+ clientNode.killProcess();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
new file mode 100644
index 0000000..490f951
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationP2PTestServer.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+
+import java.util.*;
+
+/**
+ *
+ */
+public class CacheConfigurationP2PTestServer {
+ /**
+ * @param args Arguments.
+ * @throws Exception If failed.
+ */
+ public static void main(String[] args) throws Exception {
+ System.out.println("Starting test server node.");
+
+ IgniteConfiguration cfg = new IgniteConfiguration();
+
+ cfg.setPeerClassLoadingEnabled(true);
+
+ cfg.setLocalHost("127.0.0.1");
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
+
+ ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
+
+ disco.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(disco);
+
+ U.setWorkDirectory(null, U.getIgniteHome());
+
+ try (Ignite ignite = Ignition.start(cfg)) {
+ System.out.println(CacheConfigurationP2PTest.NODE_START_MSG);
+
+ U.sleep(Long.MAX_VALUE);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
deleted file mode 100644
index 1170175..0000000
--- a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigP2PStartClient.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.tests.p2p.startcache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.query.annotations.*;
-import org.apache.ignite.configuration.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- *
- */
-public class CacheConfigP2PStartClient {
- /**
- * @param args Arguments.
- * @throws Exception If failed.
- */
- public static void main(String[] args) throws Exception {
- IgniteConfiguration cfg = new IgniteConfiguration();
-
- try (Ignite ignite = Ignition.start(cfg)) {
- int nodes = ignite.cluster().nodes().size();
-
- if (nodes != 3)
- throw new Exception("Unexpected nodes number: " + nodes);
-
- CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
-
- ccfg1.setName("cache1");
-
- ccfg1.setNodeFilter(new CacheAllNodesFilter());
-
- ccfg1.setIndexedTypes(Integer.class, Organization1.class);
-
- System.out.println("Create cache1.");
-
- IgniteCache<Integer, Organization1> cache1 = ignite.createCache(ccfg1);
-
- for (int i = 0; i < 500; i++)
- cache1.put(i, new Organization1("org-" + i));
-
- System.out.println("Sleep some time.");
-
- Thread.sleep(5000); // Sleep some time to wait when connection of p2p loader is closed.
-
- System.out.println("Create cache2.");
-
- CacheConfiguration<Integer, Organization2> ccfg2 = new CacheConfiguration<>();
-
- ccfg2.setName("cache2");
-
- ccfg2.setIndexedTypes(Integer.class, Organization1.class);
-
- IgniteCache<Integer, Organization2> cache2 = ignite.createCache(ccfg2);
- }
- }
-
- /**
- * Organization class.
- */
- private static class Organization1 implements Serializable {
- /** Organization ID (indexed). */
- @QuerySqlField(index = true)
- private UUID id;
-
- /** Organization name (indexed). */
- @QuerySqlField(index = true)
- private String name;
-
- /**
- * Create organization.
- *
- * @param name Organization name.
- */
- Organization1(String name) {
- id = UUID.randomUUID();
-
- this.name = name;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return "Organization [id=" + id + ", name=" + name + ']';
- }
- }
-
- /**
- * Organization class.
- */
- private static class Organization2 implements Serializable {
- /** Organization ID (indexed). */
- @QuerySqlField(index = true)
- private UUID id;
-
- /** Organization name (indexed). */
- @QuerySqlField(index = true)
- private String name;
-
- /**
- * Create organization.
- *
- * @param name Organization name.
- */
- Organization2(String name) {
- id = UUID.randomUUID();
-
- this.name = name;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return "Organization [id=" + id + ", name=" + name + ']';
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
new file mode 100644
index 0000000..0634e5f
--- /dev/null
+++ b/modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/startcache/CacheConfigurationP2PTestClient.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.tests.p2p.startcache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ *
+ */
+public class CacheConfigurationP2PTestClient {
+ /**
+ * @param args Arguments.
+ * @throws Exception If failed.
+ */
+ public static void main(String[] args) throws Exception {
+ System.out.println("Starting test client node.");
+
+ IgniteConfiguration cfg = new IgniteConfiguration();
+
+ cfg.setPeerClassLoadingEnabled(true);
+
+ cfg.setLocalHost("127.0.0.1");
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
+
+ ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
+
+ disco.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(disco);
+
+ U.setWorkDirectory(null, U.getIgniteHome());
+
+ try (Ignite ignite = Ignition.start(cfg)) {
+ System.out.println("Test external node started");
+
+ int nodes = ignite.cluster().nodes().size();
+
+ if (nodes != 3)
+ throw new Exception("Unexpected nodes number: " + nodes);
+
+ CacheConfiguration<Integer, Organization1> ccfg1 = new CacheConfiguration<>();
+
+ ccfg1.setName("cache1");
+
+ ccfg1.setNodeFilter(new CacheAllNodesFilter());
+
+ ccfg1.setIndexedTypes(Integer.class, Organization1.class);
+
+ System.out.println("Create cache1.");
+
+ IgniteCache<Integer, Organization1> cache1 = ignite.createCache(ccfg1);
+
+ for (int i = 0; i < 500; i++)
+ cache1.put(i, new Organization1("org-" + i));
+
+ System.out.println("Sleep some time.");
+
+ Thread.sleep(5000); // Sleep some time to wait when connection of p2p loader is closed.
+
+ System.out.println("Create cache2.");
+
+ CacheConfiguration<Integer, Organization2> ccfg2 = new CacheConfiguration<>();
+
+ ccfg2.setName("cache2");
+
+ ccfg2.setIndexedTypes(Integer.class, Organization1.class);
+
+ IgniteCache<Integer, Organization2> cache2 = ignite.createCache(ccfg2);
+ }
+ }
+
+ /**
+ * Organization class.
+ */
+ private static class Organization1 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization1(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization [id=" + id + ", name=" + name + ']';
+ }
+ }
+
+ /**
+ * Organization class.
+ */
+ private static class Organization2 implements Serializable {
+ /** Organization ID (indexed). */
+ @QuerySqlField(index = true)
+ private UUID id;
+
+ /** Organization name (indexed). */
+ @QuerySqlField(index = true)
+ private String name;
+
+ /**
+ * Create organization.
+ *
+ * @param name Organization name.
+ */
+ Organization2(String name) {
+ id = UUID.randomUUID();
+
+ this.name = name;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "Organization [id=" + id + ", name=" + name + ']';
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9837a4ab/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java b/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
deleted file mode 100644
index 00b61b1..0000000
--- a/modules/spring/src/test/java/org/apache/ignite/p2p/GridMultiJvmClassPathSelfTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.p2p;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.testframework.config.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import java.util.concurrent.*;
-
-/**
- * Test.
- */
-public class GridMultiJvmClassPathSelfTest extends GridCommonAbstractTest {
- private static String START = "Start external node";
-
- public static void main(String[] args) throws Exception {
- U.setWorkDirectory(null, U.getIgniteHome());
-
- // Tell our process PID to the wrapper.
- X.println(GridJavaProcess.PID_MSG_PREFIX + U.jvmPid());
-
- X.println("Java path: " + System.getProperty("java.class.path"));
-
- try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
- X.println(START);
- U.sleep(10000);
- }
- }
- /**
- * @throws Exception If failed.
- */
- public void testDifferentClassPath() throws Exception {
- final CountDownLatch killedLatch = new CountDownLatch(2);
-
- final CountDownLatch readyLatch = new CountDownLatch(2);
-
- GridJavaProcess proc1 = GridJavaProcess.exec(
- GridMultiJvmClassPathSelfTest.class, null,
- log,
- new CI1<String>() {
- @Override public void apply(String s) {
- info("Process 1 prints: " + s);
-
- if (s.startsWith(START))
- readyLatch.countDown();
- }
- },
- new CA() {
- @Override public void apply() {
- info("Process 1 is killed");
-
- killedLatch.countDown();
- }
- },
- null,
- null
- );
-
- GridJavaProcess proc2 = GridJavaProcess.exec(
- GridMultiJvmClassPathSelfTest.class, null,
- log,
- new CI1<String>() {
- @Override public void apply(String s) {
- info("Process 2 prints: " + s);
-
- if (s.contains(START))
- readyLatch.countDown();
- }
- },
- new CA() {
- @Override public void apply() {
- info("Process 2 is killed");
-
- killedLatch.countDown();
- }
- },
- null,
- GridTestProperties.getProperty("p2p.uri.cls")
- );
-
- readyLatch.await();
-
- try(Ignite ignite = Ignition.start("examples/config/example-ignite.xml")){
- proc1.kill();
- proc2.kill();
-
- killedLatch.await();
- }
- }
-}
[20/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/439af365
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/439af365
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/439af365
Branch: refs/heads/ignite-721
Commit: 439af36517d98280805c711eeaf9e24114c3fd6d
Parents: f316e9a
Author: sboikov <se...@inria.fr>
Authored: Fri Apr 10 21:04:01 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Fri Apr 10 21:04:01 2015 +0300
----------------------------------------------------------------------
.../spi/discovery/tcp/TcpDiscoverySpi.java | 21 ++++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/439af365/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index bf8cbdb..1ab5332 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2265,10 +2265,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
assert ignite != null;
if (!ignite.configuration().isPeerClassLoadingEnabled())
- return null;
+ return U.gridClassLoader();
if (node.id().equals(getLocalNodeId()) || node.isClient())
- return null;
+ return U.gridClassLoader();
DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
@@ -2288,10 +2288,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
assert ignite != null;
if (!ignite.configuration().isPeerClassLoadingEnabled())
- return null;
+ return U.gridClassLoader();
if (nodeId.equals(getLocalNodeId()))
- return null;
+ return U.gridClassLoader();
TcpDiscoveryNode node;
@@ -2305,12 +2305,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
log.debug("Node provided exchange data left, will use local class loader " +
"for exchange data [nodeId=" + nodeId + ']');
- return null;
+ return U.gridClassLoader();
}
}
if (node.isClient()) // Do not support loading from client nodes.
- return null;
+ return U.gridClassLoader();
DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
@@ -5405,6 +5405,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param node Node.
*/
public DiscoveryDeploymentClassLoader(TcpDiscoveryNode node) {
+ super(U.gridClassLoader());
+
assert !node.isClient() : node;
assert !node.id().equals(getLocalNodeId()) : node;
@@ -5462,13 +5464,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/** {@inheritDoc} */
@Override protected Class<?> findClass(String name) throws ClassNotFoundException {
- try {
- return U.gridClassLoader().loadClass(name);
- }
- catch (ClassNotFoundException ignore) {
- // Ignore.
- }
-
lock.readLock().lock();
try {
[08/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3ca7c8ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3ca7c8ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3ca7c8ab
Branch: refs/heads/ignite-721
Commit: 3ca7c8ab0008710698f58c4bfebfffa3e5fbcb52
Parents: 347f3ad
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 15:15:21 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 15:15:21 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 2 +-
.../spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3ca7c8ab/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 7bd1a97..94fbfee 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -289,7 +289,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
private ConcurrentLinkedDeque<String> debugLog;
- /** */
+ /** Thread periodically closing unused p2p class loader connections. */
private DeploymentClassLoadersCleaner p2pLdrCleaner;
/** Class loaders for event data unmarshalling. */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3ca7c8ab/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
index e372ea2..0f6a0c4 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryGetClassRequest.java
@@ -35,6 +35,7 @@ public class TcpDiscoveryGetClassRequest extends TcpDiscoveryAbstractMessage {
*/
public TcpDiscoveryGetClassRequest(UUID creatorNodeId, String clsName) {
super(creatorNodeId);
+
this.clsName = clsName;
}
[02/31] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-3' into ignite-537
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5029aeb0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5029aeb0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5029aeb0
Branch: refs/heads/ignite-721
Commit: 5029aeb0fd59f8303fc68586f22c215f913fb902
Parents: 33dbf24 a60f47d
Author: sboikov <se...@inria.fr>
Authored: Thu Apr 9 19:50:40 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Thu Apr 9 19:50:40 2015 +0300
----------------------------------------------------------------------
.../datastructures/IgniteQueueExample.java | 28 +-
.../datastructures/IgniteSetExample.java | 30 +-
.../java/org/apache/ignite/IgniteCluster.java | 2 +-
.../configuration/CacheConfiguration.java | 20 +-
.../configuration/CollectionConfiguration.java | 114 ++++-
.../ignite/internal/GridPluginContext.java | 15 +-
.../apache/ignite/internal/IgniteKernal.java | 16 +-
.../ignite/internal/MarshallerContextImpl.java | 3 +
.../affinity/GridAffinityProcessor.java | 5 +-
.../processors/cache/GridCacheAdapter.java | 2 +-
.../processors/cache/GridCacheProcessor.java | 63 ++-
.../cache/GridCacheProjectionImpl.java | 2 +-
.../processors/cache/GridCacheProxyImpl.java | 2 +-
.../cache/query/GridCacheQueriesImpl.java | 2 +-
.../continuous/CacheContinuousQueryManager.java | 28 --
.../cache/version/GridCacheVersionEx.java | 2 +-
.../cacheobject/IgniteCacheObjectProcessor.java | 5 +-
.../IgniteCacheObjectProcessorImpl.java | 36 +-
.../datastreamer/DataStreamerImpl.java | 8 +-
.../CacheDataStructuresCacheKey.java | 62 +++
.../CacheDataStructuresConfigurationKey.java | 2 +-
.../datastructures/DataStructuresProcessor.java | 222 ++++++++-
.../datastructures/GridCacheQueueAdapter.java | 2 +-
.../plugin/IgnitePluginProcessor.java | 58 +--
.../util/lang/GridMetadataAwareAdapter.java | 2 +-
.../ignite/plugin/CachePluginConfiguration.java | 2 +-
.../org/apache/ignite/plugin/IgnitePlugin.java | 3 -
.../ignite/plugin/PluginConfiguration.java | 10 +-
.../org/apache/ignite/plugin/PluginContext.java | 7 +-
.../apache/ignite/plugin/PluginProvider.java | 4 +-
.../communication/tcp/TcpCommunicationSpi.java | 2 +-
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 2 +-
...actQueueFailoverDataConsistencySelfTest.java | 4 +-
.../GridCacheQueueApiSelfAbstractTest.java | 80 ++++
.../GridCacheQueueCleanupSelfTest.java | 11 +-
...dCacheQueueMultiNodeConsistencySelfTest.java | 11 +-
.../GridCacheSetAbstractSelfTest.java | 5 +-
.../IgniteCollectionAbstractTest.java | 160 ++-----
.../IgniteDataStructureUniqueNameTest.java | 47 +-
.../GridCacheLocalAtomicOffheapSetSelfTest.java | 32 ++
.../GridCacheLocalAtomicQueueApiSelfTest.java | 6 +
.../local/GridCacheLocalAtomicSetSelfTest.java | 6 +
.../GridCacheLocalOffheapQueueApiSelfTest.java | 31 ++
.../local/GridCacheLocalQueueApiSelfTest.java | 6 +
.../local/GridCacheLocalSetSelfTest.java | 6 +
...artitionedAtomicOffheapQueueApiSelfTest.java | 32 ++
...omicOffheapQueueCreateMultiNodeSelfTest.java | 32 ++
...onedAtomicOffheapQueueMultiNodeSelfTest.java | 32 ++
...dCachePartitionedAtomicQueueApiSelfTest.java | 6 +
...ionedAtomicQueueCreateMultiNodeSelfTest.java | 6 +
...micQueueFailoverDataConsistencySelfTest.java | 6 +
...PartitionedAtomicQueueMultiNodeSelfTest.java | 6 +
...itionedAtomicQueueRotativeMultiNodeTest.java | 6 +
...chePartitionedAtomicSetFailoverSelfTest.java | 6 +
...rtitionedDataStructuresFailoverSelfTest.java | 6 +
...artitionedOffHeapValuesQueueApiSelfTest.java | 31 ++
...achePartitionedOffHeapValuesSetSelfTest.java | 32 ++
...edOffheapDataStructuresFailoverSelfTest.java | 34 ++
...hePartitionedOffheapSetFailoverSelfTest.java | 32 ++
.../GridCachePartitionedQueueApiSelfTest.java | 6 +
...PartitionedQueueCreateMultiNodeSelfTest.java | 6 +
...dCachePartitionedQueueEntryMoveSelfTest.java | 10 +-
...nedQueueFailoverDataConsistencySelfTest.java | 6 +
...CachePartitionedQueueJoinedNodeSelfTest.java | 6 +
...dCachePartitionedQueueMultiNodeSelfTest.java | 6 +
...hePartitionedQueueRotativeMultiNodeTest.java | 6 +
...GridCachePartitionedSetFailoverSelfTest.java | 6 +
.../GridCachePartitionedSetSelfTest.java | 6 +
.../IgnitePartitionedSetNoBackupsSelfTest.java | 5 +-
...eplicatedDataStructuresFailoverSelfTest.java | 6 +
.../GridCacheReplicatedQueueApiSelfTest.java | 11 +
...idCacheReplicatedQueueMultiNodeSelfTest.java | 6 +
...cheReplicatedQueueRotativeMultiNodeTest.java | 6 +
.../GridCacheReplicatedSetSelfTest.java | 6 +
.../IgniteCacheDataStructuresSelfTestSuite.java | 10 +
.../query/h2/sql/GridSqlQueryParser.java | 24 +-
.../h2/sql/AbstractH2CompareQueryTest.java | 13 +-
.../query/h2/sql/BaseH2CompareQueryTest.java | 37 +-
.../query/h2/sql/H2CompareBigQueryTest.java | 38 +-
.../ignite/tools/javadoc/IgniteLinkTaglet.java | 20 +-
modules/urideploy/README.txt | 2 +-
modules/urideploy/licenses/edtftp-license.pdf | Bin 58355 -> 0 bytes
modules/urideploy/licenses/jtidy-license.txt | 50 --
.../urideploy/licenses/jtidy-mit-license.txt | 50 ++
modules/urideploy/pom.xml | 6 -
.../spi/deployment/uri/UriDeploymentSpi.java | 182 +++----
.../uri/scanners/GridUriDeploymentScanner.java | 286 -----------
.../GridUriDeploymentScannerListener.java | 2 +-
.../uri/scanners/UriDeploymentScanner.java | 47 ++
.../scanners/UriDeploymentScannerContext.java | 92 ++++
.../scanners/UriDeploymentScannerManager.java | 221 +++++++++
.../file/GridUriDeploymentFileScanner.java | 311 ------------
.../scanners/file/UriDeploymentFileScanner.java | 327 +++++++++++++
.../ftp/GridUriDeploymentFtpClient.java | 199 --------
.../ftp/GridUriDeploymentFtpConfiguration.java | 115 -----
.../ftp/GridUriDeploymentFtpException.java | 43 --
.../scanners/ftp/GridUriDeploymentFtpFile.java | 119 -----
.../ftp/GridUriDeploymentFtpScanner.java | 234 ---------
.../uri/scanners/ftp/package-info.java | 22 -
.../http/GridUriDeploymentHttpScanner.java | 423 ----------------
.../scanners/http/UriDeploymentHttpScanner.java | 478 +++++++++++++++++++
...loymentMultiScannersErrorThrottlingTest.java | 3 -
.../GridUriDeploymentMultiScannersSelfTest.java | 3 +-
.../GridFileDeploymentUndeploySelfTest.java | 4 +-
.../uri/scanners/ftp/GridFtpDeploymentTest.java | 46 --
.../uri/scanners/ftp/package-info.java | 22 -
.../scala/org/apache/ignite/visor/visor.scala | 3 +
107 files changed, 2468 insertions(+), 2495 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5029aeb0/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
[07/31] incubator-ignite git commit: # ignite-537 merge from sprint-3
Posted by ag...@apache.org.
# ignite-537 merge from sprint-3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/347f3adb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/347f3adb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/347f3adb
Branch: refs/heads/ignite-721
Commit: 347f3adba92ba9ca70f9509fc18105f3f5c0d743
Parents: eb85f06 60640de
Author: sboikov <sb...@gridgain.com>
Authored: Fri Apr 10 15:10:20 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Apr 10 15:10:20 2015 +0300
----------------------------------------------------------------------
assembly/release-hadoop.xml | 4 -
bin/ignitevisorcmd.bat | 39 +--
.../examples/MessagingExamplesSelfTest.java | 2 +-
.../java8/examples/BasicExamplesSelfTest.java | 3 +
.../java8/examples/CacheExamplesSelfTest.java | 4 +
.../examples/CheckpointExamplesSelfTest.java | 3 +
.../examples/ClusterGroupExampleSelfTest.java | 3 +-
.../examples/ContinuationExamplesSelfTest.java | 3 +
.../ContinuousMapperExamplesSelfTest.java | 4 +-
.../DeploymentExamplesMultiNodeSelfTest.java | 2 +
.../examples/DeploymentExamplesSelfTest.java | 2 +
.../HibernateL2CacheExampleSelfTest.java | 3 +
.../java8/examples/IgfsExamplesSelfTest.java | 3 +
.../examples/LifecycleExamplesSelfTest.java | 3 +
.../MemcacheRestExamplesMultiNodeSelfTest.java | 2 +
.../examples/MemcacheRestExamplesSelfTest.java | 2 +
.../examples/MessagingExamplesSelfTest.java | 4 +-
.../examples/MonteCarloExamplesSelfTest.java | 3 +
.../examples/SpringBeanExamplesSelfTest.java | 3 +
.../java8/examples/TaskExamplesSelfTest.java | 2 +
.../client/ClientReconnectionSelfTest.java | 67 +++---
.../ignite/codegen/MessageCodeGenerator.java | 1 -
modules/core/pom.xml | 2 +-
.../java/org/apache/ignite/IgniteCache.java | 18 ++
.../java/org/apache/ignite/IgniteState.java | 2 +-
.../configuration/CacheConfiguration.java | 69 +++---
.../configuration/IgniteConfiguration.java | 35 +--
.../internal/ComputeTaskInternalFuture.java | 2 +-
.../ignite/internal/GridJobExecuteRequest.java | 10 +-
.../ignite/internal/GridJobExecuteResponse.java | 4 +-
.../apache/ignite/internal/GridTaskMessage.java | 30 ---
.../ignite/internal/GridTaskSessionRequest.java | 6 +-
.../org/apache/ignite/internal/IgnitionEx.java | 4 +-
.../client/GridClientConfiguration.java | 14 +-
.../GridClientConnectionManagerAdapter.java | 2 +-
.../router/GridTcpRouterConfiguration.java | 6 +-
.../internal/cluster/ClusterGroupAdapter.java | 150 ++++++++++--
.../internal/managers/GridManagerAdapter.java | 4 +-
.../discovery/GridDiscoveryManager.java | 32 ++-
.../eventstorage/GridEventStorageManager.java | 4 +-
.../processors/cache/CacheMetricsImpl.java | 7 +-
.../processors/cache/CacheMetricsSnapshot.java | 223 +++++++++++++++++-
.../processors/cache/GridCacheAdapter.java | 12 +-
.../processors/cache/GridCacheContext.java | 64 ++++-
.../cache/GridCacheEvictionManager.java | 6 +-
.../cache/GridCacheExplicitLockSpan.java | 2 +-
.../processors/cache/GridCacheMapEntry.java | 6 +-
.../processors/cache/GridCacheMvcc.java | 2 +-
.../cache/GridCacheMvccCandidate.java | 50 +++-
.../processors/cache/GridCacheMvccManager.java | 44 +++-
.../processors/cache/GridCacheProcessor.java | 52 ++--
.../processors/cache/IgniteCacheProxy.java | 26 ++
.../distributed/GridDistributedCacheEntry.java | 12 +-
.../distributed/dht/GridDhtCacheEntry.java | 36 ++-
.../distributed/dht/GridDhtLockFuture.java | 15 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 14 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 22 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 2 +
.../distributed/dht/GridDhtTxLocalAdapter.java | 30 ++-
.../distributed/dht/GridDhtTxPrepareFuture.java | 28 ++-
.../dht/atomic/GridDhtAtomicCache.java | 6 +-
.../dht/colocated/GridDhtColocatedCache.java | 35 ++-
.../colocated/GridDhtColocatedLockFuture.java | 46 +++-
.../GridDhtPartitionsExchangeFuture.java | 39 ++-
.../distributed/near/GridNearAtomicCache.java | 2 +-
.../distributed/near/GridNearCacheEntry.java | 10 +-
.../distributed/near/GridNearLockFuture.java | 13 +-
.../near/GridNearTransactionalCache.java | 2 +-
.../near/GridNearTxFinishFuture.java | 8 +-
.../cache/distributed/near/GridNearTxLocal.java | 7 +
.../near/GridNearTxPrepareFuture.java | 122 ++++++----
.../near/GridNearTxPrepareRequest.java | 64 +++--
.../local/atomic/GridLocalAtomicCache.java | 6 +-
.../cache/query/GridCacheQueryAdapter.java | 2 +-
.../continuous/CacheContinuousQueryManager.java | 2 +-
.../cache/transactions/IgniteTxAdapter.java | 3 +-
.../cache/transactions/IgniteTxHandler.java | 120 +++++++---
.../transactions/IgniteTxLocalAdapter.java | 82 ++++---
.../cache/transactions/IgniteTxManager.java | 7 +
.../internal/processors/igfs/IgfsAsyncImpl.java | 4 +-
.../ignite/internal/processors/igfs/IgfsEx.java | 4 +-
.../processors/igfs/IgfsFileWorker.java | 180 --------------
.../processors/igfs/IgfsFileWorkerBatch.java | 225 +++++++-----------
.../processors/igfs/IgfsFileWorkerTask.java | 32 ---
.../internal/processors/igfs/IgfsImpl.java | 150 +++++++-----
.../internal/processors/igfs/IgfsProcessor.java | 2 +-
.../processors/rest/GridRestProcessor.java | 33 +--
.../security/GridSecurityProcessor.java | 13 +-
.../processors/security/SecurityContext.java | 8 +-
.../security/os/GridOsSecurityProcessor.java | 11 +-
.../processors/task/GridTaskProcessor.java | 9 +-
.../internal/util/future/GridFutureAdapter.java | 20 +-
.../ignite/internal/util/worker/GridWorker.java | 6 +-
.../visor/cache/VisorCacheClearTask.java | 3 +
.../cache/VisorCacheQueryConfiguration.java | 9 -
.../internal/visor/log/VisorLogSearchTask.java | 12 +-
.../node/VisorNodeEventsCollectorTask.java | 3 +
.../node/VisorSegmentationConfiguration.java | 4 +-
.../internal/visor/util/VisorTaskUtils.java | 3 +
.../plugin/security/AuthenticationContext.java | 12 +-
.../security/GridSecurityCredentials.java | 184 ---------------
.../GridSecurityCredentialsBasicProvider.java | 44 ----
.../GridSecurityCredentialsProvider.java | 44 ----
.../plugin/security/GridSecurityException.java | 58 -----
.../plugin/security/GridSecurityPermission.java | 69 ------
.../security/GridSecurityPermissionSet.java | 66 ------
.../plugin/security/GridSecuritySubject.java | 62 -----
.../security/GridSecuritySubjectType.java | 48 ----
.../plugin/security/SecurityCredentials.java | 191 +++++++++++++++
.../SecurityCredentialsBasicProvider.java | 44 ++++
.../security/SecurityCredentialsProvider.java | 44 ++++
.../plugin/security/SecurityException.java | 61 +++++
.../plugin/security/SecurityPermission.java | 69 ++++++
.../plugin/security/SecurityPermissionSet.java | 66 ++++++
.../ignite/plugin/security/SecuritySubject.java | 62 +++++
.../plugin/security/SecuritySubjectType.java | 48 ++++
.../segmentation/GridSegmentationPolicy.java | 47 ----
.../segmentation/GridSegmentationResolver.java | 64 -----
.../plugin/segmentation/SegmentationPolicy.java | 49 ++++
.../segmentation/SegmentationResolver.java | 65 +++++
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 4 +-
.../org/apache/ignite/spi/IgniteSpiContext.java | 4 +-
.../spi/discovery/DiscoveryMetricsProvider.java | 10 +
.../DiscoverySpiNodeAuthenticator.java | 2 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 35 ++-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 57 ++++-
.../tcp/internal/TcpDiscoveryNode.java | 76 +++++-
.../messages/TcpDiscoveryHeartbeatMessage.java | 65 +++++
.../startup/cmdline/CommandLineStartup.java | 7 +-
.../internal/GridLifecycleAwareSelfTest.java | 2 +-
.../ignite/internal/GridProjectionSelfTest.java | 82 +++++++
.../ignite/internal/GridStartStopSelfTest.java | 8 +-
.../CacheMetricsForClusterGroupSelfTest.java | 236 +++++++++++++++++++
.../cache/GridCacheBasicApiAbstractTest.java | 4 +-
...CacheOffHeapMultiThreadedUpdateSelfTest.java | 42 ++--
.../GridCacheOffHeapTieredAbstractSelfTest.java | 4 +-
.../cache/GridCacheReloadSelfTest.java | 3 +-
.../GridCacheReturnValueTransferSelfTest.java | 15 +-
.../IgniteTxMultiThreadedAbstractTest.java | 5 +-
...GridCacheQueueMultiNodeAbstractSelfTest.java | 5 +-
.../GridCacheSetAbstractSelfTest.java | 10 +-
.../GridCacheSetFailoverAbstractSelfTest.java | 6 +-
.../distributed/GridCacheEventAbstractTest.java | 16 +-
.../GridCacheNodeFailureAbstractTest.java | 15 +-
.../dht/IgniteCacheLockFailoverSelfTest.java | 156 ++++++++++++
.../dht/IgniteCacheMultiTxLockSelfTest.java | 219 +++++++++++++++++
...licatedNearOnlyMultiNodeFullApiSelfTest.java | 2 +-
.../continuous/GridEventConsumeSelfTest.java | 7 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 24 +-
.../tostring/GridToStringBuilderSelfTest.java | 5 +-
.../GridP2PMissedResourceCacheSizeSelfTest.java | 2 +-
.../tcp/TcpClientDiscoverySelfTest.java | 5 +-
.../testframework/GridSpiTestContext.java | 4 +-
.../testframework/junits/GridAbstractTest.java | 6 +-
.../junits/spi/GridSpiAbstractTest.java | 72 +-----
.../IgniteCacheMetricsSelfTestSuite.java | 4 +
.../ignite/testsuites/IgniteCacheTestSuite.java | 3 +
.../IgniteSpiDiscoverySelfTestSuite.java | 2 +
...rrentLinkedHashMapMultiThreadedSelfTest.java | 4 +-
.../HadoopDefaultMapReducePlannerSelfTest.java | 2 +-
.../GridCacheAbstractFieldsQuerySelfTest.java | 10 +-
.../processors/cache/GridCacheSwapSelfTest.java | 5 +-
...hePartitionedQueryMultiThreadedSelfTest.java | 2 +-
.../cache/IgniteCacheQueryIndexSelfTest.java | 3 +-
.../IgniteCachePartitionedQuerySelfTest.java | 5 +-
.../IgniteCacheReplicatedQuerySelfTest.java | 18 +-
.../processors/cache/GridCacheJtaSelfTest.java | 6 +-
.../http/jetty/GridJettyRestHandler.java | 2 +-
.../p2p/GridP2PUserVersionChangeSelfTest.java | 8 +-
.../ignite/tools/classgen/ClassesGenerator.java | 2 +-
.../ignite/visor/commands/VisorConsole.scala | 19 ++
171 files changed, 3389 insertions(+), 1834 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/347f3adb/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/347f3adb/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index bc0fec5,4b43fec..7bd1a97
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@@ -5302,310 -5186,11 +5324,319 @@@ public class TcpDiscoverySpi extends Tc
}
/**
+ * @param node Node created event.
+ * @return Class loader for custom event unmarshalling.
+ */
+ @Nullable protected ClassLoader customMessageClassLoader(TcpDiscoveryNode node) {
+ assert ignite != null;
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
+
+ if (node.id().equals(getLocalNodeId()))
+ return locLdr;
+
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(node.id());
+
+ if (ldr == null)
+ ldr = F.addIfAbsent(p2pLdrs, node.id(), new DiscoveryDeploymentClassLoader(node));
+
+ return ldr;
+ }
+
+ /**
+ * @param joiningNode Joining node.
+ * @param nodeId Remote node provided data.
+ * @return Class loader for exchange data unmarshalling.
+ */
+ @Nullable protected ClassLoader exchangeClassLoader(TcpDiscoveryNode joiningNode, UUID nodeId) {
+ assert joiningNode != null;
+ assert ignite != null;
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
+
+ if (nodeId.equals(getLocalNodeId()))
+ return locLdr;
+
+ TcpDiscoveryNode node;
+
+ if (joiningNode.id().equals(nodeId))
+ node = joiningNode;
+ else {
+ node = ring.node(nodeId);
+
+ if (node == null) {
+ if (log.isDebugEnabled())
+ log.debug("Node provided exchange data left, will use local class loader " +
+ "for exchange data [nodeId=" + nodeId + ']');
+
+ return locLdr;
+ }
+ }
+
+ if (node.isClient()) // Do not support loading from client nodes.
+ return locLdr;
+
+ DiscoveryDeploymentClassLoader ldr = p2pLdrs.get(nodeId);
+
+ if (ldr == null)
+ ldr = F.addIfAbsent(p2pLdrs, nodeId, new DiscoveryDeploymentClassLoader(node));
+
+ return ldr;
+ }
+
+ /**
+ * @param nodeId Node ID.
+ * @return Marshalled exchange data.
+ * @throws IgniteSpiException If failed.
+ */
+ private Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
+ Map<Integer, Object> data = exchange.collect(nodeId);
+
+ Map<Integer, byte[]> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, Object> entry : data.entrySet()) {
+ try {
+ byte[] bytes = marsh.marshal(entry.getValue());
+
+ data0.put(entry.getKey(), bytes);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+
+ throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ }
+ }
+
+ return data0;
+ }
+
+ /**
+ *
+ */
+ private class DiscoveryDeploymentClassLoader extends ClassLoader {
+ /** */
+ private final UUID nodeId;
+
+ /** */
+ private volatile TcpDiscoveryNode node;
+
+ /** */
+ private Socket sock;
+
+ /** */
+ private final ReadWriteLock lock = new ReentrantReadWriteLock();
+
+ /**
+ * @param node Node.
+ */
+ public DiscoveryDeploymentClassLoader(TcpDiscoveryNode node) {
+ assert !node.isClient();
+ assert !node.id().equals(getLocalNodeId());
+
+ this.node = node;
+
+ nodeId = node.id();
+ }
+
+ /**
+ * @return Target node ID.
+ */
+ UUID nodeId() {
+ return nodeId;
+ }
+
+ /**
+ * Node left callback.
+ */
+ void onNodeLeft() {
+ lock.writeLock().lock();
+
+ try {
+ if (sock != null) {
+ if (log.isDebugEnabled())
+ log.debug("Closing deployment class loader connection on node left [node=" + nodeId + ']');
+
+ U.closeQuiet(sock);
+
+ sock = null;
+ }
+
+ node = null;
+ }
+ finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ /**
+ * Closes connection if there is no class loading in progress.
+ */
+ void closeConnectionIfNotUsed() {
+ if (lock.writeLock().tryLock()) {
+ try {
+ if (sock != null) {
+ if (log.isDebugEnabled())
+ log.debug("Closing idle deployment class loader connection [node=" + nodeId + ']');
+
+ U.closeQuiet(sock);
+
+ sock = null;
+ }
+ }
+ finally {
+ lock.writeLock().unlock();
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override protected Class<?> findClass(String name) throws ClassNotFoundException {
+ if (node == null)
+ throw new ClassNotFoundException("Failed to load class, peer node left " +
+ "[cls=" +name + ", node=" + nodeId + ']');
+
+ lock.readLock().lock();
+
+ try {
+ TcpDiscoveryGetClassResponse res = requestClass(name);
+
+ if (res == null)
+ throw new ClassNotFoundException("Failed to load class, can not connect to peer node " +
+ "[cls=" + name + ", node=" + nodeId + ']');
+
+ if (res.error() != null)
+ throw new ClassNotFoundException(res.error());
+
+ assert res.classBytes() != null;
+
+ return defineClass(name, res.classBytes(), 0, res.classBytes().length);
+ }
+ finally {
+ lock.readLock().unlock();
+ }
+ }
+
+ /**
+ * @param name Class name.
+ * @return Class response or {@code null} if failed to connect.
+ */
+ @Nullable private synchronized TcpDiscoveryGetClassResponse requestClass(String name) {
+ TcpDiscoveryGetClassRequest msg = new TcpDiscoveryGetClassRequest(getLocalNodeId(), name);
+
+ for (int i = 0; i < reconCnt; i++) {
+ if (sock == null) {
+ TcpDiscoveryNode node0 = node;
+
+ if (node0 == null)
+ return null; // Node left.
+
+ sock = connect(node0);
+
+ if (sock == null)
+ break;
+ }
+
+ try {
+ return request(sock, msg);
+ }
+ catch (IOException | IgniteCheckedException e) {
+ U.closeQuiet(sock);
+
+ sock = null;
+ }
+ }
+
+ node = null; // Consider node failed.
+
+ p2pLdrs.remove(nodeId, this);
+
+ return null;
+ }
+
+ /**
+ * @param sock Socket.
+ * @param msg Message.
+ * @return Response.
+ * @throws IOException If request failed.
+ * @throws IgniteCheckedException If request failed.
+ */
+ private TcpDiscoveryGetClassResponse request(Socket sock, TcpDiscoveryGetClassRequest msg)
+ throws IOException, IgniteCheckedException
+ {
+ long tstamp = U.currentTimeMillis();
+
+ writeToSocket(sock, msg);
+
+ stats.onMessageSent(msg, U.currentTimeMillis() - tstamp);
+
+ TcpDiscoveryGetClassResponse res = readMessage(sock, null, netTimeout);
+
+ stats.onMessageReceived(res);
+
+ return res;
+ }
+
+ /**
+ * @param node Node.
+ * @return Socket or {@code null} if failed to connect.
+ */
+ private Socket connect(TcpDiscoveryNode node) {
+ Socket sock = null;
+
+ for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
+ sock = connect(addr);
+
+ if (sock != null)
+ break;
+ }
+
+ return sock;
+ }
+
+ /**
+ * @param addr Address.
+ * @return Socket or {@code null} if failed to connect.
+ */
+ private Socket connect(InetSocketAddress addr) {
+ TcpDiscoveryHandshakeRequest req = new TcpDiscoveryHandshakeRequest(getLocalNodeId());
+
+ for (int i = 0; i < reconCnt; i++) {
+ Socket sock = null;
+
+ long tstamp = U.currentTimeMillis();
+
+ try {
+ sock = openSocket(addr);
+
+ writeToSocket(sock, req);
+
+ TcpDiscoveryHandshakeResponse res = readMessage(sock, null, netTimeout);
+
+ if (!res.creatorNodeId().equals(nodeId))
+ return null;
+
+ stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
+
+ return sock;
+ }
+ catch (IOException | IgniteCheckedException e) {
+ U.closeQuiet(sock);
+ }
+ }
+
+ return null;
+ }
+ }
++
++ /**
+ * @param msg Message.
+ * @param nodeId Node ID.
+ */
+ private static void removeMetrics(TcpDiscoveryHeartbeatMessage msg, UUID nodeId) {
+ msg.removeMetrics(nodeId);
+ msg.removeCacheMetrics(nodeId);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/347f3adb/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
----------------------------------------------------------------------
[24/31] incubator-ignite git commit: ignite-724 Cluster doesn't start
with daemon node and cache metrics enabled
Posted by ag...@apache.org.
ignite-724 Cluster doesn't start with daemon node and cache metrics enabled
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7bb7586b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7bb7586b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7bb7586b
Branch: refs/heads/ignite-721
Commit: 7bb7586b202ee2c6dec8db85e86d6f0c5d94025a
Parents: c3210d8
Author: Andrey Gura <ag...@gridgain.com>
Authored: Fri Apr 10 22:30:19 2015 +0300
Committer: Andrey Gura <ag...@gridgain.com>
Committed: Fri Apr 10 22:55:25 2015 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 1 -
.../discovery/tcp/internal/TcpDiscoveryNode.java | 12 +++++++-----
.../CacheMetricsForClusterGroupSelfTest.java | 18 +++++++++++++++++-
3 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7bb7586b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 4b43fec..6cf6de8 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -4330,7 +4330,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
{
assert nodeId != null;
assert metrics != null;
- assert cacheMetrics != null;
TcpDiscoveryNode node = ring.node(nodeId);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7bb7586b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
index f5c1edb..bb8f051 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
@@ -128,8 +128,11 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
* @param metricsProvider Metrics provider.
* @param ver Version.
*/
- public TcpDiscoveryNode(UUID id, Collection<String> addrs, Collection<String> hostNames, int discPort,
- DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver) {
+ public TcpDiscoveryNode(UUID id,
+ Collection<String> addrs,
+ Collection<String> hostNames, int discPort,
+ DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver)
+ {
assert id != null;
assert !F.isEmpty(addrs);
assert metricsProvider != null;
@@ -145,6 +148,7 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
consistentId = U.consistentId(addrs, discPort);
metrics = metricsProvider.metrics();
+ cacheMetrics = metricsProvider.cacheMetrics();
sockAddrs = U.toSocketAddresses(this, discPort);
}
@@ -248,9 +252,7 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
* @param cacheMetrics Cache metrics.
*/
public void setCacheMetrics(Map<Integer, CacheMetrics> cacheMetrics) {
- assert cacheMetrics != null;
-
- this.cacheMetrics = cacheMetrics;
+ this.cacheMetrics = cacheMetrics != null ? cacheMetrics : Collections.<Integer, CacheMetrics>emptyMap();
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7bb7586b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
index 19d7aab..1ba24e3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
@@ -56,9 +56,25 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
/** Cache 2. */
private IgniteCache<Integer, Integer> cache2;
+ /** Daemon grid. */
+ private boolean daemon;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setDaemon(daemon);
+
+ return cfg;
+ }
+
/** {@inheritDoc} */
@Override protected void beforeTestsStarted() throws Exception {
startGrids(GRID_CNT);
+
+ daemon = true;
+
+ startGrid(GRID_CNT);
}
/** {@inheritDoc} */
@@ -150,7 +166,7 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
* Wait for {@link EventType#EVT_NODE_METRICS_UPDATED} event will be receieved.
*/
private void awaitMetricsUpdate() throws InterruptedException {
- final CountDownLatch latch = new CountDownLatch(GRID_CNT * 2);
+ final CountDownLatch latch = new CountDownLatch((GRID_CNT + 1) * 2);
IgnitePredicate<Event> lsnr = new IgnitePredicate<Event>() {
@Override public boolean apply(Event ignore) {
[03/31] incubator-ignite git commit: # ignite-537
Posted by ag...@apache.org.
# ignite-537
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/88e1ff88
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/88e1ff88
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/88e1ff88
Branch: refs/heads/ignite-721
Commit: 88e1ff8810ebc617e08c8eea554ec451f2df603c
Parents: 5029aeb
Author: sboikov <se...@inria.fr>
Authored: Thu Apr 9 23:49:42 2015 +0300
Committer: sboikov <se...@inria.fr>
Committed: Thu Apr 9 23:49:42 2015 +0300
----------------------------------------------------------------------
.../discovery/GridDiscoveryManager.java | 41 +---
.../continuous/GridContinuousProcessor.java | 25 ++-
.../spi/discovery/DiscoverySpiDataExchange.java | 6 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 11 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 223 +++++++++++++++++--
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 13 --
.../continuous/GridEventConsumeSelfTest.java | 5 +-
.../discovery/AbstractDiscoverySelfTest.java | 5 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 5 +-
.../junits/spi/GridSpiAbstractTest.java | 5 +-
10 files changed, 253 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 7662bcc..04ff423 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -36,7 +36,6 @@ import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.internal.util.worker.*;
import org.apache.ignite.lang.*;
-import org.apache.ignite.marshaller.jdk.*;
import org.apache.ignite.plugin.security.*;
import org.apache.ignite.plugin.segmentation.*;
import org.apache.ignite.spi.*;
@@ -172,9 +171,6 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
/** Map of dynamic cache filters. */
private Map<String, CachePredicate> registeredCaches = new HashMap<>();
- /** */
- private JdkMarshaller jdkMarsh = new JdkMarshaller();
-
/** @param ctx Context. */
public GridDiscoveryManager(GridKernalContext ctx) {
super(ctx, ctx.config().getDiscoverySpi());
@@ -421,10 +417,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, byte[]> collect(UUID nodeId) {
+ @Override public Map<Integer, Object> collect(UUID nodeId) {
assert nodeId != null;
- Map<Integer, byte[]> data = new HashMap<>();
+ Map<Integer, Object> data = new HashMap<>();
for (GridComponent comp : ctx.components()) {
Object compData = comp.collectDiscoveryData(nodeId);
@@ -432,48 +428,29 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
if (compData != null) {
assert comp.discoveryDataType() != null;
- try {
- byte[] bytes = jdkMarsh.marshal(compData);
-
- data.put(comp.discoveryDataType().ordinal(), bytes);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to marshal discovery data " +
- "[comp=" + comp + ", data=" + compData + ']', e);
- }
+ data.put(comp.discoveryDataType().ordinal(), compData);
}
}
return data;
}
- @Override public void onExchange(UUID joiningNodeId,
- UUID nodeId,
- Map<Integer, byte[]> data,
- ClassLoader clsLdr) {
- for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
+ @Override public void onExchange(UUID joiningNodeId, UUID nodeId, Map<Integer, Object> data) {
+ for (Map.Entry<Integer, Object> e : data.entrySet()) {
GridComponent comp = null;
for (GridComponent c : ctx.components()) {
- if (c.discoveryDataType() != null && c.discoveryDataType().ordinal() == entry.getKey()) {
+ if (c.discoveryDataType() != null && c.discoveryDataType().ordinal() == e.getKey()) {
comp = c;
break;
}
}
- if (comp != null) {
- try {
- Object compData = jdkMarsh.unmarshal(entry.getValue(), clsLdr);
-
- comp.onDiscoveryDataReceived(joiningNodeId, nodeId, compData);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to unmarshal discovery data for component: " + comp, e);
- }
- }
+ if (comp != null)
+ comp.onDiscoveryDataReceived(joiningNodeId, nodeId, e.getValue());
else
- U.warn(log, "Received discovery data for unknown component: " + entry.getKey());
+ U.warn(log, "Received discovery data for unknown component: " + e.getKey());
}
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index 54da8e6..99b9c0c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.processors.timeout.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.future.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.tostring.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -1559,7 +1560,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
/**
* Discovery data.
*/
- private static class DiscoveryData implements Externalizable {
+ private static class DiscoveryData implements Externalizable, GridPeerDeployAware {
/** */
private static final long serialVersionUID = 0L;
@@ -1577,6 +1578,16 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
// No-op.
}
+ @Override
+ public Class<?> deployClass() {
+ return U.peerDeployAware0(items).deployClass();
+ }
+
+ @Override
+ public ClassLoader classLoader() {
+ return U.peerDeployAware0(items).classLoader();
+ }
+
/**
* @param nodeId Node ID.
*/
@@ -1616,7 +1627,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
/**
* Discovery data item.
*/
- private static class DiscoveryDataItem implements Externalizable {
+ private static class DiscoveryDataItem implements Externalizable, GridPeerDeployAware {
/** */
private static final long serialVersionUID = 0L;
@@ -1666,6 +1677,16 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
this.interval = interval;
}
+ @Override
+ public Class<?> deployClass() {
+ return prjPred.getClass();
+ }
+
+ @Override
+ public ClassLoader classLoader() {
+ return prjPred.getClass().getClassLoader();
+ }
+
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
U.writeUuid(out, routineId);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
index 06f1af8..1f64c87 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
@@ -33,7 +33,7 @@ public interface DiscoverySpiDataExchange {
* @param joiningNodeId ID of new node that joins topology.
* @return Collection of discovery data objects from different components.
*/
- public Map<Integer, byte[]> collect(UUID joiningNodeId);
+ public Map<Integer, Object> collect(UUID joiningNodeId);
/**
* Notifies discovery manager about data received from remote node.
@@ -41,10 +41,8 @@ public interface DiscoverySpiDataExchange {
* @param joiningNodeId Joining node ID.
* @param nodeId Remote node ID for which data is provided.
* @param data Collection of marshalled discovery data objects from different components.
- * @param clsLdr Class loader to use for discovery data unmarshalling.
*/
public void onExchange(UUID joiningNodeId,
UUID nodeId,
- Map<Integer, byte[]> data,
- ClassLoader clsLdr);
+ Map<Integer, Object> data);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 6ced987..f613f4a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -897,10 +897,9 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
if (dataMap != null) {
for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
- exchange.onExchange(newNodeId,
- entry.getKey(),
- entry.getValue(),
- exchangeClassLoader(newNodeId));
+// exchange.onExchange(newNodeId,
+// entry.getKey(),
+// entry.getValue());
}
}
@@ -923,8 +922,8 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
- if (data != null)
- exchange.onExchange(newNodeId, newNodeId, data, exchangeClassLoader(newNodeId));
+// if (data != null)
+// exchange.onExchange(newNodeId, newNodeId, data);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index ef22291..3fa6fd1 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1377,6 +1377,87 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
log.debug("Discovery SPI has been connected to topology with order: " + locNode.internalOrder());
}
+ /** */
+ private GridConcurrentHashSet<ClassLoader> exchangeLdrs = new GridConcurrentHashSet();
+
+ /**
+ * @param nodeId Node ID>
+ * @return Marshalled exchange data.
+ * @throws IgniteSpiException If failed.
+ */
+ protected Map<Integer, byte[]> collectExchangeData(UUID nodeId) throws IgniteSpiException {
+ boolean p2pEnaled = ignite.configuration().isPeerClassLoadingEnabled();
+
+ Map<Integer, Object> data = exchange.collect(nodeId);
+
+ Map<Integer, byte[]> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, Object> entry : data.entrySet()) {
+ try {
+ byte[] bytes = marsh.marshal(entry.getValue());
+
+ data0.put(entry.getKey(), bytes);
+
+ if (p2pEnaled) {
+ ClassLoader ldr;
+
+ if (entry.getValue() instanceof GridPeerDeployAware)
+ ldr = ((GridPeerDeployAware)entry.getValue()).classLoader();
+ else
+ ldr = entry.getValue().getClass().getClassLoader();
+
+ log.info("Add loader: " + entry.getValue() + " " + ldr);
+
+ if (ldr != null) {
+ if (exchangeLdrs.add(ldr))
+ log.info("Added loader: " + ldr);
+ }
+ }
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to marshal discovery data " +
+ "[comp=" + entry.getKey() + ", data=" + entry.getValue() + ']', e);
+
+ throw new IgniteSpiException("Failed to marshal discovery data.", e);
+ }
+ }
+
+ return data0;
+ }
+
+ /**
+ * @param joiningNode Joining node.
+ * @param nodeId Remote node ID for which data is provided.
+ * @param data Collection of marshalled discovery data objects from different components.
+ */
+ protected void onExchange(TcpDiscoveryNode joiningNode,
+ UUID nodeId,
+ Map<Integer, byte[]> data) {
+ TcpDiscoveryNode node;
+
+ if (joiningNode.id().equals(nodeId))
+ node = joiningNode;
+ else
+ node = ring.node(nodeId);
+
+ ClassLoader clsLdr = exchangeClassLoader(node);
+
+ Map<Integer, Object> data0 = U.newHashMap(data.size());
+
+ for (Map.Entry<Integer, byte[]> entry : data.entrySet()) {
+ try {
+ Object compData = marsh.unmarshal(entry.getValue(), clsLdr);
+
+ data0.put(entry.getKey(), compData);
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to unmarshal discovery data for component: " + entry.getKey(), e);
+ }
+ }
+
+ exchange.onExchange(joiningNode.id(), nodeId, data0);
+ }
+
/**
* Tries to send join request message to a random node presenting in topology.
* Address is provided by {@link TcpDiscoveryIpFinder} and message is
@@ -1388,7 +1469,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
@SuppressWarnings({"BusyWait"})
private boolean sendJoinRequestMessage() throws IgniteSpiException {
TcpDiscoveryAbstractMessage joinReq = new TcpDiscoveryJoinRequestMessage(locNode,
- exchange.collect(getLocalNodeId()));
+ collectExchangeData(getLocalNodeId()));
// Time when it has been detected, that addresses from IP finder do not respond.
long noResStart = 0;
@@ -2198,7 +2279,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
private TcpDiscoveryGetClassResponse processGetClassRequest(TcpDiscoveryGetClassRequest req) {
assert !F.isEmpty(req.className()) : req;
- InputStream in = getClass().getResourceAsStream(req.className());
+ String rsrc = U.classNameToResourceName(req.className());
+
+ log.info("Get class request: " + req.className() + " " + rsrc);
+
+ InputStream in = locLdr.getResourceAsStream(rsrc);
byte[] clsBytes = null;
String err = null;
@@ -3591,9 +3676,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
Map<Integer, byte[]> data = msg.newNodeDiscoveryData();
if (data != null)
- exchange.onExchange(node.id(), node.id(), data, exchangeClassLoader(node.id()));
+ onExchange(node, node.id(), data);
- msg.addDiscoveryData(locNodeId, exchange.collect(node.id()));
+ msg.addDiscoveryData(locNodeId, collectExchangeData(node.id()));
}
if (log.isDebugEnabled())
@@ -3662,12 +3747,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
// Notify outside of synchronized block.
if (dataMap != null) {
- for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) {
- exchange.onExchange(node.id(),
- entry.getKey(),
- entry.getValue(),
- exchangeClassLoader(node.id()));
- }
+ for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet())
+ onExchange(node, entry.getKey(), entry.getValue());
}
}
@@ -5221,30 +5302,109 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
U.closeQuiet(sock);
}
}
+
+ /** */
+ private ConcurrentMap<UUID, DiscoveryDeploymentClassLoader> ldrs = new ConcurrentHashMap<>();
+
+ /** */
+ private LocalDeploymentClassLoader locLdr = new LocalDeploymentClassLoader(null);
+
+ /**
+ *
+ */
+ class LocalDeploymentClassLoader extends ClassLoader {
+ public LocalDeploymentClassLoader(ClassLoader parent) {
+ super(parent);
+ }
+
+ @Override
+ public InputStream getResourceAsStream(String name) {
+ log.info("Local getResourceAsStream: " + name);
+
+ for (ClassLoader ldr : exchangeLdrs) {
+ InputStream in = ldr.getResourceAsStream(name);
+
+ if (in != null)
+ return in;
+ }
+
+ return super.getResourceAsStream(name);
+ }
+
+ @Override public Class<?> loadClass(String name) throws ClassNotFoundException {
+ log.info("Local loadClass: " + name);
+
+ for (ClassLoader ldr : exchangeLdrs) {
+ try {
+ return ldr.loadClass(name);
+ }
+ catch (ClassNotFoundException ignore) {
+ }
+ }
+
+ return super.loadClass(name);
+ }
+ }
+
+ /**
+ * @param nodeId Node ID.
+ * @return Class loader for exchange data unmarshalling.
+ */
+ protected ClassLoader exchangeClassLoader(TcpDiscoveryNode node) {
+ assert ignite != null;
+
+ UUID nodeId = node.id();
+
+ if (!ignite.configuration().isPeerClassLoadingEnabled())
+ return null;
+
+ if (nodeId.equals(getLocalNodeId()))
+ return locLdr;
+
+ DiscoveryDeploymentClassLoader ldr = ldrs.get(nodeId);
+
+ if (ldr == null)
+ ldr = F.addIfAbsent(ldrs, nodeId, new DiscoveryDeploymentClassLoader(node));
+
+ return ldr;
+ }
+
/**
*
*/
private class DiscoveryDeploymentClassLoader extends ClassLoader {
/** */
- private final UUID nodeId;
+ private final TcpDiscoveryNode node;
/** */
private Socket sock;
/**
- * @param nodeId Node ID.
+ * @param node Node.
*/
- public DiscoveryDeploymentClassLoader(UUID nodeId) {
- this.nodeId = nodeId;
+ public DiscoveryDeploymentClassLoader(TcpDiscoveryNode node) {
+ assert !node.id().equals(getLocalNodeId());
+
+ this.node = node;
+ }
+
+ @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
+ // log.info("P2p load class: " + name);
+
+ return super.loadClass(name, resolve);
}
/** {@inheritDoc} */
@Override protected Class<?> findClass(String name) throws ClassNotFoundException {
+ log.info("P2p find class: " + name);
+
TcpDiscoveryGetClassResponse res = requestClass(name);
if (res.error() != null)
throw new ClassNotFoundException(res.error());
+ log.info("P2p loaded: " + name);
+
assert res.classBytes() != null;
Class<?> cls = defineClass(name, res.classBytes(), 0, res.classBytes().length);
@@ -5272,16 +5432,45 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return res;
}
catch (IOException | IgniteCheckedException e) {
+ e.printStackTrace();
+
throw new ClassNotFoundException("Failed to load class: " + name, e);
}
}
private Socket connect() {
if (sock == null) {
- TcpDiscoveryNode node = ring.node(nodeId);
+ for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
+ sock = connect(addr);
+
+ if (sock != null)
+ break;
+ }
+ }
+
+ return sock;
+ }
+
+ private Socket connect(InetSocketAddress addr) {
+ UUID locNodeId = getLocalNodeId();
+
+ Socket sock = null;
+
+ for (int i = 0; i < reconCnt; i++) {
+ try {
+ sock = openSocket(addr);
- if (node == null)
- return null;
+ writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
+
+ TcpDiscoveryHandshakeResponse res = readMessage(sock, null, netTimeout);
+
+ break;
+ }
+ catch (IOException | IgniteCheckedException e) {
+ e.printStackTrace();
+
+ U.closeQuiet(sock);
+ }
}
return sock;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 5712d25..9cde198 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -725,19 +725,6 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
/**
- * @param nodeId Node ID.
- * @return Class loader for exchange data unmarshalling.
- */
- protected ClassLoader exchangeClassLoader(UUID nodeId) {
- assert ignite != null;
-
- if (!ignite.configuration().isPeerClassLoadingEnabled() || nodeId.equals(getLocalNodeId()))
- return null;
-
- return null;
- }
-
- /**
* @param msg Message.
* @return Whether delivery of the message is ensured.
*/
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
index a51d1a8..4bd2901 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/GridEventConsumeSelfTest.java
@@ -763,7 +763,7 @@ public class GridEventConsumeSelfTest extends GridCommonAbstractTest implements
* @throws Exception If failed.
*/
// TODO: GG-6730
- public void _testNodeJoinWithP2P() throws Exception {
+ public void testNodeJoinWithP2P() throws Exception {
final Collection<UUID> nodeIds = new HashSet<>();
final AtomicInteger cnt = new AtomicInteger();
final CountDownLatch latch = new CountDownLatch(GRID_CNT + 1);
@@ -800,8 +800,7 @@ public class GridEventConsumeSelfTest extends GridCommonAbstractTest implements
assertEquals(GRID_CNT + 1, cnt.get());
}
finally {
- stopGrid("anotherGrid1");
- stopGrid("anotherGrid2");
+ stopGrid("anotherGrid");
grid(0).events().stopRemoteListen(consumeId);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index 78710fe..91d3514 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -379,14 +379,13 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
});
spi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, byte[]> collect(UUID nodeId) {
+ @Override public Map<Integer, Object> collect(UUID nodeId) {
return new HashMap<>();
}
@Override public void onExchange(UUID joiningNodeId,
UUID nodeId,
- Map<Integer, byte[]> data,
- ClassLoader clsLdr) {
+ Map<Integer, Object> data) {
// No-op.
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
index 6692046..058d908 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiStartStopSelfTest.java
@@ -44,14 +44,13 @@ public class TcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTe
@GridSpiTestConfig
public DiscoverySpiDataExchange getDataExchange() {
return new DiscoverySpiDataExchange() {
- @Override public Map<Integer, byte[]> collect(UUID nodeId) {
+ @Override public Map<Integer, Object> collect(UUID nodeId) {
return null;
}
@Override public void onExchange(UUID joiningNodeId,
UUID nodeId,
- Map<Integer, byte[]> data,
- ClassLoader clsLdr) {
+ Map<Integer, Object> data) {
// No-op.
}
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88e1ff88/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
index 7b83979..82f3d6c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/spi/GridSpiAbstractTest.java
@@ -215,14 +215,13 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
discoSpi.setMetricsProvider(createMetricsProvider());
discoSpi.setDataExchange(new DiscoverySpiDataExchange() {
- @Override public Map<Integer, byte[]> collect(UUID nodeId) {
+ @Override public Map<Integer, Object> collect(UUID nodeId) {
return new HashMap<>();
}
@Override public void onExchange(UUID joiningNodeId,
UUID nodeId,
- Map<Integer, byte[]> data,
- ClassLoader clsLdr) {
+ Map<Integer, Object> data) {
}
});
[18/31] incubator-ignite git commit: # Last-minute fix to IGFS: we
were throwing IOError in some pretty valid cases what led to missed future
completion and eventual hang.
Posted by ag...@apache.org.
# Last-minute fix to IGFS: we were throwing IOError in some pretty valid cases what led to missed future completion and eventual hang.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c3210d80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c3210d80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c3210d80
Branch: refs/heads/ignite-721
Commit: c3210d8035bca7dccae2b1accacd7e641c4e8cc6
Parents: 26fa0bf
Author: thatcoach <pp...@list.ru>
Authored: Fri Apr 10 20:57:51 2015 +0300
Committer: thatcoach <pp...@list.ru>
Committed: Fri Apr 10 20:57:51 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/igfs/IgfsInputStreamImpl.java | 2 +-
.../ignite/internal/processors/igfs/IgfsOutputStreamImpl.java | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c3210d80/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsInputStreamImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsInputStreamImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsInputStreamImpl.java
index 30d2cf3..6c35032 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsInputStreamImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsInputStreamImpl.java
@@ -312,7 +312,7 @@ public class IgfsInputStreamImpl extends IgfsInputStreamAdapter {
}
}
catch (IgniteCheckedException e) {
- throw new IOError(e); // Something unrecoverable.
+ throw new IOException("File to close the file: " + fileInfo.path(), e);
}
finally {
closed = true;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c3210d80/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
index c5b3e20..298733a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
@@ -262,7 +262,7 @@ class IgfsOutputStreamImpl extends IgfsOutputStreamAdapter {
exists = meta.exists(fileInfo.id());
}
catch (IgniteCheckedException e) {
- throw new IOError(e); // Something unrecoverable.
+ throw new IOException("File to read file metadata: " + fileInfo.path(), e);
}
if (!exists) {
@@ -330,7 +330,7 @@ class IgfsOutputStreamImpl extends IgfsOutputStreamAdapter {
exists = !deleted && meta.exists(fileInfo.id());
}
catch (IgniteCheckedException e) {
- throw new IOError(e); // Something unrecoverable.
+ throw new IOException("File to read file metadata: " + fileInfo.path(), e);
}
if (exists) {
@@ -370,7 +370,7 @@ class IgfsOutputStreamImpl extends IgfsOutputStreamAdapter {
throw new IOException("File was concurrently deleted: " + path);
}
catch (IgniteCheckedException e) {
- throw new IOError(e); // Something unrecoverable.
+ throw new IOException("File to read file metadata: " + fileInfo.path(), e);
}
meta.updateParentListingAsync(parentId, fileInfo.id(), fileName, bytes, modificationTime);