in artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/ServerPacketDecoder.java [162:303]
private Packet slowPathDecode(ActiveMQBuffer in, byte packetType, CoreRemotingConnection connection) {
Packet packet;
switch (packetType) {
case SESS_SEND_LARGE: {
packet = new SessionSendLargeMessage(new CoreMessage());
break;
}
case REPLICATION_APPEND: {
packet = new ReplicationAddMessage(connection.isBeforeTwoEighteen());
break;
}
case REPLICATION_APPEND_TX: {
packet = new ReplicationAddTXMessage(connection.isBeforeTwoEighteen());
break;
}
case REPLICATION_DELETE: {
packet = new ReplicationDeleteMessage();
break;
}
case REPLICATION_DELETE_TX: {
packet = new ReplicationDeleteTXMessage();
break;
}
case REPLICATION_PREPARE: {
packet = new ReplicationPrepareMessage();
break;
}
case REPLICATION_COMMIT_ROLLBACK: {
packet = new ReplicationCommitMessage();
break;
}
case REPLICATION_RESPONSE: {
packet = new ReplicationResponseMessage();
break;
}
case REPLICATION_RESPONSE_V2: {
packet = new ReplicationResponseMessageV2();
break;
}
case REPLICATION_PAGE_WRITE: {
packet = new ReplicationPageWriteMessage(connection.isVersionUsingLongOnPageReplication());
break;
}
case REPLICATION_PAGE_EVENT: {
packet = new ReplicationPageEventMessage(connection.isVersionUsingLongOnPageReplication());
break;
}
case REPLICATION_LARGE_MESSAGE_BEGIN: {
packet = new ReplicationLargeMessageBeginMessage();
break;
}
case REPLICATION_LARGE_MESSAGE_END: {
packet = new ReplicationLargeMessageEndMessage();
break;
}
case REPLICATION_LARGE_MESSAGE_WRITE: {
packet = new ReplicationLargeMessageWriteMessage();
break;
}
case PacketImpl.BACKUP_REGISTRATION: {
packet = new BackupRegistrationMessage();
break;
}
case PacketImpl.BACKUP_REGISTRATION_FAILED: {
packet = new BackupReplicationStartFailedMessage();
break;
}
case PacketImpl.REPLICATION_START_FINISH_SYNC: {
packet = new ReplicationStartSyncMessage(connection.isBeforeTwoEighteen());
break;
}
case PacketImpl.REPLICATION_SYNC_FILE: {
packet = new ReplicationSyncFileMessage();
break;
}
case PacketImpl.REPLICATION_SCHEDULED_FAILOVER: {
packet = new ReplicationLiveIsStoppingMessage();
break;
}
case CLUSTER_CONNECT: {
packet = new ClusterConnectMessage();
break;
}
case CLUSTER_CONNECT_REPLY: {
packet = new ClusterConnectReplyMessage();
break;
}
case NODE_ANNOUNCE: {
packet = new NodeAnnounceMessage();
break;
}
case BACKUP_REQUEST: {
packet = new BackupRequestMessage();
break;
}
case BACKUP_REQUEST_RESPONSE: {
packet = new BackupResponseMessage();
break;
}
case QUORUM_VOTE: {
packet = new QuorumVoteMessage();
break;
}
case QUORUM_VOTE_REPLY: {
packet = new QuorumVoteReplyMessage();
break;
}
case SCALEDOWN_ANNOUNCEMENT: {
packet = new ScaleDownAnnounceMessage();
break;
}
case FEDERATION_DOWNSTREAM_CONNECT: {
packet = new FederationDownstreamConnectMessage();
break;
}
case CREATE_PRODUCER: {
packet = new CreateProducerMessage();
break;
}
case REMOVE_PRODUCER: {
packet = new RemoveProducerMessage();
break;
}
default: {
packet = super.decode(packetType, connection);
}
}
packet.decode(in);
if (packet instanceof MessagePacketI) {
Message message = ((MessagePacketI)packet).getMessage();
if (message instanceof LargeServerMessage) {
assert storageManager != null;
((LargeServerMessage) message).setStorageManager(storageManager);
}
}
return packet;
}