Generally you can't easily change a message. Normally you consume the
message then send a new message. Its generally quite inefficient to
modify messages in place in the broker since it adds a massive
deserialization/serialization burden - but with some hacking it should
be possible.

On 8/30/06, dap <[EMAIL PROTECTED]> wrote:

Hello,

I modify messages(add new properties, change body etc.) in Interceptor.
(current 4.1 snapshot)

but the consumer gets the messages still unchanged.

***

aqtivemq.xml:

 <broker xmlns="http://activemq.org/config/1.0"; useJmx="false">
    ...
    <plugins>
          <org.apache.activemq.broker.util.ModifyBrokerPlugin/>
   </plugins>
    ...
  </broker>


ModifyBrokerPlugin.java:

public class ModifyBrokerPlugin extends BrokerPluginSupport {
…

  public void send(ConnectionContext context, Message messageSend) throws
Exception {

         log.info("\n MapMessage before...: " + messageSend);

                        MapMessage  msg  = (MapMessage)messageSend;

                        msg.setStringProperty("foo","SUPER_FOO");

                        
//messageSend.getMessage().setProperty("foo2","SUPER_FOO2");

         log.info("\n MapMessage after...: " + messageSend);            
//message
has been changed

        super.send(context, messageSend);

    }
...
}


***

Do I miss something here?

Or could someone please provide an other idea / examle of modifying message
in a Queue?


thanks!
--
View this message in context: 
http://www.nabble.com/Is-it-possible-to-modify-messages-in-Interceptor--tf2189703.html#a6058250
Sent from the ActiveMQ - User forum at Nabble.com.




--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to