That's weird. I tried the link from your previous email too and it gave me a 404 as well. However, it's working now. It must have been a GitHub hiccup or something.
Justin On Wed, Oct 11, 2017 at 11:14 AM, Clebert Suconic <clebert.suco...@gmail.com > wrote: > Just opened and it works for me > > https://github.com/apache/activemq-artemis/pull/1584 > > > On Wed, Oct 11, 2017 at 12:02 PM Harrison Tarr <harrison.t...@connexta.com > > > wrote: > > > Clebert, > > > > That PR URL gives me a 404. > > > > Harrison > > > > -----Original Message----- > > From: Clebert Suconic [mailto:clebert.suco...@gmail.com] > > Sent: Wednesday, October 11, 2017 9:00 AM > > To: users@activemq.apache.org > > Subject: Re: How to put "properties" on a message so they are accessible > > later > > > > What Harryson said matches my PR.. you you would need to call the method > > reencode. .otherwise you won't receive the messages.. and it wouldn't be > > persisted. > > > > On Wed, Oct 11, 2017 at 11:58 AM, Clebert Suconic < > > clebert.suco...@gmail.com> wrote: > > > Please look at the pull request.. I believe it would fix help you: > > > > > > https://github.com/apache/activemq-artemis/pull/1584 > > > > > > On Wed, Oct 11, 2017 at 11:58 AM, Clebert Suconic > > > <clebert.suco...@gmail.com> wrote: > > >> You would be able to call reencode on the message. > > >> > > >> there was an issue that if you didn't have a property, the > > >> applicationProperties wouldn't be set.. > > >> > > >> > > >> I added an example, and fixed that issue here: > > >> > > >> https://github.com/apache/activemq-artemis/pull/1584 > > >> > > >> > > >> Notice you would need to do the else part in case of a core protocol > > >> message.. (I didn't do that part here). > > >> > > >> On Wed, Oct 11, 2017 at 4:46 AM, Matthias Hanisch > > >> <matthias.hani...@camline.com> wrote: > > >>> Hi, > > >>> > > >>> let me explain a similar use case what we would use to show that > > >>> there is a demand for modification of application properties: > > >>> > > >>> We would like to enrich an AMQP message with additional application > > >>> properties for better filtering and message routing. > > >>> > > >>> As far as I understood from the discussion below this is not > > >>> possible by calling message.putStringProperty("new_prop", > > >>> "new_prop_value") > > >>> > > >>> I tried to do this in an AmqpInterceptor but the listener still gets > > >>> the original message without this added property. And therefore the > > >>> listener can also not create a message selector based on the new > > >>> application properties. > > >>> > > >>> I also checked the spec and I could not find a reference that > > >>> application properties are immutable. For "pure" properties this > > >>> seems to be true according to section 3.2.4 of the spec. > > >>> > > >>> The only way I can think of is to use a listener which creates a new > > >>> message with the enriched context and uploads it back to the broker. > > >>> This would duplicate a lot of messages and would impact performance. > > >>> > > >>> A more efficient way to realize this feature would be greatly > > appreciated. > > >>> > > >>> Best regards, > > >>> Matthias > > >>> > > >>> P.S.: I just subscribed to this mailing list so I was not able to > > >>> reply directly to the mail below. Sorry about that. > > >>> > > >>> > > >>> ---------- Weitergeleitete Nachricht ---------- > > >>>> From: Clebert Suconic <clebert.suco...@gmail.com> > > >>>> To: users@activemq.apache.org > > >>>> Cc: > > >>>> Bcc: > > >>>> Date: Tue, 10 Oct 2017 20:18:38 -0400 > > >>>> Subject: Re: How to put "properties" on a message so they are > > >>>> accessible later We could add a new method call to the plugin... > > >>>> something like replaceMessage. > > >>>> > > >>>> With that on hand you could then convert the AMQPMessage to a Core > > >>>> Message using message.toCore().. and return the transformed message. > > >>>> > > >>>> > > >>>> The message wouldn't be an AMQP message any longer from that point > > >>>> on.. it would eventually be converted back to whatever other > > >>>> message protocols it leads on the other side... it would of course > > >>>> have some performance impact but it would work. > > >>>> > > >>>> On Tue, Oct 10, 2017 at 5:55 PM, Timothy Bish <tabish...@gmail.com> > > wrote: > > >>>> > On 10/10/2017 05:20 PM, Harrison Tarr wrote: > > >>>> >> > > >>>> >> Thanks for the quick reply. Is there any way to change something > > >>>> >> on the message that my consumer could then access? Maybe not > > >>>> ApplicationProperties > > >>>> >> but something else? > > >>>> > > > >>>> > > > >>>> > Nothing that would be accessible via the JMS client API. > > >>>> > > > >>>> > > > >>>> >> Harrison > > >>>> >> > > >>>> >> -----Original Message----- > > >>>> >> From: Timothy Bish [mailto:tabish...@gmail.com] > > >>>> >> Sent: Tuesday, October 10, 2017 2:11 PM > > >>>> >> To: users@activemq.apache.org > > >>>> >> Subject: Re: How to put "properties" on a message so they are > > >>>> >> accessible later > > >>>> >> > > >>>> >> On 10/10/2017 05:06 PM, Harrison Tarr wrote: > > >>>> >>> > > >>>> >>> 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/mai > > >>>> >>> n/java/org/apache/qpid/jms/provider/amqp/AmqpConsumer.java#L496 > > >>>> >>> ) > > >>>> >> > > >>>> >> AMQP ApplicationProperties are immutable so you cannot change or > > >>>> >> add to them in flight, that would violate the AMQP specification. > > >>>> >> > > >>>> >>> 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:jbert...@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.t...@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: tbai...@gmail.com [mailto:tbai...@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.t...@connexta.com> > > >>>> >>>> wrote: > > >>>> >>>> > > >>>> >>>>> I just wanted to follow up: Does anyone know how to put an > > >>>> >>>>> attribute/property on a message in an ActiveMQServer > > <https://maps.google.com/?q=ribute/property+on+a+message+ > in+an+ActiveMQServer&entry=gmail&source=g> > > Plugin > > >>>> >>>>> that I can then pull out of the message in Camel? > > >>>> >>>>> > > >>>> >>>>> Regards, > > >>>> >>>>> Harrison Tarr > > >>>> >>>>> > > >>>> >>>>> -----Original Message----- > > >>>> >>>>> From: Harrison Tarr [mailto:harrison.t...@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 > > >>>> >>>>> > > >>>> >> -- > > >>>> >> Tim Bish > > >>>> >> twitter: @tabish121 > > >>>> >> blog: http://timbish.blogspot.com/ > > >>>> >> > > >>>> > > > >>>> > -- > > >>>> > Tim Bish > > >>>> > twitter: @tabish121 > > >>>> > blog: http://timbish.blogspot.com/ > > >>>> > > > >>>> > > >>>> > > >>>> > > >>>> -- > > >>>> Clebert Suconic > > >>>> > > >>>> > > >>>> > > >>> > > >>> -- > > >>> camLine GmbH > > >>> 85238 Petershausen, Industriering 4a, Deutschland Amtsgericht > > >>> München HRB 88821 > > >>> Geschäftsführer: Heinz Linsmaier (CEO), Bernhard Jofer, Georg Ruetz > > >>> <http://www.camline.com/en/camline/events.html> > > >>> <http://www.camline.com/en/camline/events.html> > > >>> <http://www.camline.com/en/camline/events.html> > > >> > > >> > > >> > > >> -- > > >> Clebert Suconic > > > > > > > > > > > > -- > > > Clebert Suconic > > > > > > > > -- > > Clebert Suconic > > > -- > Clebert Suconic >