Skip to content

Commit 1adad68

Browse files
authored
IGNITE-27927 Use MessageSerializer for GridIoUserMessage (#12781)
1 parent cb021f5 commit 1adad68

File tree

2 files changed

+16
-147
lines changed

2 files changed

+16
-147
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider {
369369
factory.register((short)6, GridTaskSessionRequest::new, new GridTaskSessionRequestSerializer());
370370
factory.register((short)7, GridCheckpointRequest::new, new GridCheckpointRequestSerializer());
371371
factory.register((short)8, GridIoMessage::new, new GridIoMessageSerializer());
372-
factory.register((short)9, GridIoUserMessage::new);
372+
factory.register((short)9, GridIoUserMessage::new, new GridIoUserMessageSerializer());
373373
factory.register((short)10, GridDeploymentInfoBean::new);
374374
factory.register((short)11, GridDeploymentRequest::new, new GridDeploymentRequestSerializer());
375375
factory.register((short)12, GridDeploymentResponse::new, new GridDeploymentResponseSerializer());

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

Lines changed: 15 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -17,60 +17,58 @@
1717

1818
package org.apache.ignite.internal.managers.communication;
1919

20-
import java.nio.ByteBuffer;
2120
import java.util.Collections;
2221
import java.util.Map;
2322
import java.util.UUID;
2423
import org.apache.ignite.configuration.DeploymentMode;
25-
import org.apache.ignite.internal.GridDirectMap;
26-
import org.apache.ignite.internal.GridDirectTransient;
24+
import org.apache.ignite.internal.Order;
2725
import org.apache.ignite.internal.managers.deployment.GridDeployment;
2826
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
2927
import org.apache.ignite.internal.util.typedef.internal.S;
3028
import org.apache.ignite.lang.IgniteUuid;
3129
import org.apache.ignite.plugin.extensions.communication.Message;
32-
import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
33-
import org.apache.ignite.plugin.extensions.communication.MessageReader;
34-
import org.apache.ignite.plugin.extensions.communication.MessageWriter;
3530
import org.jetbrains.annotations.Nullable;
3631

3732
/**
3833
* User message wrapper.
3934
*/
4035
public class GridIoUserMessage implements Message {
4136
/** Message body. */
42-
@GridDirectTransient
4337
private Object body;
4438

4539
/** Serialized message body. */
46-
private byte[] bodyBytes;
40+
@Order(0)
41+
byte[] bodyBytes;
4742

4843
/** Class loader ID. */
49-
private IgniteUuid clsLdrId;
44+
@Order(1)
45+
IgniteUuid clsLdrId;
5046

5147
/** Message topic. */
52-
@GridDirectTransient
5348
private Object topic;
5449

5550
/** Serialized message topic. */
56-
private byte[] topicBytes;
51+
@Order(2)
52+
byte[] topicBytes;
5753

5854
/** Deployment mode. */
59-
private DeploymentMode depMode;
55+
@Order(3)
56+
DeploymentMode depMode;
6057

6158
/** Deployment class name. */
62-
private String depClsName;
59+
@Order(4)
60+
String depClsName;
6361

6462
/** User version. */
65-
private String userVer;
63+
@Order(5)
64+
String userVer;
6665

6766
/** Node class loader participants. */
67+
@Order(6)
6868
@GridToStringInclude
69-
@GridDirectMap(keyType = UUID.class, valueType = IgniteUuid.class)
70-
private Map<UUID, IgniteUuid> ldrParties;
69+
Map<UUID, IgniteUuid> ldrParties;
7170

7271
/** Message deployment. */
73-
@GridDirectTransient
7472
private GridDeployment dep;
7573

7674
/**
@@ -203,135 +201,6 @@ public void deployment(GridDeployment dep) {
203201
return dep;
204202
}
205203

206-
/** {@inheritDoc} */
207-
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
208-
writer.setBuffer(buf);
209-
210-
if (!writer.isHeaderWritten()) {
211-
if (!writer.writeHeader(directType()))
212-
return false;
213-
214-
writer.onHeaderWritten();
215-
}
216-
217-
switch (writer.state()) {
218-
case 0:
219-
if (!writer.writeByteArray(bodyBytes))
220-
return false;
221-
222-
writer.incrementState();
223-
224-
case 1:
225-
if (!writer.writeIgniteUuid(clsLdrId))
226-
return false;
227-
228-
writer.incrementState();
229-
230-
case 2:
231-
if (!writer.writeString(depClsName))
232-
return false;
233-
234-
writer.incrementState();
235-
236-
case 3:
237-
if (!writer.writeByte(depMode != null ? (byte)depMode.ordinal() : -1))
238-
return false;
239-
240-
writer.incrementState();
241-
242-
case 4:
243-
if (!writer.writeMap(ldrParties, MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID))
244-
return false;
245-
246-
writer.incrementState();
247-
248-
case 5:
249-
if (!writer.writeByteArray(topicBytes))
250-
return false;
251-
252-
writer.incrementState();
253-
254-
case 6:
255-
if (!writer.writeString(userVer))
256-
return false;
257-
258-
writer.incrementState();
259-
260-
}
261-
262-
return true;
263-
}
264-
265-
/** {@inheritDoc} */
266-
@Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
267-
reader.setBuffer(buf);
268-
269-
switch (reader.state()) {
270-
case 0:
271-
bodyBytes = reader.readByteArray();
272-
273-
if (!reader.isLastRead())
274-
return false;
275-
276-
reader.incrementState();
277-
278-
case 1:
279-
clsLdrId = reader.readIgniteUuid();
280-
281-
if (!reader.isLastRead())
282-
return false;
283-
284-
reader.incrementState();
285-
286-
case 2:
287-
depClsName = reader.readString();
288-
289-
if (!reader.isLastRead())
290-
return false;
291-
292-
reader.incrementState();
293-
294-
case 3:
295-
byte depModeOrd;
296-
297-
depModeOrd = reader.readByte();
298-
299-
if (!reader.isLastRead())
300-
return false;
301-
302-
depMode = DeploymentMode.fromOrdinal(depModeOrd);
303-
304-
reader.incrementState();
305-
306-
case 4:
307-
ldrParties = reader.readMap(MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID, false);
308-
309-
if (!reader.isLastRead())
310-
return false;
311-
312-
reader.incrementState();
313-
314-
case 5:
315-
topicBytes = reader.readByteArray();
316-
317-
if (!reader.isLastRead())
318-
return false;
319-
320-
reader.incrementState();
321-
322-
case 6:
323-
userVer = reader.readString();
324-
325-
if (!reader.isLastRead())
326-
return false;
327-
328-
reader.incrementState();
329-
330-
}
331-
332-
return true;
333-
}
334-
335204
/** {@inheritDoc} */
336205
@Override public short directType() {
337206
return 9;

0 commit comments

Comments
 (0)