/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq.artemis.ra; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import java.util.Arrays; import java.util.Enumeration; /** * A wrapper for a message */ public class ActiveMQRAMessage implements Message { /** * Whether trace is enabled */ private static boolean trace = ActiveMQRALogger.LOGGER.isTraceEnabled(); /** * The message */ protected Message message; /** * The session */ protected ActiveMQRASession session; /** * Create a new wrapper * * @param message the message * @param session the session */ public ActiveMQRAMessage(final Message message, final ActiveMQRASession session) { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("constructor(" + message + ", " + session + ")"); } this.message = message; this.session = session; } /** * Acknowledge * * @throws JMSException Thrown if an error occurs */ @Override public void acknowledge() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("acknowledge()"); } session.getSession(); // Check for closed message.acknowledge(); } /** * Clear body * * @throws JMSException Thrown if an error occurs */ @Override public void clearBody() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("clearBody()"); } message.clearBody(); } /** * Clear properties * * @throws JMSException Thrown if an error occurs */ @Override public void clearProperties() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("clearProperties()"); } message.clearProperties(); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public boolean getBooleanProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getBooleanProperty(" + name + ")"); } return message.getBooleanProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public byte getByteProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getByteProperty(" + name + ")"); } return message.getByteProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public double getDoubleProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getDoubleProperty(" + name + ")"); } return message.getDoubleProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public float getFloatProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getFloatProperty(" + name + ")"); } return message.getFloatProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public int getIntProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getIntProperty(" + name + ")"); } return message.getIntProperty(name); } /** * Get correlation id * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public String getJMSCorrelationID() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSCorrelationID()"); } return message.getJMSCorrelationID(); } /** * Get correlation id * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public byte[] getJMSCorrelationIDAsBytes() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSCorrelationIDAsBytes()"); } return message.getJMSCorrelationIDAsBytes(); } /** * Get delivery mode * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public int getJMSDeliveryMode() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSDeliveryMode()"); } return message.getJMSDeliveryMode(); } /** * Get destination * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public Destination getJMSDestination() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSDestination()"); } return message.getJMSDestination(); } /** * Get expiration * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public long getJMSExpiration() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSExpiration()"); } return message.getJMSExpiration(); } /** * Get message id * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public String getJMSMessageID() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSMessageID()"); } return message.getJMSMessageID(); } /** * Get priority * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public int getJMSPriority() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSPriority()"); } return message.getJMSPriority(); } /** * Get redelivered status * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public boolean getJMSRedelivered() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSRedelivered()"); } return message.getJMSRedelivered(); } /** * Get reply to destination * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public Destination getJMSReplyTo() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSReplyTo()"); } return message.getJMSReplyTo(); } /** * Get timestamp * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public long getJMSTimestamp() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSTimestamp()"); } return message.getJMSTimestamp(); } /** * Get type * * @return The value * @throws JMSException Thrown if an error occurs */ @Override public String getJMSType() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSType()"); } return message.getJMSType(); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public long getLongProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getLongProperty(" + name + ")"); } return message.getLongProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public Object getObjectProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getObjectProperty(" + name + ")"); } return message.getObjectProperty(name); } /** * Get property names * * @return The values * @throws JMSException Thrown if an error occurs */ @Override public Enumeration getPropertyNames() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getPropertyNames()"); } return message.getPropertyNames(); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public short getShortProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getShortProperty(" + name + ")"); } return message.getShortProperty(name); } /** * Get property * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public String getStringProperty(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getStringProperty(" + name + ")"); } return message.getStringProperty(name); } /** * Do property exist * * @param name The name * @return The value * @throws JMSException Thrown if an error occurs */ @Override public boolean propertyExists(final String name) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("propertyExists(" + name + ")"); } return message.propertyExists(name); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setBooleanProperty(final String name, final boolean value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setBooleanProperty(" + name + ", " + value + ")"); } message.setBooleanProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setByteProperty(final String name, final byte value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setByteProperty(" + name + ", " + value + ")"); } message.setByteProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setDoubleProperty(final String name, final double value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setDoubleProperty(" + name + ", " + value + ")"); } message.setDoubleProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setFloatProperty(final String name, final float value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setFloatProperty(" + name + ", " + value + ")"); } message.setFloatProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setIntProperty(final String name, final int value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setIntProperty(" + name + ", " + value + ")"); } message.setIntProperty(name, value); } /** * Set correlation id * * @param correlationID The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSCorrelationID(final String correlationID) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSCorrelationID(" + correlationID + ")"); } message.setJMSCorrelationID(correlationID); } /** * Set correlation id * * @param correlationID The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSCorrelationIDAsBytes(final byte[] correlationID) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSCorrelationIDAsBytes(" + Arrays.toString(correlationID) + ")"); } message.setJMSCorrelationIDAsBytes(correlationID); } /** * Set delivery mode * * @param deliveryMode The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSDeliveryMode(final int deliveryMode) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSDeliveryMode(" + deliveryMode + ")"); } message.setJMSDeliveryMode(deliveryMode); } /** * Set destination * * @param destination The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSDestination(final Destination destination) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSDestination(" + destination + ")"); } message.setJMSDestination(destination); } /** * Set expiration * * @param expiration The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSExpiration(final long expiration) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSExpiration(" + expiration + ")"); } message.setJMSExpiration(expiration); } /** * Set message id * * @param id The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSMessageID(final String id) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSMessageID(" + id + ")"); } message.setJMSMessageID(id); } /** * Set priority * * @param priority The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSPriority(final int priority) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSPriority(" + priority + ")"); } message.setJMSPriority(priority); } /** * Set redelivered status * * @param redelivered The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSRedelivered(final boolean redelivered) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSRedelivered(" + redelivered + ")"); } message.setJMSRedelivered(redelivered); } /** * Set reply to * * @param replyTo The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSReplyTo(final Destination replyTo) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSReplyTo(" + replyTo + ")"); } message.setJMSReplyTo(replyTo); } /** * Set timestamp * * @param timestamp The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSTimestamp(final long timestamp) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSTimestamp(" + timestamp + ")"); } message.setJMSTimestamp(timestamp); } /** * Set type * * @param type The value * @throws JMSException Thrown if an error occurs */ @Override public void setJMSType(final String type) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSType(" + type + ")"); } message.setJMSType(type); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setLongProperty(final String name, final long value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setLongProperty(" + name + ", " + value + ")"); } message.setLongProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setObjectProperty(final String name, final Object value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setObjectProperty(" + name + ", " + value + ")"); } message.setObjectProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setShortProperty(final String name, final short value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setShortProperty(" + name + ", " + value + ")"); } message.setShortProperty(name, value); } /** * Set property * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setStringProperty(final String name, final String value) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setStringProperty(" + name + ", " + value + ")"); } message.setStringProperty(name, value); } @Override public long getJMSDeliveryTime() throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getJMSDeliveryTime()"); } return message.getJMSDeliveryTime(); } @Override public void setJMSDeliveryTime(long deliveryTime) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("setJMSDeliveryTime(" + deliveryTime + ")"); } message.setJMSDeliveryTime(deliveryTime); } @Override public <T> T getBody(Class<T> c) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("getBody(" + c + ")"); } return message.getBody(c); } @Override public boolean isBodyAssignableTo(Class c) throws JMSException { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("isBodyAssignableTo(" + c + ")"); } return message.isBodyAssignableTo(c); } /** * Return the hash code * * @return The hash code */ @Override public int hashCode() { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("hashCode()"); } return message.hashCode(); } /** * Check for equality * * @param object The other object * @return True / false */ @Override public boolean equals(final Object object) { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("equals(" + object + ")"); } if (object != null && object instanceof ActiveMQRAMessage) { return message.equals(((ActiveMQRAMessage) object).message); } else { return message.equals(object); } } /** * Return string representation * * @return The string */ @Override public String toString() { if (ActiveMQRAMessage.trace) { ActiveMQRALogger.LOGGER.trace("toString()"); } return message.toString(); } }