Search in sources :

Example 16 with AMQPSymbol

use of com.swiftmq.amqp.v100.types.AMQPSymbol in project swiftmq-ce by iitsoftware.

the class JMSMappingInboundTransformer method transformApplicationProperties.

protected void transformApplicationProperties(ApplicationProperties applicationProperties, MessageImpl jmsMessage) throws Exception {
    Map map = applicationProperties.getValue();
    for (Iterator iter = map.entrySet().iterator(); iter.hasNext(); ) {
        Map.Entry entry = (Map.Entry) iter.next();
        AMQPType key = (AMQPType) entry.getKey();
        AMQPDescribedConstructor constructor = key.getConstructor();
        int code = constructor != null ? constructor.getFormatCode() : key.getCode();
        String propName = null;
        if (AMQPTypeDecoder.isString(code))
            propName = nameTranslator.translate(((AMQPString) key).getValue());
        else if (AMQPTypeDecoder.isSymbol(code))
            propName = nameTranslator.translate(((AMQPSymbol) key).getValue());
        if (propName != null) {
            if (jmsTypeProp != null && propName.equals(jmsTypeProp)) {
                AMQPType t = (AMQPType) entry.getValue();
                if (AMQPTypeDecoder.isString(t.getCode()))
                    jmsMessage.setJMSType(((AMQPString) entry.getValue()).getValue());
                else
                    jmsMessage.setStringProperty("JMS_TYPE_ERROR", jmsTypeProp + " must be of String value");
            } else {
                try {
                    jmsMessage.setObjectProperty(propName, Util.convertAMQPtoJMS((AMQPType) entry.getValue()));
                } catch (Exception e) {
                    jmsMessage.setStringProperty(propName + "_ERROR", e.getMessage());
                }
            }
        }
    }
}
Also used : Iterator(java.util.Iterator) Map(java.util.Map) AMQPException(com.swiftmq.amqp.v100.client.AMQPException) JMSException(javax.jms.JMSException)

Example 17 with AMQPSymbol

use of com.swiftmq.amqp.v100.types.AMQPSymbol in project swiftmq-ce by iitsoftware.

the class JMSMappingInboundTransformer method transformMap.

protected void transformMap(Map map, MessageImpl jmsMessage, String prefix) throws Exception {
    for (Iterator iter = map.entrySet().iterator(); iter.hasNext(); ) {
        boolean isJMSType = false;
        Map.Entry entry = (Map.Entry) iter.next();
        AMQPType key = (AMQPType) entry.getKey();
        AMQPDescribedConstructor constructor = key.getConstructor();
        int code = constructor != null ? constructor.getFormatCode() : key.getCode();
        String propName = null;
        if (AMQPTypeDecoder.isULong(code))
            propName = prefix + String.valueOf(((AMQPUnsignedLong) key).getValue());
        else if (AMQPTypeDecoder.isSymbol(code)) {
            if (prefix.equals(prefixMA) && ((AMQPSymbol) key).getValue().equals("x-opt-jms-type"))
                isJMSType = true;
            propName = prefix + nameTranslator.translate(((AMQPSymbol) key).getValue());
        }
        if (isJMSType) {
            AMQPType t = (AMQPType) entry.getValue();
            if (AMQPTypeDecoder.isString(t.getCode()))
                jmsMessage.setJMSType(((AMQPString) entry.getValue()).getValue());
            else
                jmsMessage.setStringProperty("JMS_TYPE_ERROR", "x-opt-jms-type must be of String value");
        } else if (propName != null) {
            try {
                jmsMessage.setObjectProperty(propName, Util.convertAMQPtoJMS((AMQPType) entry.getValue()));
            } catch (Exception e) {
                jmsMessage.setStringProperty(propName + "_ERROR", e.getMessage());
            }
        }
    }
}
Also used : AMQPException(com.swiftmq.amqp.v100.client.AMQPException) JMSException(javax.jms.JMSException) Iterator(java.util.Iterator) Map(java.util.Map)

Example 18 with AMQPSymbol

use of com.swiftmq.amqp.v100.types.AMQPSymbol in project swiftmq-ce by iitsoftware.

the class JMSMappingInboundTransformer method transformProperties.

