From 2aeb6332ef099292112870ab5bf3a312e6d2984a Mon Sep 17 00:00:00 2001 From: Ivan Bessonov Date: Wed, 12 Oct 2022 14:09:55 +0300 Subject: [PATCH] IGNITE-17874 Added List and ByteBuffer support to message serialization (#1189) --- .../MessageCollectionItemType.java | 3 + .../messages/MessageImplGenerator.java | 1 - .../serialization/BaseMethodNameResolver.java | 6 + .../MessageCollectionItemTypeConverter.java | 3 + .../MessageReaderMethodResolver.java | 18 +++ .../MessageWriterMethodResolver.java | 19 +++ .../network/serialization/MessageReader.java | 19 +++ .../network/serialization/MessageWriter.java | 21 ++++ .../direct/DirectMarshallingUtils.java | 1 - .../network/direct/DirectMessageReader.java | 26 ++++ .../network/direct/DirectMessageWriter.java | 20 +++ .../direct/stream/DirectByteBufferStream.java | 14 +++ .../stream/DirectByteBufferStreamImplV1.java | 114 +++++++++++++++++- .../network/AllTypesMessageGenerator.java | 21 +++- .../network/messages/AllTypesMessage.java | 8 +- .../network/processor/AllTypesMessage.java | 2 +- .../raft/jraft/entity/LocalStorageOutter.java | 2 - .../raft/jraft/rpc/impl/IgniteRpcServer.java | 1 - .../message/SnapshotMvDataResponse.java | 4 +- .../message/SnapshotTxDataResponse.java | 1 - .../request/ReadOnlyReplicaRequest.java | 1 - .../request/ReadWriteReplicaRequest.java | 1 - 22 files changed, 289 insertions(+), 17 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java index bab7760654a..38fbca9b7dd 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java @@ -77,6 +77,9 @@ public enum MessageCollectionItemType { /** Bit set. */ BIT_SET, + /** Byte buffer. */ + BYTE_BUFFER, + /** UUID. */ UUID, diff --git a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/messages/MessageImplGenerator.java b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/messages/MessageImplGenerator.java index e36d2d8faa5..2f7e79aff93 100644 --- a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/messages/MessageImplGenerator.java +++ b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/messages/MessageImplGenerator.java @@ -694,5 +694,4 @@ private enum MaybeMessageType { MESSAGE, MAP; } - } diff --git a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/BaseMethodNameResolver.java b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/BaseMethodNameResolver.java index 695b71b3de6..1cf9e9f841c 100644 --- a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/BaseMethodNameResolver.java +++ b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/BaseMethodNameResolver.java @@ -17,8 +17,10 @@ package org.apache.ignite.internal.network.processor.serialization; +import java.nio.ByteBuffer; import java.util.BitSet; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.processing.ProcessingEnvironment; @@ -124,8 +126,12 @@ private String resolveReferenceMethodName(DeclaredType parameterType) { return "BitSet"; } else if (typeUtils.isSameType(parameterType, Collection.class)) { return "Collection"; + } else if (typeUtils.isSameType(parameterType, List.class)) { + return "List"; } else if (typeUtils.isSameType(parameterType, Map.class)) { return "Map"; + } else if (typeUtils.isSameType(parameterType, ByteBuffer.class)) { + return "ByteBuffer"; } else { throw new ProcessingException("Unsupported reference type for message (de-)serialization: " + parameterType); } diff --git a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageCollectionItemTypeConverter.java b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageCollectionItemTypeConverter.java index e674d884d3d..73a78086e6d 100644 --- a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageCollectionItemTypeConverter.java +++ b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageCollectionItemTypeConverter.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.network.processor.serialization; +import java.nio.ByteBuffer; import java.util.BitSet; import java.util.UUID; import javax.annotation.processing.ProcessingEnvironment; @@ -125,6 +126,8 @@ private MessageCollectionItemType fromDeclaredType(DeclaredType parameterType) { return MessageCollectionItemType.MSG; } else if (typeUtils.isSameType(parameterType, BitSet.class)) { return MessageCollectionItemType.BIT_SET; + } else if (typeUtils.isSameType(parameterType, ByteBuffer.class)) { + return MessageCollectionItemType.BYTE_BUFFER; } else { throw new ProcessingException("Unsupported MessageCollectionItemType: " + parameterType); } diff --git a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageReaderMethodResolver.java b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageReaderMethodResolver.java index 10777c1e0b8..d371a7078af 100644 --- a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageReaderMethodResolver.java +++ b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageReaderMethodResolver.java @@ -75,6 +75,8 @@ CodeBlock resolveReadMethod(ExecutableElement getter) { return resolveReadObjectArray((ArrayType) parameterType, parameterName); case "Collection": return resolveReadCollection((DeclaredType) parameterType, parameterName); + case "List": + return resolveReadList((DeclaredType) parameterType, parameterName); case "Map": return resolveReadMap((DeclaredType) parameterType, parameterName); default: @@ -115,6 +117,22 @@ private CodeBlock resolveReadCollection(DeclaredType parameterType, String param .build(); } + /** + * Creates a {@link MessageReader#readList(String, MessageCollectionItemType)} method call. + */ + private CodeBlock resolveReadList(DeclaredType parameterType, String parameterName) { + TypeMirror listGenericType = parameterType.getTypeArguments().get(0); + + return CodeBlock.builder() + .add( + "readList($S, $T.$L)", + parameterName, + MessageCollectionItemType.class, + typeConverter.fromTypeMirror(listGenericType) + ) + .build(); + } + /** * Creates a {@link MessageReader#readMap(String, MessageCollectionItemType, MessageCollectionItemType, boolean)} method call. */ diff --git a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageWriterMethodResolver.java b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageWriterMethodResolver.java index a61c1bfbd10..58bdb262919 100644 --- a/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageWriterMethodResolver.java +++ b/modules/network-annotation-processor/src/main/java/org/apache/ignite/internal/network/processor/serialization/MessageWriterMethodResolver.java @@ -87,6 +87,8 @@ CodeBlock resolveWriteMethod(ExecutableElement getter) { return resolveWriteObjectArray((ArrayType) getterReturnType, parameterName); case "Collection": return resolveWriteCollection((DeclaredType) getterReturnType, parameterName); + case "List": + return resolveWriteList((DeclaredType) getterReturnType, parameterName); case "Map": return resolveWriteMap((DeclaredType) getterReturnType, parameterName); default: @@ -130,6 +132,23 @@ private CodeBlock resolveWriteCollection(DeclaredType parameterType, String para .build(); } + /** + * Creates a {@link MessageWriter#writeList(String, List, MessageCollectionItemType)} method call. + */ + private CodeBlock resolveWriteList(DeclaredType parameterType, String parameterName) { + TypeMirror listGenericType = parameterType.getTypeArguments().get(0); + + return CodeBlock.builder() + .add( + "writeList($S, message.$L(), $T.$L)", + parameterName, + parameterName, + MessageCollectionItemType.class, + typeConverter.fromTypeMirror(listGenericType) + ) + .build(); + } + /** * Creates a {@link MessageWriter#writeMap(String, Map, MessageCollectionItemType, MessageCollectionItemType)} method call. */ diff --git a/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageReader.java b/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageReader.java index dd01c99aa75..71c2ba507f4 100644 --- a/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageReader.java +++ b/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageReader.java @@ -21,6 +21,7 @@ import java.util.BitSet; import java.util.Collection; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.ignite.lang.IgniteUuid; @@ -213,6 +214,14 @@ public interface MessageReader { */ public BitSet readBitSet(String name); + /** + * Reads a {@link ByteBuffer}. + * + * @param name Field name. + * @return {@link ByteBuffer}. + */ + ByteBuffer readByteBuffer(String name); + /** * Reads an {@link UUID}. * @@ -259,6 +268,16 @@ public interface MessageReader { */ public > C readCollection(String name, MessageCollectionItemType itemType); + /** + * Reads a list. + * + * @param Type of collection. + * @param name Field name. + * @param itemType An item type of the Collection. + * @return Collection. + */ + public > C readList(String name, MessageCollectionItemType itemType); + /** * Reads a map. * diff --git a/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageWriter.java b/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageWriter.java index 6583c183c36..f8ed81ba041 100644 --- a/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageWriter.java +++ b/modules/network-api/src/main/java/org/apache/ignite/network/serialization/MessageWriter.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.util.BitSet; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.ignite.lang.IgniteUuid; @@ -237,6 +238,15 @@ public interface MessageWriter { */ public boolean writeBitSet(String name, BitSet val); + /** + * Writes a {@link ByteBuffer}. + * + * @param name Field name. + * @param val {@link ByteBuffer}. + * @return Whether a value was fully written. + */ + boolean writeByteBuffer(String name, ByteBuffer val); + /** * Writes an {@link UUID}. * @@ -286,6 +296,17 @@ public interface MessageWriter { */ public boolean writeCollection(String name, Collection col, MessageCollectionItemType itemType); + /** + * Writes a list. + * + * @param Type of collection. + * @param name Field name. + * @param col Collection. + * @param itemType An item type of the collection. + * @return Whether a value was fully written. + */ + public boolean writeList(String name, List col, MessageCollectionItemType itemType); + /** * Writes a map. * diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMarshallingUtils.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMarshallingUtils.java index 2adfbaffd40..fcda1e8e15b 100644 --- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMarshallingUtils.java +++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMarshallingUtils.java @@ -46,5 +46,4 @@ public static short getShort(ByteBuffer buffer) { private static short asShort(byte b0, byte b1) { return (short) ((b1 & 0xFF) << 8 | b0 & 0xFF); } - } diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageReader.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageReader.java index ca7b4179a42..509f58ccc99 100644 --- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageReader.java +++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageReader.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.util.BitSet; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.ignite.internal.network.direct.state.DirectMessageState; @@ -310,6 +311,17 @@ public BitSet readBitSet(String name) { return val; } + @Override + public ByteBuffer readByteBuffer(String name) { + DirectByteBufferStream stream = state.item().stream; + + ByteBuffer val = stream.readByteBuffer(); + + lastRead = stream.lastFinished(); + + return val; + } + /** {@inheritDoc} */ @Override public UUID readUuid(String name) { @@ -371,6 +383,20 @@ public > C readCollection(String name, MessageCollection return col; } + /** {@inheritDoc} */ + @Override + public > C readList(String name, MessageCollectionItemType itemType) { + DirectByteBufferStream stream = state.item().stream; + + Collection col = stream.readCollection(itemType, this); + + lastRead = stream.lastFinished(); + + assert col == null || col instanceof List : col; + + return (C) col; + } + /** {@inheritDoc} */ @Override public > M readMap(String name, MessageCollectionItemType keyType, diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageWriter.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageWriter.java index 505d51511ca..71f92812e09 100644 --- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageWriter.java +++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/DirectMessageWriter.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.util.BitSet; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.ignite.internal.network.direct.state.DirectMessageState; @@ -284,6 +285,15 @@ public boolean writeBitSet(String name, BitSet val) { return stream.lastFinished(); } + @Override + public boolean writeByteBuffer(String name, ByteBuffer val) { + DirectByteBufferStream stream = state.item().stream; + + stream.writeByteBuffer(val); + + return stream.lastFinished(); + } + /** {@inheritDoc} */ @Override public boolean writeUuid(String name, UUID val) { @@ -334,6 +344,16 @@ public boolean writeCollection(String name, Collection col, MessageCollec return stream.lastFinished(); } + /** {@inheritDoc} */ + @Override + public boolean writeList(String name, List col, MessageCollectionItemType itemType) { + DirectByteBufferStream stream = state.item().stream; + + stream.writeCollection(col, itemType, this); + + return stream.lastFinished(); + } + /** {@inheritDoc} */ @Override public boolean writeMap(String name, Map map, MessageCollectionItemType keyType, diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStream.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStream.java index bbeb8b61792..086fda55f72 100644 --- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStream.java +++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStream.java @@ -196,6 +196,13 @@ public interface DirectByteBufferStream { */ void writeBitSet(BitSet val); + /** + * Writes {@link ByteBuffer}. + * + * @param val Value. + */ + void writeByteBuffer(ByteBuffer val); + /** * Writes {@link UUID}. * @@ -377,6 +384,13 @@ void writeMap(Map map, MessageCollectionItemType keyType, MessageCo */ BitSet readBitSet(); + /** + * Reads {@link ByteBuffer}. + * + * @return Value. + */ + ByteBuffer readByteBuffer(); + /** * Reads {@link UUID}. * diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java index c26b2f9c68d..9d19dac3777 100644 --- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java +++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java @@ -37,6 +37,7 @@ import java.lang.reflect.Array; import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.ArrayList; import java.util.BitSet; import java.util.Collection; @@ -65,6 +66,12 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream { /** Poison object. */ private static final Object NULL = new Object(); + /** Flag that indicates that byte buffer is not null. */ + private static final byte BYTE_BUFFER_NOT_NULL_FLAG = 1; + + /** Flag that indicates that byte buffer has Big Endinan order. */ + private static final byte BYTE_BUFFER_BIG_ENDIAN_FLAG = 2; + /** Message serialization registry. */ private final PerSessionSerializationService serializationService; @@ -141,6 +148,10 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream { private long uuidLocId; + private int byteBufferState; + + private byte byteBufferFlag; + protected boolean lastFinished; /** byte-array representation of string. */ @@ -496,6 +507,54 @@ public void writeBitSet(BitSet val) { writeLongArray(val != null ? val.toLongArray() : null); } + /** {@inheritDoc} */ + @Override + public void writeByteBuffer(ByteBuffer val) { + switch (byteBufferState) { + case 0: + byte flag = 0; + + if (val != null) { + flag |= BYTE_BUFFER_NOT_NULL_FLAG; + + if (val.order() == ByteOrder.BIG_ENDIAN) { + flag |= BYTE_BUFFER_BIG_ENDIAN_FLAG; + } + } + + writeByte(flag); + + if (!lastFinished || val == null) { + return; + } + + byteBufferState++; + + //noinspection fallthrough + case 1: + assert !val.isReadOnly(); + + int position = val.position(); + int length = val.limit() - position; + + if (val.isDirect()) { + lastFinished = writeArray(null, GridUnsafe.bufferAddress(val) + position, length, length); + } else { + lastFinished = writeArray(val.array(), BYTE_ARR_OFF + val.arrayOffset() + position, length, length); + } + + if (!lastFinished) { + return; + } + + byteBufferState = 0; + break; + + default: + throw new IllegalArgumentException("Unknown byteBufferState: " + uuidState); + } + } + /** {@inheritDoc} */ @Override public void writeUuid(UUID val) { @@ -1049,6 +1108,48 @@ public BitSet readBitSet() { return arr != null ? BitSet.valueOf(arr) : null; } + @Override + public ByteBuffer readByteBuffer() { + byte[] bytes; + + switch (byteBufferState) { + case 0: + byteBufferFlag = readByte(); + + boolean isNull = (byteBufferFlag & BYTE_BUFFER_NOT_NULL_FLAG) == 0; + + if (!lastFinished || isNull) { + return null; + } + + byteBufferState++; + + //noinspection fallthrough + case 1: + bytes = readByteArray(); + + if (!lastFinished) { + return null; + } + + byteBufferState = 0; + break; + + default: + throw new IllegalArgumentException("Unknown byteBufferState: " + uuidState); + } + + ByteBuffer val = ByteBuffer.wrap(bytes); + + if ((byteBufferFlag & BYTE_BUFFER_BIG_ENDIAN_FLAG) == 0) { + val.order(ByteOrder.LITTLE_ENDIAN); + } else { + val.order(ByteOrder.BIG_ENDIAN); + } + + return val; + } + /** {@inheritDoc} */ @Override public UUID readUuid() { @@ -1362,9 +1463,8 @@ public > C readCollection(MessageCollectionItemType item * @param bytes Length in bytes. * @return Whether array was fully written. */ - boolean writeArray(Object arr, long off, int len, int bytes) { - assert arr != null; - assert arr.getClass().isArray() && arr.getClass().getComponentType().isPrimitive(); + boolean writeArray(@Nullable Object arr, long off, int len, int bytes) { + assert arr == null || arr.getClass().isArray() && arr.getClass().getComponentType().isPrimitive(); assert off > 0; assert len >= 0; assert bytes >= 0; @@ -1722,6 +1822,11 @@ protected void write(MessageCollectionItemType type, Object val, MessageWriter w break; + case BYTE_BUFFER: + writeByteBuffer((ByteBuffer) val); + + break; + case UUID: writeUuid((UUID) val); @@ -1815,6 +1920,9 @@ protected Object read(MessageCollectionItemType type, MessageReader reader) { case BIT_SET: return readBitSet(); + case BYTE_BUFFER: + return readByteBuffer(); + case UUID: return readUuid(); diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/AllTypesMessageGenerator.java b/modules/network/src/test/java/org/apache/ignite/internal/network/AllTypesMessageGenerator.java index c19dc440b88..65a5fda1d77 100644 --- a/modules/network/src/test/java/org/apache/ignite/internal/network/AllTypesMessageGenerator.java +++ b/modules/network/src/test/java/org/apache/ignite/internal/network/AllTypesMessageGenerator.java @@ -21,6 +21,8 @@ import static java.util.stream.Collectors.toMap; import java.lang.reflect.Field; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.BitSet; import java.util.Random; import java.util.UUID; @@ -74,9 +76,13 @@ public static AllTypesMessage generate(long seed, boolean nestedMsg, boolean fil .mapToObj(unused -> generate(seed, false, fillArrays)) .collect(toList())); - message.newMsgMapX(IntStream.range(0, 10) + message.netMsgMapX(IntStream.range(0, 10) .boxed() .collect(toMap(String::valueOf, unused -> generate(seed, false, fillArrays)))); + + message.netMsgListY(IntStream.range(0, 10) + .mapToObj(unused -> generate(seed, false, fillArrays)) + .collect(toList())); } return message.build(); @@ -199,6 +205,19 @@ private static Object randomValue(Random random, Field field, boolean nestedMsg) return generate(random.nextLong(), false); } return null; + } else if (type == ByteBuffer.class) { + byte[] bytes = new byte[16]; + random.nextBytes(bytes); + + ByteBuffer outerBuffer = random.nextBoolean() ? ByteBuffer.allocate(20) : ByteBuffer.allocateDirect(20); + ByteBuffer buffer = outerBuffer.position(2).limit(18).slice(); + buffer.put(bytes); + + buffer.order(random.nextBoolean() ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); + buffer.position(random.nextInt(3)); + buffer.limit(14 + random.nextInt(3)); + + return buffer; } else { return null; } diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/messages/AllTypesMessage.java b/modules/network/src/test/java/org/apache/ignite/internal/network/messages/AllTypesMessage.java index 03793fc685a..fa93674c52c 100644 --- a/modules/network/src/test/java/org/apache/ignite/internal/network/messages/AllTypesMessage.java +++ b/modules/network/src/test/java/org/apache/ignite/internal/network/messages/AllTypesMessage.java @@ -18,8 +18,10 @@ package org.apache.ignite.internal.network.messages; import java.io.Serializable; +import java.nio.ByteBuffer; import java.util.BitSet; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.ignite.lang.IgniteUuid; @@ -77,5 +79,9 @@ public interface AllTypesMessage extends NetworkMessage, Serializable { Collection netMsgCollW(); - Map newMsgMapX(); + Map netMsgMapX(); + + List netMsgListY(); + + ByteBuffer byteBufferZ(); } diff --git a/modules/network/src/test/resources/org/apache/ignite/internal/network/processor/AllTypesMessage.java b/modules/network/src/test/resources/org/apache/ignite/internal/network/processor/AllTypesMessage.java index b0a494b50db..313003888a8 100644 --- a/modules/network/src/test/resources/org/apache/ignite/internal/network/processor/AllTypesMessage.java +++ b/modules/network/src/test/resources/org/apache/ignite/internal/network/processor/AllTypesMessage.java @@ -77,5 +77,5 @@ public interface AllTypesMessage extends NetworkMessage, Serializable { Collection netMsgCollW(); - Map newMsgMapX(); + Map netMsgMapX(); } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/LocalStorageOutter.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/LocalStorageOutter.java index 24eb35e7955..616e3b7fec1 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/LocalStorageOutter.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/LocalStorageOutter.java @@ -35,7 +35,6 @@ public interface StablePBMeta extends Message { @Transferable(value = RaftMessageGroup.RaftOutterMessageGroup.LOCAL_SNAPSHOT_PB_META) public interface LocalSnapshotPbMeta extends Message { - @Marshallable RaftOutter.SnapshotMeta meta(); @Marshallable @@ -45,7 +44,6 @@ public interface LocalSnapshotPbMeta extends Message { interface File extends Message { String name(); - @Marshallable LocalFileMetaOutter.LocalFileMeta meta(); } } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java index d2d575a8ee0..71337551178 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java @@ -74,7 +74,6 @@ public class IgniteRpcServer implements RpcServer { private final Map processors = new ConcurrentHashMap<>(); /** - * @param lockManager The lock manager. * @param service The cluster service. * @param nodeManager The node manager. * @param raftMessagesFactory Message factory. diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotMvDataResponse.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotMvDataResponse.java index 28ca5862bbc..3bf40045045 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotMvDataResponse.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotMvDataResponse.java @@ -18,7 +18,6 @@ package org.apache.ignite.internal.table.distributed.raft.snapshot.message; import java.nio.ByteBuffer; -import java.util.Collection; import java.util.List; import java.util.UUID; import org.apache.ignite.hlc.HybridTimestamp; @@ -35,7 +34,7 @@ @Transferable(TableMessageGroup.SNAPSHOT_MV_DATA_RESPONSE) public interface SnapshotMvDataResponse extends NetworkMessage { /** List of version chains. */ - Collection rows(); + List rows(); /** Flag that indicates whether this is the last response or not. */ boolean finish(); @@ -50,7 +49,6 @@ interface ResponseEntry extends NetworkMessage { UUID rowId(); /** List of {@link BinaryRow}s for a given {@link #rowId()}. */ - @Marshallable List rowVersions(); /** diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotTxDataResponse.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotTxDataResponse.java index 7b42f8b4021..f2e1ab5a6a3 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotTxDataResponse.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/message/SnapshotTxDataResponse.java @@ -31,7 +31,6 @@ @Transferable(TableMessageGroup.SNAPSHOT_TX_DATA_RESPONSE) public interface SnapshotTxDataResponse extends NetworkMessage { /** List of transaction ids in the response. */ - @Marshallable List txIds(); /** List of transaction metas in the response. */ diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadOnlyReplicaRequest.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadOnlyReplicaRequest.java index 9f9166d045e..72623a317d9 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadOnlyReplicaRequest.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadOnlyReplicaRequest.java @@ -26,7 +26,6 @@ * Read only replica request. */ public interface ReadOnlyReplicaRequest extends ReplicaRequest { - @Marshallable UUID transactionId(); @Marshallable diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java index 0c8662cee72..1d1ab90dbda 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java @@ -26,7 +26,6 @@ * Read-write replica request. */ public interface ReadWriteReplicaRequest extends ReplicaRequest, TimestampAware { - @Marshallable UUID transactionId(); /**