activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harrison Tarr <harrison.t...@connexta.com>
Subject RE: How to put "properties" on a message so they are accessible later
Date Tue, 10 Oct 2017 21:06:03 GMT
Hello again,

I wanted to follow up on this as I've done some more experimenting. I've found that when I
use the Core protocol or Openwire protocol, everything works as expected. I am able to use
the "setStringProperty" in my ActiveMQServerPlugin and it adds a header that I can then access
in my Camel consumer code. However, if I try to add a property to a message that was sent
using the AMQP protocol, it does not stay set on the message. It appears to me that this is
because the AMQP message is more protected? Maybe it has all of the data in an immutable ByteBuffer?
I've tried using the "reencode" method on the org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage
class, but it causes an error; it can't parse the message back out, it says something about
an unknown constructor. (Being handled here https://github.com/apache/qpid-jms/blob/master/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java#L496)


Justin, I've looked at the remoting interceptors. I think I decided against using them because
it does not expose as much information to me as I wanted. I'm specifically trying to take
the authentication credentials and then create some kind of authentication token to attach
to the message that I can then use in my consuming code.

Regards,
Harrison Tarr


-----Original Message-----
From: Justin Bertram [mailto:jbertram@redhat.com] 
Sent: Tuesday, September 12, 2017 3:28 PM
To: users@activemq.apache.org
Subject: Re: How to put "properties" on a message so they are accessible later

I'm not terribly familiar with the ActiveMQServerPlugin functionality in this regard, but
I do know that you can make such modifications to messages using remoting interceptors.  Have
you explored that possibility?


Justin

On Tue, Sep 12, 2017 at 3:45 PM, Harrison Tarr <harrison.tarr@connexta.com>
wrote:

> Right now I'm using Artemis 2.2.0.
> I've done a bit more research and experimentation. It seems that I can 
> set a header in Camel, send the message to a queue/topic hosted on 
> Artemis and read the header as a "stringProperty". The header keys 
> also show up when I do a "getProperties" call. However, if I try to 
> overwrite that field in my ActiveMQServerPlugin (specifically the 
> beforeSend call), the change is not propagated to Camel. IE, if I send a message with
the header "testHeader"
> with a value of "testValue", I can see, in Artemis, "testHeader" as a 
> property on the message with the value of "testValue". If I then try 
> to overwrite that value with "newValue", when I access the message and 
> its headers in the consumer, the header is still "testHeader" with the 
> value of "testValue", whereas I expect it to be "testHeader" with a 
> value of "newValue".
>
> Harrison Tarr
>
> -----Original Message-----
> From: tbain98@gmail.com [mailto:tbain98@gmail.com] On Behalf Of Tim 
> Bain
> Sent: Monday, September 11, 2017 6:26 PM
> To: ActiveMQ Users <users@activemq.apache.org>
> Subject: RE: How to put "properties" on a message so they are 
> accessible later
>
> To be clear, you're asking about doing this in Artemis, not ActiveMQ 
> 5.x, right? What version of Artemis?
>
> On Sep 11, 2017 2:48 PM, "Harrison Tarr" <harrison.tarr@connexta.com>
> wrote:
>
> > I just wanted to follow up: Does anyone know how to put an 
> > attribute/property on a message in an ActiveMQServerPlugin that I 
> > can then pull out of the message in Camel?
> >
> > Regards,
> > Harrison Tarr
> >
> > -----Original Message-----
> > From: Harrison Tarr [mailto:harrison.tarr@connexta.com]
> > Sent: Wednesday, September 6, 2017 8:56 AM
> > To: users@activemq.apache.org
> > Subject: How to put "properties" on a message so they are accessible 
> > later
> >
> > Hi,
> >
> > I'm trying to put a StringProperty on a Message in an 
> > ActiveMQServerPlugin. As far as I can tell, the property gets set 
> > correctly. Later, I'm trying to retrieve the property from a Camel 
> > Exchange. I don't see my property anywhere on the Exchange. I did 
> > notice that it looks like the properties "firedTime" and 
> > "breadcrumbId," which I think come from Artemis, do appear on the 
> > Camel Exchange, which makes me think there is some way to propagate 
> > my
> property from Artemis to Camel.
> >
> > Regards,
> > Harrison Tarr
> >
>
Mime
View raw message