Repository: incubator-ignite Updated Branches: refs/heads/gg-9998 [created] d50b6ab29
gg-9998: Add new type of message. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d50b6ab2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d50b6ab2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d50b6ab2 Branch: refs/heads/gg-9998 Commit: d50b6ab2980c82e6e9ae0000030c643647b9f002 Parents: bca4198 Author: ivasilinets <vasilinetc....@gmail.com> Authored: Tue Mar 31 00:22:32 2015 +0300 Committer: ivasilinets <vasilinetc....@gmail.com> Committed: Tue Mar 31 00:24:06 2015 +0300 ---------------------------------------------------------------------- .../communication/GridIoMessageFactory.java | 5 + .../deployment/GridDeploymentRequest.java | 18 +++- .../deployment/GridDeploymentTestMessage.java | 104 +++++++++++++++++++ .../processors/cache/GridCacheMessage.java | 17 +++ 4 files changed, 143 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d50b6ab2/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java index b82147b..271528c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java @@ -595,6 +595,11 @@ public class GridIoMessageFactory implements MessageFactory { break; + case 112: + msg = new GridDeploymentTestMessage(); + + break; + default: if (ext != null) { for (MessageFactory factory : ext) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d50b6ab2/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java index a6d80bb..e56357d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java @@ -55,6 +55,8 @@ public class GridDeploymentRequest implements Message { @GridDirectCollection(UUID.class) private Collection<UUID> nodeIds; + private GridDeploymentTestMessage testMessage; + /** * No-op constructor to support {@link Externalizable} interface. * This constructor is not meant to be used for other purposes. @@ -197,6 +199,12 @@ public class GridDeploymentRequest implements Message { writer.incrementState(); + case 5: + if (!writer.writeMessage("testMessage", testMessage)) + return false; + + writer.incrementState(); + } return true; @@ -250,6 +258,14 @@ public class GridDeploymentRequest implements Message { reader.incrementState(); + case 5: + testMessage = reader.readMessage("testMessage"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + } return true; @@ -262,7 +278,7 @@ public class GridDeploymentRequest implements Message { /** {@inheritDoc} */ @Override public byte fieldsCount() { - return 5; + return 6; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d50b6ab2/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentTestMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentTestMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentTestMessage.java new file mode 100644 index 0000000..5321e11 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentTestMessage.java @@ -0,0 +1,104 @@ +/* + * 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.managers.deployment; + +import org.apache.ignite.plugin.extensions.communication.Message; +import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; +import org.apache.ignite.plugin.extensions.communication.MessageReader; +import org.apache.ignite.plugin.extensions.communication.MessageWriter; + +import java.nio.ByteBuffer; + +/** + * Test message. + */ +public class GridDeploymentTestMessage implements Message{ + /** */ + private boolean testBool = true; + + /** */ + private Integer[] testArray = {1 , 2, 3}; + + /** {@inheritDoc} */ + @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { + writer.setBuffer(buf); + + if (!writer.isHeaderWritten()) { + if (!writer.writeHeader(directType(), fieldsCount())) + return false; + + writer.onHeaderWritten(); + } + + switch (writer.state()) { + case 0: + if (!writer.writeObjectArray("testArray", testArray, MessageCollectionItemType.INT)) + return false; + + writer.incrementState(); + + case 1: + if (!writer.writeBoolean("testBool", testBool)) + return false; + + writer.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { + reader.setBuffer(buf); + + if (!reader.beforeMessageRead()) + return false; + + switch (reader.state()) { + case 0: + testArray = reader.readObjectArray("testArray", MessageCollectionItemType.INT, Integer.class); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 1: + testBool = reader.readBoolean("testBool"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public byte directType() { + return 112; + } + + /** {@inheritDoc} */ + @Override public byte fieldsCount() { + return 2; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d50b6ab2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java index b9bce3e..7464c82 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java @@ -69,6 +69,9 @@ public abstract class GridCacheMessage implements Message { /** Cache ID. */ protected int cacheId; + @GridDirectCollection(Integer.class) + public Collection<Integer> testCollection = new HashSet<>(Arrays.asList(1, 2, 3)); + /** * Gets next ID for indexed message ID. * @@ -640,6 +643,12 @@ public abstract class GridCacheMessage implements Message { writer.incrementState(); + case 3: + if (!writer.writeCollection("testCollection", testCollection, MessageCollectionItemType.INT)) + return false; + + writer.incrementState(); + } return true; @@ -677,6 +686,14 @@ public abstract class GridCacheMessage implements Message { reader.incrementState(); + case 3: + testCollection = reader.readCollection("testCollection", MessageCollectionItemType.INT); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + } return true;