Thanks Justin,

That sounds like a great idea to me - will submit a pr. It enables clients
to be quite dumb and the broker can also be in full control of what they
receive based on their credentials.


Dave

On Sat, Feb 15, 2020, 7:06 PM Justin Bertram <jbert...@apache.org> wrote:

> Interceptors work on a per-protocol basis and the way they work for each is
> slightly different. I think you can do what you want for core clients using
> interceptors, but I don't think it will work for AMQP. AMQP interceptors
> don't intercept low-level packets/frames like the other interceptors do
> because Proton-J takes care of all the low-level work. Instead an AMQP
> interceptor just intercepts incoming *messages* (i.e.
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage instances).
>
> I think the solution for you would be to enhance the objects you want to
> change so that you actually can (e.g. make variables non-final). When all
> the implementation work was done originally a plugin infrastructure wasn't
> even considered. As users want/need to do more with plugins we'll need to
> change the code to allow it in certain places like this.
>
> Would you be willing to send a PR with the changes you need?
>
>
> Justin
>
> On Sat, Feb 15, 2020 at 11:14 AM David Martin <dav...@qoritek.com> wrote:
>
> > Hi Justin,
> >
> > AMQP or Core - can be either
> >
> >
> > Thanks,
> >
> > Dave
> >
> > On Fri, Feb 14, 2020, 11:02 PM Justin Bertram <jbert...@apache.org>
> wrote:
> >
> > > What protocol are your clients going to be using?
> > >
> > >
> > > Justin
> > >
> > > On Fri, Feb 14, 2020 at 3:28 PM David Martin <dav...@qoritek.com>
> wrote:
> > >
> > > > Thanks Chris -
> > > >
> > > > Unfortunately what I need to override (queue name and filter) is read
> > > only:
> > > >
> > > >
> > > >
> > >
> >
> https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ConsumerInfo.java
> > > >
> > > > Wondering whether an interceptor is what I need? Unless I'm missing
> > > > something blindingly obvious about these interfaces for plugins .
> > > >
> > > >
> > > > Dave
> > > >
> > > > On Fri, Feb 14, 2020, 2:06 PM Christopher Shannon <
> > > > christopher.l.shan...@gmail.com> wrote:
> > > >
> > > > > Take a look at the plugin API for Artemis:
> > > > >
> > > > >
> > > >
> > >
> >
> https://activemq.apache.org/components/artemis/documentation/latest/broker-plugins.html
> > > > >
> > > > > Specifically you can implement your own ActiveMQServerPlugin (which
> > > > extends
> > > > > many other plugin interfaces) and has a ton of hooks into the
> broker
> > to
> > > > do
> > > > > what you need.  ActiveMQServerConsumerPlugin probably has the
> methods
> > > you
> > > > > need.
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/plugin/ActiveMQServerConsumerPlugin.java
> > > > >
> > > > > On Thu, Feb 13, 2020 at 9:59 AM David Martin <dav...@qoritek.com>
> > > wrote:
> > > > >
> > > > > > Hi everyone,
> > > > > >
> > > > > > Decided to switch to Artemis which is not going to be difficult
> in
> > > the
> > > > > main
> > > > > > but not sure of my best option to migrate a broker plugin which
> > > > overrides
> > > > > > *addConsumer()* to set a new destination and a message selector
> > using
> > > > > > broker-side business logic based on the user credentials. It
> looks
> > > > like I
> > > > > > might be able to do this as a plugin or as an interceptor and not
> > > sure
> > > > > what
> > > > > > to override on either of these interfaces?
> > > > > >
> > > > > > Any help/pointers appreciated.
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Dave
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to