Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@
import org.apache.ignite.internal.processors.continuous.StopRoutineAckDiscoveryMessageSerializer;
import org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessage;
import org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessageSerializer;
import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessage;
import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessageSerializer;
import org.apache.ignite.internal.processors.marshaller.MappingProposedMessage;
import org.apache.ignite.internal.processors.marshaller.MappingProposedMessageSerializer;
import org.apache.ignite.internal.processors.marshaller.MarshallerMappingItem;
import org.apache.ignite.internal.processors.marshaller.MarshallerMappingItemSerializer;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessage;
Expand Down Expand Up @@ -147,7 +153,7 @@
* @param cstDataMarshallClsLdr Class loader for the custom data marshalling.
*/
public DiscoveryMessageFactory(@Nullable Marshaller cstDataMarshall, @Nullable ClassLoader cstDataMarshallClsLdr) {
assert cstDataMarshall == null && cstDataMarshallClsLdr == null || cstDataMarshall != null && cstDataMarshallClsLdr != null;

Check warning on line 156 in modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Replace this assert with a proper check.

See more on https://sonarcloud.io/project/issues?id=apache_ignite&issues=AZz2mjF61Bw9PZgzSMVj&open=AZz2mjF61Bw9PZgzSMVj&pullRequest=12811

this.cstDataMarshall = cstDataMarshall;
this.cstDataMarshallClsLdr = cstDataMarshallClsLdr;
Expand Down Expand Up @@ -223,5 +229,9 @@
factory.register((short)514, StopRoutineDiscoveryMessage::new, new StopRoutineDiscoveryMessageSerializer());
factory.register((short)515, CacheAffinityChangeMessage::new, new CacheAffinityChangeMessageSerializer());
factory.register((short)516, ClientCacheChangeDiscoveryMessage::new, new ClientCacheChangeDiscoveryMessageSerializer());
factory.register((short)517, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer());
factory.register((short)518, MappingProposedMessage::new, new MappingProposedMessageSerializer());
factory.register((short)519, MarshallerMappingItem::new, new MarshallerMappingItemSerializer());

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,31 +17,40 @@

package org.apache.ignite.internal.processors.marshaller;

import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.jetbrains.annotations.Nullable;

/**
* Is sent as an acknowledgement for successfully proposed new mapping (see {@link MappingProposedMessage}).
*
* If any nodes were waiting for this mapping to be accepted they will be unblocked on receiving this message.
*/
public class MappingAcceptedMessage implements DiscoveryCustomMessage {
public class MappingAcceptedMessage implements DiscoveryCustomMessage, Message {
/** */
private static final long serialVersionUID = 0L;

/** */
private final IgniteUuid id = IgniteUuid.randomUuid();
@Order(0)
IgniteUuid id;

/** */
private final MarshallerMappingItem item;
@Order(1)
MarshallerMappingItem item;

Check failure on line 42 in modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Make non-static "item" transient or serializable.

See more on https://sonarcloud.io/project/issues?id=apache_ignite&issues=AZz2mi911Bw9PZgzSMVh&open=AZz2mi911Bw9PZgzSMVh&pullRequest=12811

/** */
public MappingAcceptedMessage() {
// No-op.
}

/**
* @param item Item.
*/
MappingAcceptedMessage(MarshallerMappingItem item) {
this.item = item;
id = IgniteUuid.randomUuid();
}

/** {@inheritDoc} */
Expand All @@ -55,10 +64,15 @@
}

/** */
MarshallerMappingItem getMappingItem() {
public MarshallerMappingItem getMappingItem() {
return item;
}

/** {@inheritDoc} */
@Override public short directType() {
return 517;
}

/** {@inheritDoc} */
@Override public String toString() {
return S.toString(MappingAcceptedMessage.class, this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@
package org.apache.ignite.internal.processors.marshaller;

import java.util.UUID;
import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.jetbrains.annotations.Nullable;

/**
Expand All @@ -33,9 +34,9 @@
* When it completes a pass around the cluster ring with no conflicts observed,
* {@link MappingAcceptedMessage} is sent as an acknowledgement that everything is fine.
*/
public class MappingProposedMessage implements DiscoveryCustomMessage {
public class MappingProposedMessage implements DiscoveryCustomMessage, Message {
/** */
private enum ProposalStatus {
enum ProposalStatus {
/** */
SUCCESSFUL,
/** */
Expand All @@ -48,20 +49,29 @@
private static final long serialVersionUID = 0L;

/** */
private final IgniteUuid id = IgniteUuid.randomUuid();
@Order(0)
IgniteUuid id;

/** */
private final UUID origNodeId;
@Order(1)
UUID origNodeId;

/** */
@GridToStringInclude
private final MarshallerMappingItem mappingItem;
@Order(2)
MarshallerMappingItem mappingItem;

Check failure on line 61 in modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingProposedMessage.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Make non-static "mappingItem" transient or serializable.

See more on https://sonarcloud.io/project/issues?id=apache_ignite&issues=AZz2mjFT1Bw9PZgzSMVi&open=AZz2mjFT1Bw9PZgzSMVi&pullRequest=12811

/** */
private ProposalStatus status = ProposalStatus.SUCCESSFUL;
@Order(3)
ProposalStatus status;

/** */
private String conflictingClsName;
@Order(4)
String conflictingClsName;

/** */
public MappingProposedMessage() {
// No-op.
}

/**
* @param mappingItem Mapping item.
Expand All @@ -70,8 +80,10 @@
MappingProposedMessage(MarshallerMappingItem mappingItem, UUID origNodeId) {
assert origNodeId != null;

id = IgniteUuid.randomUuid();
this.mappingItem = mappingItem;
this.origNodeId = origNodeId;
status = ProposalStatus.SUCCESSFUL;
}

/** {@inheritDoc} */
Expand All @@ -84,7 +96,7 @@
*/
@Nullable @Override public DiscoveryCustomMessage ackMessage() {
if (status == ProposalStatus.SUCCESSFUL)
return new MappingAcceptedMessage(mappingItem);
return new MappingAcceptedMessage(mappingItem());
else
return null;
}
Expand Down Expand Up @@ -130,6 +142,11 @@
return conflictingClsName;
}

/** {@inheritDoc} */
@Override public short directType() {
return 518;
}

/** {@inheritDoc} */
@Override public String toString() {
return S.toString(MappingProposedMessage.class, this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,33 @@

package org.apache.ignite.internal.processors.marshaller;

import java.io.Serializable;
import java.util.Objects;
import org.apache.ignite.internal.Order;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.jetbrains.annotations.Nullable;

/**
* Used to exchange mapping information on new mapping added or missing mapping requested flows.
* See {@link GridMarshallerMappingProcessor} javadoc for more information.
*/
public final class MarshallerMappingItem implements Serializable {
public final class MarshallerMappingItem implements Message {
/** */
private static final long serialVersionUID = 0L;
@Order(0)
byte platformId;

/** */
private final byte platformId;
@Order(1)
int typeId;

/** */
private final int typeId;
@Order(2)
String clsName;

/** */
private String clsName;
/**
* no-op
*/
public MarshallerMappingItem() {
}

/**
* Class name may be null when instance is created to request missing mapping from cluster.
Expand Down Expand Up @@ -97,4 +104,9 @@ public void className(String clsName) {
@Override public String toString() {
return "[platformId: " + platformId + ", typeId:" + typeId + ", clsName: " + clsName + "]";
}

/** {@inheritDoc} */
@Override public short directType() {
return 519;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ private void doTestMarshallingBinaryMappingsLoadedFromClient(boolean receiveMeta
DiscoveryCustomMessage delegate = U.unwrapCustomMessage(evtMsg.message());

if (delegate instanceof MappingAcceptedMessage) {
MarshallerMappingItem item = GridTestUtils.getFieldValue(delegate, "item");
MarshallerMappingItem item = ((MappingAcceptedMessage)delegate).getMappingItem();

if (item.className().equals(PERSON_CLASS_NAME) ||
item.className().equals(ORGANIZATION_CLASS_NAME) ||
Expand Down
Loading