Ricard,

The Java AMQP API is not widely used, most Java programmers are using the Java JMS interface. It is also not well documented, grepping for "Properties" in the examples can help give you an overview if you really want to use this API (see below).

I haven't tried this, but I imagine MessageProperties are handled the same way as DeliveryProperties:

public void message(Session ssn, MessageTransfer xfr)
{
DeliveryProperties dp = xfr.getHeader().get(DeliveryProperties.class);
System.out.println("Message: " + xfr + " with routing_key " + dp.getRoutingKey());
}

Here is the overview for handling properties that I got by using grep on the examples:

$ pwd
/home/jrobie/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample

$ grep Properties */*.java
direct/DirectProducer.java:import org.apache.qpid.transport.DeliveryProperties; direct/DirectProducer.java: DeliveryProperties deliveryProps = new DeliveryProperties(); fanout/FannoutProducer.java:import org.apache.qpid.transport.DeliveryProperties; fanout/FannoutProducer.java: DeliveryProperties deliveryProps = new DeliveryProperties(); headers/Producer.java: DeliveryProperties deliveryProps = new DeliveryProperties(); headers/Producer.java: MessageProperties messageProperties = new MessageProperties(); headers/Producer.java: messageProperties.setApplicationHeaders(messageHeaders); headers/Producer.java: Header header = new Header(deliveryProps, messageProperties);
headers/Producer.java: messageProperties = new MessageProperties();
headers/Producer.java: messageProperties.setApplicationHeaders(messageHeaders); headers/Producer.java: header = new Header(deliveryProps, messageProperties); lvq/Producer.java: DeliveryProperties deliveryProps = new DeliveryProperties(); lvq/Producer.java: MessageProperties messageProperties = new MessageProperties();
lvq/Producer.java: messageProperties.setApplicationHeaders(messageHeaders);
lvq/Producer.java: Header header = new Header(deliveryProps, messageProperties); pubsub/TopicListener.java:import org.apache.qpid.transport.DeliveryProperties; pubsub/TopicListener.java: DeliveryProperties dp = xfr.getHeader().get(DeliveryProperties.class); pubsub/TopicPublisher.java:import org.apache.qpid.transport.DeliveryProperties; pubsub/TopicPublisher.java: DeliveryProperties deliveryProps = new DeliveryProperties(); pubsub/TopicPublisher.java: new Header(new DeliveryProperties().setRoutingKey("control")),

Hope this helps!

Jonathan


ricardlf wrote:
Hi,
I'm starting to get used to Qpid but there is still something that is not
completely clear to me. How do I get message properties of a message? I
mean, in the java amqp examples, when the producer sends a message and when
the consumer gets it, both use MessageTransfer class objects for sending and
getting the message, but this class doesn't have getMessageProperties, so I
don't know how to get for example replyTo propertie from an object of this
class.
I've seen that qpid has a class called Message, but this class doesn't have
a body propertie, so I don't know how to put some content in it, and I don't
know even if I can send an instance of Message using
session.MessageTransfer.
Please, could anyone help me with this confussion or tell me where I can
find an explanation? Thank you so much.

Ricard.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscr...@qpid.apache.org

Reply via email to