io.smallrye.reactive.messaging.amqp.AmqpMessage Maven / Gradle / Ivy
The newest version!
package io.smallrye.reactive.messaging.amqp;
import static io.smallrye.reactive.messaging.providers.locals.ContextAwareMessage.captureContextMetadata;
import java.util.ArrayList;
import java.util.concurrent.CompletionStage;
import java.util.function.BiFunction;
import java.util.function.Function;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.messaging.AmqpSequence;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
import org.apache.qpid.proton.amqp.messaging.Data;
import org.apache.qpid.proton.amqp.messaging.Section;
import org.apache.qpid.proton.message.Message;
import org.apache.qpid.proton.message.MessageError;
import org.eclipse.microprofile.reactive.messaging.Metadata;
import io.smallrye.reactive.messaging.amqp.ce.AmqpCloudEventHelper;
import io.smallrye.reactive.messaging.amqp.fault.AmqpFailureHandler;
import io.smallrye.reactive.messaging.ce.CloudEventMetadata;
import io.smallrye.reactive.messaging.providers.MetadataInjectableMessage;
import io.smallrye.reactive.messaging.providers.helpers.VertxContext;
import io.smallrye.reactive.messaging.providers.locals.ContextAwareMessage;
import io.vertx.core.json.JsonObject;
import io.vertx.mutiny.core.Context;
import io.vertx.mutiny.core.buffer.Buffer;
public class AmqpMessage implements ContextAwareMessage, MetadataInjectableMessage {
protected static final String APPLICATION_JSON = "application/json";
protected final io.vertx.amqp.AmqpMessage message;
protected Metadata metadata;
protected final IncomingAmqpMetadata amqpMetadata;
private final Context context;
protected final AmqpFailureHandler onNack;
private final T payload;
@Deprecated
public static AmqpMessageBuilder builder() {
return new AmqpMessageBuilder<>();
}
public AmqpMessage(io.vertx.mutiny.amqp.AmqpMessage delegate, Context context, AmqpFailureHandler onNack,
boolean cloudEventEnabled, Boolean tracingEnabled) {
this(delegate.getDelegate(), context, onNack, cloudEventEnabled, tracingEnabled);
}
public AmqpMessage(io.vertx.mutiny.amqp.AmqpMessage delegate, Context context,
OutgoingAmqpMetadata amqpMetadata) {
this.message = delegate.getDelegate();
this.context = context;
this.amqpMetadata = null;
this.onNack = null;
//noinspection unchecked
this.payload = (T) convert(message);
this.metadata = Metadata.of(amqpMetadata);
}
@SuppressWarnings("unchecked")
public AmqpMessage(io.vertx.amqp.AmqpMessage msg, Context context, AmqpFailureHandler onNack,
boolean cloudEventEnabled, Boolean tracingEnabled) {
this.message = msg;
this.context = context;
this.amqpMetadata = new IncomingAmqpMetadata(this.message);
this.onNack = onNack;
ArrayList
© 2015 - 2025 Weber Informatics LLC | Privacy Policy