## Uses of Interface
org.apache.activemq.artemis.api.core.Message

- Packages that use Message
  Package | Description
  --- | ---
  org.apache.activemq.artemis.api.core |
  org.apache.activemq.artemis.api.core.client |
  org.apache.activemq.artemis.api.core.management |
  org.apache.activemq.artemis.jms.transaction |
  org.apache.activemq.artemis.reader |
  org.apache.activemq.artemis.spi.core.protocol |
  org.apache.activemq.artemis.spi.core.remoting |

- - ### Uses of Message in org.apache.activemq.artemis.api.core

    Subinterfaces of Message in org.apache.activemq.artemis.api.core
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ICoreMessage` | This interface is only to determine the API of methods required for Core Messages

    Methods in org.apache.activemq.artemis.api.core that return Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `Message` | Message.`copy()` | It will generate a new instance of the message encode, being a deep copy, new properties, new everything
    `Message` | Message.`copy​(long newID)` | It will generate a new instance of the message encode, being a deep copy, new properties, new everything
    `default Message` | Message.`copy​(long newID, boolean isExpiryOrDLQ)` | It will generate a new instance of the message encode, being a deep copy, new properties, new everything
    `Message` | Message.`putBooleanProperty​(java.lang.String key, boolean value)` |
    `Message` | Message.`putBooleanProperty​(org.apache.activemq.artemis.api.core.SimpleString key, boolean value)` |
    `Message` | Message.`putByteProperty​(java.lang.String key, byte value)` |
    `Message` | Message.`putByteProperty​(org.apache.activemq.artemis.api.core.SimpleString key, byte value)` |
    `Message` | Message.`putBytesProperty​(java.lang.String key, byte[] value)` |
    `Message` | Message.`putBytesProperty​(org.apache.activemq.artemis.api.core.SimpleString key, byte[] value)` |
    `Message` | Message.`putCharProperty​(java.lang.String key, char value)` |
    `Message` | Message.`putCharProperty​(org.apache.activemq.artemis.api.core.SimpleString key, char value)` |
    `Message` | Message.`putDoubleProperty​(java.lang.String key, double value)` |
    `Message` | Message.`putDoubleProperty​(org.apache.activemq.artemis.api.core.SimpleString key, double value)` |
    `default Message` | Message.`putExtraBytesProperty​(org.apache.activemq.artemis.api.core.SimpleString key, byte[] value)` |
    `Message` | Message.`putFloatProperty​(java.lang.String key, float value)` |
    `Message` | Message.`putFloatProperty​(org.apache.activemq.artemis.api.core.SimpleString key, float value)` |
    `Message` | Message.`putIntProperty​(java.lang.String key, int value)` |
    `Message` | Message.`putIntProperty​(org.apache.activemq.artemis.api.core.SimpleString key, int value)` |
    `Message` | Message.`putLongProperty​(java.lang.String key, long value)` |
    `Message` | Message.`putLongProperty​(org.apache.activemq.artemis.api.core.SimpleString key, long value)` |
    `Message` | Message.`putObjectProperty​(java.lang.String key, java.lang.Object value)` |
    `Message` | Message.`putObjectProperty​(org.apache.activemq.artemis.api.core.SimpleString key, java.lang.Object value)` |
    `Message` | Message.`putShortProperty​(java.lang.String key, short value)` |
    `Message` | Message.`putShortProperty​(org.apache.activemq.artemis.api.core.SimpleString key, short value)` |
    `Message` | Message.`putStringProperty​(java.lang.String key, java.lang.String value)` | Puts a String property in this message.
    `Message` | Message.`putStringProperty​(org.apache.activemq.artemis.api.core.SimpleString key, java.lang.String value)` |
    `Message` | Message.`putStringProperty​(org.apache.activemq.artemis.api.core.SimpleString key, org.apache.activemq.artemis.api.core.SimpleString value)` |
    `Message` | Message.`setAddress​(java.lang.String address)` | Look at `setAddress(SimpleString)` for the doc.
    `Message` | Message.`setAddress​(org.apache.activemq.artemis.api.core.SimpleString address)` | This will set the address on CoreMessage.
    `default Message` | Message.`setAnnotation​(org.apache.activemq.artemis.api.core.SimpleString key, java.lang.Object value)` | Callers must call `reencode()` in order to be sent to clients
    `default Message` | Message.`setBrokerProperty​(org.apache.activemq.artemis.api.core.SimpleString key, java.lang.Object value)` | To be called by the broker on ocasions such as DLQ and expiry.
    `Message` | ICoreMessage.`setBuffer​(io.netty.buffer.ByteBuf buffer)` | The buffer will belong to this message, until release is called.
    `default Message` | Message.`setConnectionID​(java.lang.String connectionID)` |
    `default Message` | Message.`setCorrelationID​(java.lang.Object correlationID)` |
    `Message` | Message.`setDurable​(boolean durable)` | Sets whether this message is durable or not.
    `Message` | Message.`setExpiration​(long expiration)` | Sets the expiration of this message.
    `default Message` | Message.`setGroupID​(java.lang.String groupID)` |
    `default Message` | Message.`setGroupID​(org.apache.activemq.artemis.api.core.SimpleString groupID)` |
    `default Message` | Message.`setGroupSequence​(int sequence)` |
    `default Message` | Message.`setIngressTimestamp()` |
    `default Message` | Message.`setLastValueProperty​(org.apache.activemq.artemis.api.core.SimpleString lastValueName)` |
    `Message` | Message.`setMessageID​(long id)` |
    `Message` | Message.`setPriority​(byte priority)` | Sets the message priority.
    `Message` | Message.`setReplyTo​(org.apache.activemq.artemis.api.core.SimpleString address)` |
    `default Message` | Message.`setRoutingType​(org.apache.activemq.artemis.api.core.RoutingType routingType)` |
    `default Message` | Message.`setScheduledDeliveryTime​(java.lang.Long time)` |
    `Message` | Message.`setTimestamp​(long timestamp)` |
    `default Message` | Message.`setType​(byte type)` | Deprecated. do not use this, use through ICoreMessage or ClientMessage
    `Message` | Message.`setUserID​(java.lang.Object userID)` |
    `default Message` | Message.`setValidatedUserID​(java.lang.String validatedUserID)` |

    Methods in org.apache.activemq.artemis.api.core that return types with arguments of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.apache.activemq.artemis.core.persistence.Persister<Message>` | Message.`getPersister()` |

    Methods in org.apache.activemq.artemis.api.core with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RefCountMessageListener.`durableDown​(Message message, int durableCount)` |
    `void` | RefCountMessageListener.`durableUp​(Message message, int durableCount)` |
    `void` | ICoreMessage.`moveHeadersAndProperties​(Message msg)` | Used on large messages treatment.
    `void` | RefCountMessageListener.`refDown​(Message message, int nonDurableCoun)` |
    `default void` | Message.`referenceOriginalMessage​(Message original, org.apache.activemq.artemis.api.core.SimpleString originalQueue)` |
    `void` | RefCountMessageListener.`refUp​(Message message, int nonDurableCoun)` |
    `default void` | RefCountMessageListener.`usageDown​(Message message, int usageCount)` |
    `default void` | RefCountMessageListener.`usageUp​(Message message, int usageCount)` |

  - ### Uses of Message in org.apache.activemq.artemis.api.core.client

    Subinterfaces of Message in org.apache.activemq.artemis.api.core.client
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ClientMessage` | A ClientMessage represents a message sent and/or received by ActiveMQ Artemis.

    Methods in org.apache.activemq.artemis.api.core.client with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ClientProducer.`send​(java.lang.String address, Message message)` | Sends a message to the specified address instead of the ClientProducer's address.
    `void` | ClientProducer.`send​(Message message)` | Sends a message to an address.
    `void` | ClientProducer.`send​(Message message, SendAcknowledgementHandler handler)` | Sends a message to the specified address instead of the ClientProducer's address.
    `void` | ClientProducer.`send​(org.apache.activemq.artemis.api.core.SimpleString address, Message message)` | Sends a message to the specified address instead of the ClientProducer's address.
    `void` | ClientProducer.`send​(org.apache.activemq.artemis.api.core.SimpleString address, Message message, SendAcknowledgementHandler handler)` | Sends a message to the specified address instead of the ClientProducer's address.
    `void` | SendAcknowledgementHandler.`sendAcknowledged​(Message message)` | Notifies the client that a message sent asynchronously has been received by the server.
    `default void` | SendAcknowledgementHandler.`sendFailed​(Message message, java.lang.Exception e)` |

  - ### Uses of Message in org.apache.activemq.artemis.api.core.management

    Methods in org.apache.activemq.artemis.api.core.management with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `static boolean` | ManagementHelper.`hasOperationSucceeded​(Message message)` | Returns whether the invocation of the management operation on the server resource succeeded.
    `static boolean` | ManagementHelper.`isAttributesResult​(Message message)` | Returns whether the JMS message corresponds to the result of a management attribute value.
    `static boolean` | ManagementHelper.`isOperationResult​(Message message)` | Returns whether the JMS message corresponds to the result of a management operation invocation.
    `static java.lang.Object[]` | ManagementHelper.`retrieveOperationParameters​(Message message)` | Used by ActiveMQ Artemis management service.

  - ### Uses of Message in org.apache.activemq.artemis.jms.transaction

    Methods in org.apache.activemq.artemis.jms.transaction with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Map<java.lang.String,​java.lang.Object>` | JMSTransactionDetail.`decodeMessageProperties​(Message msg)` |
    `java.lang.String` | JMSTransactionDetail.`decodeMessageType​(Message msg)` |

  - ### Uses of Message in org.apache.activemq.artemis.reader

    Methods in org.apache.activemq.artemis.reader with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | MessageUtil.`clearProperties​(Message message)` |
    `static int` | MessageUtil.`getIntProperty​(Message message, java.lang.String name)` |
    `static java.lang.String` | MessageUtil.`getJMSCorrelationID​(Message message)` |
    `static byte[]` | MessageUtil.`getJMSCorrelationIDAsBytes​(Message message)` |
    `static org.apache.activemq.artemis.api.core.SimpleString` | MessageUtil.`getJMSReplyTo​(Message message)` |
    `static java.lang.String` | MessageUtil.`getJMSType​(Message message)` |
    `static long` | MessageUtil.`getLongProperty​(Message message, java.lang.String name)` |
    `static java.lang.Object` | MessageUtil.`getObjectProperty​(Message message, java.lang.String name)` |
    `static java.util.Set<java.lang.String>` | MessageUtil.`getPropertyNames​(Message message)` |
    `static java.lang.String` | MessageUtil.`getStringProperty​(Message message, java.lang.String name)` |
    `static boolean` | MessageUtil.`propertyExists​(Message message, java.lang.String name)` |
    `static void` | MessageUtil.`setIntProperty​(Message message, java.lang.String name, int value)` |
    `static void` | MessageUtil.`setJMSCorrelationID​(Message message, java.lang.String correlationID)` |
    `static void` | MessageUtil.`setJMSCorrelationIDAsBytes​(Message message, byte[] correlationID)` |
    `static void` | MessageUtil.`setJMSReplyTo​(Message message, java.lang.String dest)` |
    `static void` | MessageUtil.`setJMSReplyTo​(Message message, org.apache.activemq.artemis.api.core.SimpleString dest)` |
    `static void` | MessageUtil.`setJMSType​(Message message, java.lang.String type)` |
    `static void` | MessageUtil.`setLongProperty​(Message message, java.lang.String name, long value)` |
    `static void` | MessageUtil.`setObjectProperty​(Message message, java.lang.String name, java.lang.Object value)` |
    `static void` | MessageUtil.`setStringProperty​(Message message, java.lang.String name, java.lang.String value)` |

  - ### Uses of Message in org.apache.activemq.artemis.spi.core.protocol

    Classes in org.apache.activemq.artemis.spi.core.protocol with type parameters of type Message
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `MessageConverter<ProtocolMessage extends Message>` |

    Methods in org.apache.activemq.artemis.spi.core.protocol that return Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `Message` | MessagePersister.`decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools)` |
    `Message` | MessagePersister.`decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)` |
    `static Message` | EmbedMessageUtil.`extractEmbedded​(ICoreMessage message, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)` |

    Methods in org.apache.activemq.artemis.spi.core.protocol that return types with arguments of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `default org.apache.activemq.artemis.core.persistence.Persister<Message>[]` | ProtocolManagerFactory.`getPersister()` |

    Methods in org.apache.activemq.artemis.spi.core.protocol with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `Message` | MessagePersister.`decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools)` |
    `Message` | MessagePersister.`decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)` |
    `static ICoreMessage` | EmbedMessageUtil.`embedAsCoreMessage​(Message source)` |
    `void` | MessagePersister.`encode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record)` | Sub classes must add the first short as the protocol-id
    `int` | MessagePersister.`getEncodeSize​(Message record)` |
    `int` | SessionCallback.`sendLargeMessage​(org.apache.activemq.artemis.core.server.MessageReference reference, Message message, org.apache.activemq.artemis.core.server.ServerConsumer consumerID, long bodySize, int deliveryCount)` |
    `int` | SessionCallback.`sendMessage​(org.apache.activemq.artemis.core.server.MessageReference ref, Message message, org.apache.activemq.artemis.core.server.ServerConsumer consumerID, int deliveryCount)` |

    Method parameters in org.apache.activemq.artemis.spi.core.protocol with type arguments of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | MessagePersister.`registerPersister​(org.apache.activemq.artemis.core.persistence.Persister<Message> persister)` |

  - ### Uses of Message in org.apache.activemq.artemis.spi.core.remoting

    Methods in org.apache.activemq.artemis.spi.core.remoting with parameters of type Message
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | SessionContext.`expireMessage​(ClientConsumer consumer, Message message)` |
    `abstract int` | SessionContext.`getCreditsOnSendingFull​(Message msgI)` |
    `abstract void` | SessionContext.`sendACK​(boolean individual, boolean block, ClientConsumer consumer, Message message)` |
    `abstract int` | SessionContext.`sendInitialChunkOnLargeMessage​(Message msgI)` | it should return the number of credits (or bytes) used to send this packet
    `abstract int` | SessionContext.`sendLargeMessageChunk​(Message msgI, long messageBodySize, boolean sendBlocking, boolean lastChunk, byte[] chunk, int reconnectID, SendAcknowledgementHandler messageHandler)` |
    `abstract int` | SessionContext.`sendServerLargeMessageChunk​(Message msgI, long messageBodySize, boolean sendBlocking, boolean lastChunk, byte[] chunk, SendAcknowledgementHandler messageHandler)` |