diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 1d405e99a573..b5ef5fec30e5 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -360,6 +360,7 @@ com.azure.tools:azure-sdk-build-tool;1.0.0-beta.1;1.0.0-beta.2 # note: The unreleased dependencies will not be manipulated with the automatic PR creation code. # In the pom, the version update tag after the version should name the unreleased package and the dependency version: # +unreleased_com.azure:azure-core-amqp;2.6.0-beta.1 # Released Beta dependencies: Copy the entry from above, prepend "beta_", remove the current # version and set the version to the released beta. Released beta dependencies are only valid diff --git a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpMessageConstant.java b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpMessageConstant.java index 3cc986e779ef..b22cb9f16d8d 100644 --- a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpMessageConstant.java +++ b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpMessageConstant.java @@ -122,7 +122,12 @@ public enum AmqpMessageConstant { /** * The identifier for deadletter reason. */ - DEAD_LETTER_REASON_ANNOTATION_NAME("DeadLetterReason"); + DEAD_LETTER_REASON_ANNOTATION_NAME("DeadLetterReason"), + /** + * The state of message. + */ + MESSAGE_STATE_ANNOTATION_NAME("x-opt-message-state"); + private static final Map RESERVED_CONSTANTS_MAP = new HashMap<>(); private final String constant; diff --git a/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md b/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md index 6f879159f67c..e3d1a0a6df32 100644 --- a/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md @@ -10,6 +10,7 @@ - Removed the thread hopping overhead with default max-concurrent-calls; this saves allocations incurred by the parallel operator and addresses the undesired prefetching when prefetch is disabled and max-concurrent-calls is set to default. ([#29011](https://github.com/Azure/azure-sdk-for-java/pull/29011)) ### Other Changes +- Moved message state key to `azure-core-amqp` constants. ([#26898](https://github.com/Azure/azure-sdk-for-java/issues/26898)) ## 7.9.0 (2022-05-18) diff --git a/sdk/servicebus/azure-messaging-servicebus/pom.xml b/sdk/servicebus/azure-messaging-servicebus/pom.xml index 7e294be36974..052ce94412ad 100644 --- a/sdk/servicebus/azure-messaging-servicebus/pom.xml +++ b/sdk/servicebus/azure-messaging-servicebus/pom.xml @@ -53,7 +53,7 @@ com.azure azure-core-amqp - 2.5.2 + 2.6.0-beta.1 com.azure diff --git a/sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/ServiceBusReceivedMessage.java b/sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/ServiceBusReceivedMessage.java index 2f881aaab1ea..840df93f1302 100644 --- a/sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/ServiceBusReceivedMessage.java +++ b/sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/ServiceBusReceivedMessage.java @@ -32,6 +32,7 @@ import static com.azure.core.amqp.AmqpMessageConstant.PARTITION_KEY_ANNOTATION_NAME; import static com.azure.core.amqp.AmqpMessageConstant.SCHEDULED_ENQUEUE_UTC_TIME_NAME; import static com.azure.core.amqp.AmqpMessageConstant.SEQUENCE_NUMBER_ANNOTATION_NAME; +import static com.azure.core.amqp.AmqpMessageConstant.MESSAGE_STATE_ANNOTATION_NAME; /** * The data structure encapsulating the message received from Service Bus. The message structure is discussed in detail @@ -53,8 +54,6 @@ public final class ServiceBusReceivedMessage { private boolean isSettled = false; private Context context; - static final String SERVICE_BUS_MESSAGE_STATE_KEY = "x-opt-message-state"; - ServiceBusReceivedMessage(BinaryData body) { Objects.requireNonNull(body, "'body' cannot be null."); amqpAnnotatedMessage = new AmqpAnnotatedMessage(AmqpMessageBody.fromData(body.toBytes())); @@ -455,7 +454,7 @@ public String getSessionId() { * @throws UnsupportedOperationException if the message state is an unknown value. */ public ServiceBusMessageState getState() { - final Object value = amqpAnnotatedMessage.getMessageAnnotations().get(SERVICE_BUS_MESSAGE_STATE_KEY); + final Object value = amqpAnnotatedMessage.getMessageAnnotations().get(MESSAGE_STATE_ANNOTATION_NAME.getValue()); if (value instanceof Integer) { return ServiceBusMessageState.fromValue((Integer) value); diff --git a/sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/ServiceBusReceivedMessageTest.java b/sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/ServiceBusReceivedMessageTest.java index 18c3e7117ef4..6d8ace48cdd0 100644 --- a/sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/ServiceBusReceivedMessageTest.java +++ b/sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/ServiceBusReceivedMessageTest.java @@ -27,7 +27,7 @@ import static com.azure.core.amqp.AmqpMessageConstant.ENQUEUED_TIME_UTC_ANNOTATION_NAME; import static com.azure.core.amqp.AmqpMessageConstant.LOCKED_UNTIL_KEY_ANNOTATION_NAME; import static com.azure.core.amqp.AmqpMessageConstant.SEQUENCE_NUMBER_ANNOTATION_NAME; -import static com.azure.messaging.servicebus.ServiceBusReceivedMessage.SERVICE_BUS_MESSAGE_STATE_KEY; +import static com.azure.core.amqp.AmqpMessageConstant.MESSAGE_STATE_ANNOTATION_NAME; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -167,7 +167,7 @@ public static Stream canGetMessageState() { public void canGetMessageState(Integer value, ServiceBusMessageState expected) { // Arrange final ServiceBusReceivedMessage message = new ServiceBusReceivedMessage(PAYLOAD_BINARY); - message.getRawAmqpMessage().getMessageAnnotations().put(SERVICE_BUS_MESSAGE_STATE_KEY, value); + message.getRawAmqpMessage().getMessageAnnotations().put(MESSAGE_STATE_ANNOTATION_NAME.getValue(), value); // Act final ServiceBusMessageState actual = message.getState(); @@ -187,7 +187,7 @@ public void defaultMessageState() { public void throwsOnInvalidMessageState() { // Arrange final ServiceBusReceivedMessage message = new ServiceBusReceivedMessage(PAYLOAD_BINARY); - message.getRawAmqpMessage().getMessageAnnotations().put(SERVICE_BUS_MESSAGE_STATE_KEY, 10); + message.getRawAmqpMessage().getMessageAnnotations().put(MESSAGE_STATE_ANNOTATION_NAME.getValue(), 10); // Act & Assert assertThrows(UnsupportedOperationException.class, () -> message.getState());