protected void transformProperties(Properties properties, final MessageImpl jmsMessage, final DestinationFactory destinationFactory) throws Exception {
    if (overwriteMessageId) {
        jmsMessage.setJMSMessageID(nextMsgId());
    } else {
        MessageIdIF messageIdIF = properties.getMessageId();
        if (messageIdIF != null)
            messageIdIF.accept(new MessageIdVisitor() {

                public void visit(MessageIdUlong messageIdUlong) {
                    try {
                        jmsMessage.setJMSMessageID(String.valueOf(messageIdUlong.getValue()));
                    } catch (JMSException e) {
                    }
                }

                public void visit(MessageIdUuid messageIdUuid) {
                    try {
                        jmsMessage.setJMSMessageID(String.valueOf(messageIdUuid.getValue()));
                    } catch (JMSException e) {
                    }
                }

                public void visit(MessageIdBinary messageIdBinary) {
                    try {
                        jmsMessage.setJMSMessageID(new String(messageIdBinary.getValue()));
                    } catch (JMSException e) {
                    }
                }

                public void visit(MessageIdString messageIdString) {
                    try {
                        jmsMessage.setJMSMessageID(messageIdString.getValue());
                    } catch (JMSException e) {
                    }
                }
            });
    }
    AMQPBinary userId = properties.getUserId();
    if (userId != null)
        jmsMessage.setStringProperty(MessageImpl.PROP_USER_ID, new String(userId.getValue(), "ISO-8859-1"));
    AddressIF to = properties.getTo();
    if (to != null) {
        jmsMessage.setJMSDestination(destinationFactory.create(to));
        to.accept(new AddressVisitor() {

            public void visit(AddressString addressString) {
                try {
                    jmsMessage.setStringProperty(Util.PROP_AMQP_TO_ADDRESS, addressString.getValue());
                } catch (JMSException e) {
                }
            }
        });
    }
    AMQPString subject = properties.getSubject();
    if (subject != null)
        jmsMessage.setStringProperty(prefixVendor + "Subject", subject.getValue());
    AddressIF replyTo = properties.getReplyTo();
    if (replyTo != null)
        jmsMessage.setJMSReplyTo(destinationFactory.create(replyTo));
    MessageIdIF correlationIdIF = properties.getCorrelationId();
    if (correlationIdIF != null)
        correlationIdIF.accept(new MessageIdVisitor() {

            public void visit(MessageIdUlong messageIdUlong) {
                try {
                    jmsMessage.setJMSCorrelationID(String.valueOf(messageIdUlong.getValue()));
                } catch (JMSException e) {
                }
            }

            public void visit(MessageIdUuid messageIdUuid) {
                try {
                    jmsMessage.setJMSCorrelationID(String.valueOf(messageIdUuid.getValue()));
                } catch (JMSException e) {
                }
            }

            public void visit(MessageIdBinary messageIdBinary) {
                try {
                    jmsMessage.setJMSCorrelationID(new String(messageIdBinary.getValue()));
                } catch (JMSException e) {
                }
            }

            public void visit(MessageIdString messageIdString) {
                try {
                    jmsMessage.setJMSCorrelationID(messageIdString.getValue());
                } catch (JMSException e) {
                }
            }
        });
    AMQPSymbol contentType = properties.getContentType();
    if (contentType != null)
        jmsMessage.setStringProperty(prefixVendor + "ContentType", contentType.getValue());
    AMQPSymbol contentEncoding = properties.getContentEncoding();
    if (contentEncoding != null)
        jmsMessage.setStringProperty(prefixVendor + "ContentEncoding", contentEncoding.getValue());
    AMQPTimestamp ts = properties.getAbsoluteExpiryTime();
    if (ts != null)
        jmsMessage.setJMSExpiration(ts.getValue());
    AMQPTimestamp ct = properties.getCreationTime();
    if (ct != null)
        jmsMessage.setJMSTimestamp(ct.getValue());
    AMQPString groupId = properties.getGroupId();
    if (groupId != null)
        jmsMessage.setStringProperty(Util.PROP_GROUP_ID, groupId.getValue());
    SequenceNo groupSeq = properties.getGroupSequence();
    if (groupSeq != null)
        jmsMessage.setLongProperty(Util.PROP_GROUP_SEQ, groupSeq.getValue());
    AMQPString replyToGroupId = properties.getReplyToGroupId();
    if (replyToGroupId != null)
        jmsMessage.setStringProperty(prefixVendor + "ReplyToGroupID", replyToGroupId.getValue());
}
Also used : SequenceNo(com.swiftmq.amqp.v100.generated.transport.definitions.SequenceNo) JMSException(javax.jms.JMSException)

Aggregations

IOException (java.io.IOException)14 SequenceNo (com.swiftmq.amqp.v100.generated.transport.definitions.SequenceNo)4 Map (java.util.Map)4 JMSException (javax.jms.JMSException)4 AMQPException (com.swiftmq.amqp.v100.client.AMQPException)3 AddressString (com.swiftmq.amqp.v100.generated.messaging.message_format.AddressString)3 AMQPMessage (com.swiftmq.amqp.v100.messaging.AMQPMessage)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 NoLocalFilter (com.swiftmq.amqp.v100.generated.filter.filter_types.NoLocalFilter)2 SelectorFilter (com.swiftmq.amqp.v100.generated.filter.filter_types.SelectorFilter)2 Declared (com.swiftmq.amqp.v100.generated.transactions.coordination.Declared)2 Milliseconds (com.swiftmq.amqp.v100.generated.transport.definitions.Milliseconds)2 Seconds (com.swiftmq.amqp.v100.generated.transport.definitions.Seconds)2 Iterator (java.util.Iterator)2 StreamException (com.rabbitmq.stream.StreamException)1 com.rabbitmq.stream.amqp (com.rabbitmq.stream.amqp)1 POSendClose (com.swiftmq.amqp.v100.client.po.POSendClose)1 com.swiftmq.amqp.v100.generated.messaging.message_format (com.swiftmq.amqp.v100.generated.messaging.message_format)1 Coordinator (com.swiftmq.amqp.v100.generated.transactions.coordination.Coordinator)1