@Override public <T> SerializedObject<T> serialize(Object object, Class<T> expectedRepresentation) { return delegate.serialize(object, expectedRepresentation); }
/** * Serialize the payload of this message to the {@code expectedRepresentation} using given {@code serializer}. This * method <em>should</em> return the same SerializedObject instance when invoked multiple times using the same * serializer. * * @param serializer The serializer to serialize payload with * @param expectedRepresentation The type of data to serialize to * @param <R> The type of the serialized data * @return a SerializedObject containing the serialized representation of the message's payload */ default <R> SerializedObject<R> serializePayload(Serializer serializer, Class<R> expectedRepresentation) { return serializer.serialize(getPayload(), expectedRepresentation); }
/** * Serialize the meta data of this message to the {@code expectedRepresentation} using given {@code serializer}. * This method <em>should</em> return the same SerializedObject instance when invoked multiple times using the same * serializer. * * @param serializer The serializer to serialize meta data with * @param expectedRepresentation The type of data to serialize to * @param <R> The type of the serialized data * @return a SerializedObject containing the serialized representation of the message's meta data */ default <R> SerializedObject<R> serializeMetaData(Serializer serializer, Class<R> expectedRepresentation) { return serializer.serialize(getMetaData(), expectedRepresentation); } }
/** * Serializes the exception result. Will create a {@link RemoteExceptionDescription} from the {@link Optional} * exception in this ResultMessage instead of serializing the original exception. * * @param serializer the {@link Serializer} used to serialize the exception * @param expectedRepresentation a {@link Class} representing the expected format * @param <T> the generic type representing the expected format * @return the serialized exception as a {@link SerializedObject} */ default <T> SerializedObject<T> serializeExceptionResult(Serializer serializer, Class<T> expectedRepresentation) { return serializer.serialize( optionalExceptionResult().map(RemoteExceptionDescription::describing).orElse(null), expectedRepresentation ); }
private static void putDeadlineScope(JobDataMap jobData, ScopeDescriptor deadlineScope, Serializer serializer) { SerializedObject<byte[]> serializedDeadlineScope = serializer.serialize(deadlineScope, byte[].class); jobData.put(SERIALIZED_DEADLINE_SCOPE, serializedDeadlineScope.getData()); jobData.put(SERIALIZED_DEADLINE_SCOPE_CLASS_NAME, serializedDeadlineScope.getType().getName()); }
@SuppressWarnings("unchecked") public <T> SerializedObject<T> serializeMetaData(Serializer serializer, Class<T> expectedRepresentation) { synchronized (metaDataGuard) { SerializedObject existingForm = serializedMetaData.get(serializer); if (existingForm == null) { SerializedObject<T> serialized = serializer.serialize(message.getMetaData(), expectedRepresentation); serializedMetaData.put(serializer, serialized); return serialized; } else { return serializer.getConverter().convert(existingForm, expectedRepresentation); } } } }
private static void putDeadlineMessage(JobDataMap jobData, DeadlineMessage deadlineMessage, Serializer serializer) { jobData.put(DEADLINE_NAME, deadlineMessage.getDeadlineName()); jobData.put(MESSAGE_ID, deadlineMessage.getIdentifier()); jobData.put(MESSAGE_TIMESTAMP, deadlineMessage.getTimestamp().toEpochMilli()); SerializedObject<byte[]> serializedDeadlinePayload = serializer.serialize(deadlineMessage.getPayload(), byte[].class); jobData.put(SERIALIZED_MESSAGE_PAYLOAD, serializedDeadlinePayload.getData()); jobData.put(MESSAGE_TYPE, serializedDeadlinePayload.getType().getName()); jobData.put(MESSAGE_REVISION, serializedDeadlinePayload.getType().getRevision()); SerializedObject<byte[]> serializedDeadlineMetaData = serializer.serialize(deadlineMessage.getMetaData(), byte[].class); jobData.put(MESSAGE_METADATA, serializedDeadlineMetaData.getData()); }
@Override public JobDataMap toJobData(Object event) { JobDataMap jobData = new JobDataMap(); EventMessage eventMessage = (EventMessage) event; jobData.put(MESSAGE_ID, eventMessage.getIdentifier()); jobData.put(MESSAGE_TIMESTAMP, eventMessage.getTimestamp().toEpochMilli()); SerializedObject<byte[]> serializedPayload = serializer.serialize(eventMessage.getPayload(), byte[].class); jobData.put(SERIALIZED_MESSAGE_PAYLOAD, serializedPayload.getData()); jobData.put(MESSAGE_TYPE, serializedPayload.getType().getName()); jobData.put(MESSAGE_REVISION, serializedPayload.getType().getRevision()); SerializedObject<byte[]> serializedMetaData = serializer.serialize(eventMessage.getMetaData(), byte[].class); jobData.put(MESSAGE_METADATA, serializedMetaData.getData()); return jobData; }
@SuppressWarnings("unchecked") @Override public <R> SerializedObject<R> serializePayload(Serializer serializer, Class<R> expectedRepresentation) { if (serializer.equals(payload.getSerializer())) { return serializer.getConverter().convert(payload.getSerializedObject(), expectedRepresentation); } return serializer.serialize(payload.getObject(), expectedRepresentation); }
@SuppressWarnings("unchecked") @Override public <R> SerializedObject<R> serializeMetaData(Serializer serializer, Class<R> expectedRepresentation) { if (serializer.equals(metaData.getSerializer())) { return serializer.getConverter().convert(metaData.getSerializedObject(), expectedRepresentation); } return serializer.serialize(metaData.getObject(), expectedRepresentation); }
/** * Update the token data to the given {@code token}, using given {@code serializer} to serialize it to the given * {@code contentType}. * * @param token The token representing the state to update to * @param serializer The serializer to update token to * @param contentType The type of data to represent the serialized data in */ protected final void updateToken(TrackingToken token, Serializer serializer, Class<T> contentType) { SerializedObject<T> serializedToken = serializer.serialize(token, contentType); this.token = serializedToken.getData(); this.tokenType = serializedToken.getType().getName(); this.timestamp = formatInstant(clock.instant()); } }
/** * Initializes a new token entry for given {@code token}, {@code process} and {@code segment}. The given {@code * serializer} can be used to serialize the token before it is stored. * * @param token The tracking token to store * @param serializer The serializer to use when storing a serialized token * @param contentType The content type after serialization */ protected AbstractTokenEntry(TrackingToken token, Serializer serializer, Class<T> contentType) { this.timestamp = formatInstant(clock.instant()); if (token != null) { SerializedObject<T> serializedToken = serializer.serialize(token, contentType); this.token = serializedToken.getData(); this.tokenType = serializedToken.getType().getName(); } }
/** * Constructs a new SagaEntry for the given {@code saga}. The given saga must be serializable. The provided * saga is not modified by this operation. * * @param saga The saga to store * @param sagaIdentifier The saga identifier * @param serializer The serialization mechanism to convert the Saga to a byte stream * @param contentType The saga content type to serialize to */ public AbstractSagaEntry(Object saga, String sagaIdentifier, Serializer serializer, Class<T> contentType) { this.sagaId = sagaIdentifier; SerializedObject<T> serialized = serializer.serialize(saga, contentType); this.serializedSaga = serialized.getData(); this.sagaType = serialized.getType().getName(); this.revision = serialized.getType().getRevision(); }
@SuppressWarnings("unchecked") public <T> SerializedObject<T> serializePayload(Serializer serializer, Class<T> expectedRepresentation) { synchronized (payloadGuard) { SerializedObject existingForm = serializedPayload.get(serializer); if (existingForm == null) { SerializedObject<T> serialized = serializer.serialize(message.getPayload(), expectedRepresentation); if (message.getPayload() == null) { // make sure the payload type is maintained serialized = new SimpleSerializedObject<>(serialized.getData(), serialized.getContentType(), serializer.typeForClass(message.getPayloadType())); } serializedPayload.put(serializer, serialized); return serialized; } else { return serializer.getConverter().convert(existingForm, expectedRepresentation); } } }
builder.setBooleanValue((Boolean) value); } else { SerializedObject<byte[]> serializedObject = serializer.serialize(value, byte[].class); builder.setBytesValue(io.axoniq.axonserver.grpc.SerializedObject.newBuilder() .setType(serializedObject.getType().getName())
public MessageRoutingInformation(int loadFactor, CommandMessageFilter commandFilter, Serializer serializer) { this(loadFactor, serializer.serialize(commandFilter, String.class)); }
private static void putDeadlineScope(JobDataMap jobData, ScopeDescriptor deadlineScope, Serializer serializer) { SerializedObject<byte[]> serializedDeadlineScope = serializer.serialize(deadlineScope, byte[].class); jobData.put(SERIALIZED_DEADLINE_SCOPE, serializedDeadlineScope.getData()); jobData.put(SERIALIZED_DEADLINE_SCOPE_CLASS_NAME, serializedDeadlineScope.getType().getName()); }
private static void putDeadlineScope(JobDataMap jobData, ScopeDescriptor deadlineScope, Serializer serializer) { SerializedObject<byte[]> serializedDeadlineScope = serializer.serialize(deadlineScope, byte[].class); jobData.put(SERIALIZED_DEADLINE_SCOPE, serializedDeadlineScope.getData()); jobData.put(SERIALIZED_DEADLINE_SCOPE_CLASS_NAME, serializedDeadlineScope.getType().getName()); }
@SuppressWarnings("unchecked") @Override public <R> SerializedObject<R> serializePayload(Serializer serializer, Class<R> expectedRepresentation) { if (serializer.equals(payload.getSerializer())) { return serializer.getConverter().convert(payload.getSerializedObject(), expectedRepresentation); } return serializer.serialize(payload.getObject(), expectedRepresentation); }
@SuppressWarnings("unchecked") @Override public <R> SerializedObject<R> serializeMetaData(Serializer serializer, Class<R> expectedRepresentation) { if (serializer.equals(metaData.getSerializer())) { return serializer.getConverter().convert(metaData.getSerializedObject(), expectedRepresentation); } return serializer.serialize(metaData.getObject(), expectedRepresentation); }