qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Robie <jonathan.ro...@redhat.com>
Subject Re: Message and MessageTransfer
Date Mon, 27 Jul 2009 14:01:13 GMT
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-subscribe@qpid.apache.org


Mime
View raw message