Hello, First of all, thanks for the reply. Im sorry if the explanation was a little imprecise. Yes you are correct. We use it so we can consume messages on a topic, but also in a queue. The prefix is used, because the queue and the topic cant share the same name if i am correct. Similar to ActiveMQ, where we are using a virtualDestinationInterceptor to redirect Event messages into a queue to be consumed by distributed applications.
Max Von: "Arthur Naseef" <artnas...@apache.org> An: dev@activemq.apache.org Datum: 06/06/2024 06:20 PM Betreff: [Ext] Re: PrefixAddressTransformer for unique event divert If I read it correctly, the transformer together with the divert provides a means to duplicate messages from any number of inbound destinations to a parallel set of destinations by adding a prefix. For example: test.events.a.1 -> TestQ.test.events.a.1 test.events.b.2 -> TestQ.test.events.b.2 Like a wiretap, using parallel queue structures. Did I get that right? Art On Thu, Jun 6, 2024 at 8:55?AM Justin Bertram <jbert...@apache.org> wrote: > Generally speaking, _every_ commit which fixes a bug or adds a feature or > improvement should have a test. This ensures the bug is actually fixed or > the feature actually works and also mitigates regressions later. > > Furthermore, if you want this to be something accessible to end-users then > documentation should be part of the commit as well (e.g. here [1]). > > All that said, however, I'm not sure the use-case for this transformer is > general enough to be shipped with the broker. I can't really tell what the > use-case is based on your email. > > Of course, feel free to send a PR with tests and documentation and then it > can be properly evaluated. > > > Justin > > [1] > > https://github.com/apache/activemq-artemis/blob/main/docs/user-manual/transformers.adoc > > On Thu, Jun 6, 2024 at 7:24?AM <maximilian.rie...@systema.com> wrote: > > > Hello, > > > > we are currently using a Transformer to redirect Event messages into a > > queue to consume them as kind of Unique Processing by distributed > > applications. > > For this we use a transformer: > > > > public class PrefixAddressTransformer implements Transformer > > { > > @Override > > public Message transform(Message message) > > { > > SimpleString originalAddress = > > > (SimpleString)message.getBrokerProperty(Message.HDR_ORIGINAL_ADDRESS); > > message.setAddress(message.getAddress() + "." > > +originalAddress.toString()); > > return message; > > } > > } > > > > That we use with with a divert: > > > > <diverts> > > <divert name="test-events-divert"> > > <address>test.events.#</address> > > <forwarding-address>TestQ</forwarding-address> > > <exclusive>true</exclusive> > > > > > <transformer-class-name>org.apache.activemq.artemis.core.server.transformer.PrefixAddressTransformer</transformer-class-name> > > </divert> > > </diverts> > > > > So that all messages on test.events.# are also sent to a queue > > TestQ.test.events... and can be processed in a distributed manner. > > Others might also profit from this, so we wanted to commit it to the > > offical artemis repo. > > > > Should there be testing done on this transformer, like with the > > > org.apache.activemq.artemis.core.server.transformer.AddHeadersTransformer, > > which is tested in > > > org.apache.activemq.artemis.tests.integration.management.DivertControlTest > > ? > > > > best regards > > Maximilian Rieder > > ------------------------------ > > > > *Maximilian Rieder* > > Software Engineer > > > > Phone: +49 941 / 7 83 92 84 > > maximilian.rie...@systema.com > > > > www.systema.com > > > > [image: LinkedIn] <https://www.linkedin.com/company/systema-gmbh/ > >[image: > > Facebook] <https://de-de.facebook.com/SYSTEMA.automation/>[image: XING] > > <https://www.xing.com/pages/systemagmbh> > > > > SYSTEMA > > Systementwicklung Dipl.-Inf. Manfred Austen GmbH > > > > Manfred-von-Ardenne-Ring 6 | 01099 Dresden > > HRB 11256 Amtsgericht Dresden | USt.-ID DE 159 607 786 > > Geschäftsführer: Manfred Austen, CEO und Dr. Ulf Martin, COO > > > > P Please check whether a printout of this e-mail is really necessary. > > >