Sure, I can fix it on the master.
About the activation properties on a per-container basis, I agree, however
as a different diff path.

On Fri, Jul 7, 2017 at 7:44 AM, Jonathan Gallimore <
jonathan.gallim...@gmail.com> wrote:

> Thanks for the feedback Romain! @Otavio - what do you think? You want to
> have a go at that?
>
> Jon
>
> On Fri, Jul 7, 2017 at 11:41 AM, Romain Manni-Bucau <rmannibu...@gmail.com
> >
> wrote:
>
> > sounds good this way for container activation props
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://blog-rmannibucau.rhcloud.com> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
> > <https://javaeefactory-rmannibucau.rhcloud.com>
> >
> > 2017-07-07 12:40 GMT+02:00 Jonathan Gallimore <
> > jonathan.gallim...@gmail.com>
> > :
> >
> > > I'm thinking something along the lines of:
> > >
> > >   <Container id="MDB1" ctype="MESSAGE">
> > >     ResourceAdapter MyResourceAdapter
> > >     ActivationSpecClass My.ActivationSpecImpl
> > >
> > >    activation.property1 = value1
> > >    activation.property2 = value2
> > >   </Container>
> > >
> > >   <Container id="MDB2" ctype="MESSAGE">
> > >     ResourceAdapter MyOTHERResourceAdapter
> > >     ActivationSpecClass My.Other.ActivationSpecImpl
> > >    activation.property1 = othervalue1
> > >    activation.property2 = othervalue2
> > >   </Container>
> > >
> > > So all the MDBs in container MDB1 would get the following on their
> > > activation spec
> > >    property1 = value1
> > >    property2 = value2
> > >
> > > And all the MDBs in container MDB2 would get the following on their
> > > activation spec
> > >    property1 = othervalue1
> > >    property2 = othervalue2
> > >
> > >
> > > And then have the potential to override them with system.properties
> like
> > > so:
> > >    MDB1.activation.property1 = othervalue1
> > >    MDB1.activation.property2 = othervalue2
> > >    MDB2.activation.property1 = othervalue1
> > >    MDB2.activation.property2 = othervalue2
> > >
> > > Maybe something is needed to call 'MDB1' out as a container as opposed
> > to a
> > > bean name. In terms of precedence, I'd expect properties on the
> container
> > > to override any `mdb.activation` properties, and any properties
> specific
> > to
> > > a bean to override any container properties - so its Global
> > > (mdb.activation) -> Container ([containerid].activation) -> Bean
> > > ([BeanName].activation).
> > >
> > > I imagine it would essentially boil down to a new key at the point you
> > > suggest, and expand on the test cases.
> > >
> > > I'm in favour of the backport irrespective of whether we choose to
> > explore
> > > my suggestion (or any other suggestion) though.
> > >
> > > Cheers
> > >
> > > Jon
> > >
> > > On Thu, Jul 6, 2017 at 10:09 PM, Romain Manni-Bucau <
> > rmannibu...@gmail.com
> > > >
> > > wrote:
> > >
> > > > 2017-07-06 23:01 GMT+02:00 Jonathan Gallimore <
> > jgallim...@tomitribe.com
> > > >:
> > > >
> > > > > I'm +1 for back porting that patch, thanks Otavio.
> > > > >
> > > > > One thing I'd be interested in as an extra, is seeing if we can set
> > > > > activation properties on a per-container basis too.
> > > > >
> > > >
> > > > Mean like adding one new key in
> > > > https://github.com/apache/tomee/blob/master/container/
> > > > openejb-core/src/main/java/org/apache/openejb/config/
> > > > ActivationConfigPropertyOverride.java#L94
> > > > using .container.<id>?
> > > >
> > > > +1 if ~so (just wanted to avoid a misunderstanding and get a
> completely
> > > new
> > > > feature/code)
> > > >
> > > >
> > > >
> > > > Side note on the fail flag: this was a flag added to pass tck and was
> > in
> > > > "ignore" mode of the MDB (which is fine for this need) but not
> intended
> > > to
> > > > be used or reliable for real applications where it would be saner to
> > fix
> > > > the broken configuration instead of bet on it working ignoring the
> work
> > > > some people did configuring it. I'm not against backporting it but
> > think
> > > it
> > > > is important to remind that I think we don't want to promote that
> flag
> > > > (shouldn't hit the doc for instance since it is an internal
> workaround
> > > > IMHO).
> > > >
> > > >
> > > > >
> > > > > What do you think?
> > > > >
> > > > > Jon
> > > > >
> > > > > On Thu, Jul 6, 2017 at 9:44 PM, Otávio Gonçalves de Santana <
> > > > > osant...@tomitribe.com> wrote:
> > > > >
> > > > > > The problem
> > > > > >
> > > > > > The configuration for MDB activation properties allow any
> key/value
> > > to
> > > > be
> > > > > > specified. At present on the 1.7.x branch, the server will fail
> to
> > > > deploy
> > > > > > the application if the activation property is not present on the
> > > > > activation
> > > > > > spec class.
> > > > > >
> > > > > > This becomes painful in a scenario where more than one JMS
> resource
> > > > > > adapter/MDB container is used, and you wish to configure the
> > > activation
> > > > > > properties of multiple MDBs in one go using the `mdb.activation.`
> > > > system
> > > > > > property.. Right now,if an activation property is used that one
> > > > provider
> > > > > > uses but other one does, the server will throw an exception.
> > > > > >
> > > > > > For example, given these parameters,
> > > > > >
> > > > > >    -
> > > > > >
> > > > > >       mdb.activation.ignore=foo
> > > > > >    -
> > > > > >
> > > > > >       mdb.activation.ignore2=bar
> > > > > >
> > > > > >
> > > > > > if ‘ignore’ and ‘ignore2’ are not present on an MDB’s activation
> > spec
> > > > > > class, the following exception will be thrown.
> > > > > >
> > > > > > Caused by: org.apache.openejb.OpenEJBException: Error deploying
> > > > > > 'Listener'.  Exception: class org.apache.openejb.
> OpenEJBException:
> > > > > Unable
> > > > > > to create activation spec: No setter found for the activation
> spec
> > > > > > properties: [ignore, ignore2]: Unable to create activation spec:
> No
> > > > > setter
> > > > > > found for the activation spec properties: [ignore, ignore2]
> > > > > >
> > > > > >    at
> > > > > > org.apache.openejb.assembler.classic.Assembler.startEjbs(
> > > > > > Assembler.java:1430)
> > > > > >
> > > > > >    at
> > > > > > org.apache.openejb.assembler.classic.Assembler.
> > > > > > createApplication(Assembler.java:796)
> > > > > >
> > > > > >    ... 19 more
> > > > > >
> > > > > > Caused by: org.apache.openejb.OpenEJBException: Unable to create
> > > > > > activation
> > > > > > spec: No setter found for the activation spec properties:
> [ignore,
> > > > > ignore2]
> > > > > >
> > > > > >    at
> > > > > > org.apache.openejb.core.mdb.MdbContainer.createActivationSpec(
> > > > > > MdbContainer.java:292)
> > > > > >
> > > > > >    at org.apache.openejb.core.mdb.MdbContainer.deploy(
> > > > > > MdbContainer.java:159)
> > > > > >
> > > > > >    at
> > > > > > org.apache.openejb.assembler.classic.Assembler.startEjbs(
> > > > > > Assembler.java:1417)
> > > > > >
> > > > > >    ... 20 more
> > > > > >
> > > > > > Caused by: java.lang.IllegalArgumentException: No setter found
> for
> > > the
> > > > > > activation spec properties: [ignore, ignore2]
> > > > > >
> > > > > >    at
> > > > > > org.apache.openejb.core.mdb.MdbContainer.createActivationSpec(
> > > > > > MdbContainer.java:262)
> > > > > >
> > > > > >    ... 22 more
> > > > > >
> > > > > >
> > > > > > The solution
> > > > > >
> > > > > > The best solution to solve the communication among server is to
> > put a
> > > > new
> > > > > > configuration property in TomEE. When this setting is enabled,
> > > > overriding
> > > > > > the FailOnUnknownActivationSpec attribute at
> > > > > > org.apache.openejb.core.mdb.MdbContainer class., that will be
> > > disabled
> > > > > by
> > > > > > default to don't break the compatibility, when the setter does
> not
> > > > exist
> > > > > it
> > > > > > put a log and then keep working.
> > > > > >
> > > > > > Basically, my proposal does a backport to 1.7 branch:
> > > > > > https://github.com/apache/tomee/commit/
> > > 6522f349d0c31d6ec82e66378e0e55
> > > > > > eded08aec0
> > > > > >
> > > > > > Path:
> > > > > >
> > > > > > https://patch-diff.githubusercontent.com/raw/
> > > apache/tomee/pull/86.diff
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Jonathan Gallimore
> > > > > http://twitter.com/jongallimore
> > > > > http://www.tomitribe.com
> > > > >
> > > >
> > >
> >
>

Reply via email to