Skip to content

Commit a2b257c

Browse files
authored
IGNITE-27936 Use MessageSerializer for GridContinuousMessage (#12787)
1 parent 1adad68 commit a2b257c

File tree

2 files changed

+13
-115
lines changed

2 files changed

+13
-115
lines changed

modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@
270270
import org.apache.ignite.internal.processors.continuous.ContinuousRoutineStartResultMessage;
271271
import org.apache.ignite.internal.processors.continuous.ContinuousRoutineStartResultMessageSerializer;
272272
import org.apache.ignite.internal.processors.continuous.GridContinuousMessage;
273+
import org.apache.ignite.internal.processors.continuous.GridContinuousMessageSerializer;
273274
import org.apache.ignite.internal.processors.datastreamer.DataStreamerEntry;
274275
import org.apache.ignite.internal.processors.datastreamer.DataStreamerRequest;
275276
import org.apache.ignite.internal.processors.datastreamer.DataStreamerResponse;
@@ -417,7 +418,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider {
417418
factory.register((short)57, GridNearUnlockRequest::new, new GridNearUnlockRequestSerializer());
418419
factory.register((short)58, GridCacheQueryRequest::new, new GridCacheQueryRequestSerializer());
419420
factory.register((short)59, GridCacheQueryResponse::new, new GridCacheQueryResponseSerializer());
420-
factory.register((short)61, GridContinuousMessage::new);
421+
factory.register((short)61, GridContinuousMessage::new, new GridContinuousMessageSerializer());
421422
factory.register((short)62, DataStreamerRequest::new);
422423
factory.register((short)63, DataStreamerResponse::new, new DataStreamerResponseSerializer());
423424
factory.register((short)76, GridTaskResultRequest::new, new GridTaskResultRequestSerializer());

modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java

Lines changed: 11 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,13 @@
1717

1818
package org.apache.ignite.internal.processors.continuous;
1919

20-
import java.nio.ByteBuffer;
2120
import java.util.Collection;
2221
import java.util.UUID;
23-
import org.apache.ignite.internal.GridDirectCollection;
24-
import org.apache.ignite.internal.GridDirectTransient;
22+
import org.apache.ignite.internal.Order;
2523
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
2624
import org.apache.ignite.internal.util.typedef.internal.S;
2725
import org.apache.ignite.lang.IgniteUuid;
2826
import org.apache.ignite.plugin.extensions.communication.Message;
29-
import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
30-
import org.apache.ignite.plugin.extensions.communication.MessageReader;
31-
import org.apache.ignite.plugin.extensions.communication.MessageWriter;
3227
import org.jetbrains.annotations.Nullable;
3328

3429
import static org.apache.ignite.internal.processors.continuous.GridContinuousMessageType.MSG_EVT_ACK;
@@ -38,25 +33,28 @@
3833
*/
3934
public class GridContinuousMessage implements Message {
4035
/** Message type. */
41-
private GridContinuousMessageType type;
36+
@Order(0)
37+
GridContinuousMessageType type;
4238

4339
/** Routine ID. */
44-
private UUID routineId;
40+
@Order(1)
41+
UUID routineId;
4542

4643
/** Optional message data. */
4744
@GridToStringInclude(sensitive = true)
48-
@GridDirectTransient
4945
private Object data;
5046

5147
/** */
52-
@GridDirectCollection(Message.class)
53-
private Collection<Message> msgs;
48+
@Order(2)
49+
Collection<Message> msgs;
5450

5551
/** Serialized message data. */
56-
private byte[] dataBytes;
52+
@Order(3)
53+
byte[] dataBytes;
5754

5855
/** Future ID for synchronous event notifications. */
59-
private IgniteUuid futId;
56+
@Order(4)
57+
IgniteUuid futId;
6058

6159
/**
6260
* Empty constructor.
@@ -146,107 +144,6 @@ public void dataBytes(byte[] dataBytes) {
146144
return futId;
147145
}
148146

149-
/** {@inheritDoc} */
150-
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
151-
writer.setBuffer(buf);
152-
153-
if (!writer.isHeaderWritten()) {
154-
if (!writer.writeHeader(directType()))
155-
return false;
156-
157-
writer.onHeaderWritten();
158-
}
159-
160-
switch (writer.state()) {
161-
case 0:
162-
if (!writer.writeByteArray(dataBytes))
163-
return false;
164-
165-
writer.incrementState();
166-
167-
case 1:
168-
if (!writer.writeIgniteUuid(futId))
169-
return false;
170-
171-
writer.incrementState();
172-
173-
case 2:
174-
if (!writer.writeCollection(msgs, MessageCollectionItemType.MSG))
175-
return false;
176-
177-
writer.incrementState();
178-
179-
case 3:
180-
if (!writer.writeUuid(routineId))
181-
return false;
182-
183-
writer.incrementState();
184-
185-
case 4:
186-
if (!writer.writeByte(type != null ? (byte)type.ordinal() : -1))
187-
return false;
188-
189-
writer.incrementState();
190-
191-
}
192-
193-
return true;
194-
}
195-
196-
/** {@inheritDoc} */
197-
@Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
198-
reader.setBuffer(buf);
199-
200-
switch (reader.state()) {
201-
case 0:
202-
dataBytes = reader.readByteArray();
203-
204-
if (!reader.isLastRead())
205-
return false;
206-
207-
reader.incrementState();
208-
209-
case 1:
210-
futId = reader.readIgniteUuid();
211-
212-
if (!reader.isLastRead())
213-
return false;
214-
215-
reader.incrementState();
216-
217-
case 2:
218-
msgs = reader.readCollection(MessageCollectionItemType.MSG);
219-
220-
if (!reader.isLastRead())
221-
return false;
222-
223-
reader.incrementState();
224-
225-
case 3:
226-
routineId = reader.readUuid();
227-
228-
if (!reader.isLastRead())
229-
return false;
230-
231-
reader.incrementState();
232-
233-
case 4:
234-
byte typeOrd;
235-
236-
typeOrd = reader.readByte();
237-
238-
if (!reader.isLastRead())
239-
return false;
240-
241-
type = GridContinuousMessageType.fromOrdinal(typeOrd);
242-
243-
reader.incrementState();
244-
245-
}
246-
247-
return true;
248-
}
249-
250147
/** {@inheritDoc} */
251148
@Override public short directType() {
252149
return 61;

0 commit comments

Comments
 (0)