I have created this resource to both master and backported.

   - https://github.com/apache/tomee/pull/90
   - https://github.com/apache/tomee/pull/89


On Mon, Jul 10, 2017 at 7:33 AM, Jonathan Gallimore <
jonathan.gallim...@gmail.com> wrote:

> We have a +1 and a +0 for the backport. I'm pulling the latest code and
> running the tests. If it looks ok, I'll merge it, while Otavio works on the
> container-based config in another patch. Please shout if you have any
> objections.
>
> Otavio, let us know if you need any help or guidance on the container based
> settings!
>
> 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
> >
>

Reply via email to