Konrad,

By using a global alternative, you're effectively making what is in
beans.xml ignored.

John

On Wed, May 10, 2017 at 1:32 PM Instantiation Exception <
[email protected]> wrote:

> John,
>
> There is one think which I don't understand:
> apache-deltaspike.properties contains different TransactionStrategy
> than beans.xml
>
> * apache-deltaspike.properties contains
>
> org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStrategy
> * beans.xml contains
>
> org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy
>
> Isn't it a conflict?
>
> Best regards,
> Konrad
>
> On Wed, May 10, 2017 at 7:22 PM, John D. Ament <[email protected]>
> wrote:
>
> > Konrad,
> >
> > Yes, what you're doing should work and actually matches what I do
> presently
> > in a production environment.  If you're using the JTA @Transactional what
> > you're doing is what will work for you.
> >
> > John
> >
> > On Wed, May 10, 2017 at 1:20 PM Instantiation Exception <
> > [email protected]> wrote:
> >
> > > Mark, John
> > >
> > > I am not sure if I properly understand so I created demo app with my
> > > current configuration:
> > > https://github.com/instantiationexception/wildfly-deltaspike-data
> > >
> > > Generally there are 4 files specific to DeltaSpike Data:
> > >
> > > * EntityManagerProducer.java
> > > * apache-deltaspike.properties
> > > * beans.xml
> > >
> > > My goals are:
> > >
> > > * Use JTA EntityManager provided by WildFly
> > > * Use @Transactional from javax.transaction
> > > * Mix CDI and EJB
> > >
> > > Generally this demo app works. But I am not sure if more complicated
> app
> > > will work.
> > > Is this configuration correct? Are there any unneeded/invalid elements?
> > >
> > > Best regards,
> > > Konrad
> > >
> > > On Wed, May 10, 2017 at 11:22 AM, Mark Struberg
> > <[email protected]
> > > >
> > > wrote:
> > >
> > > > Hi Konrad, John!
> > > >
> > > > Hmm not sure about ContainerManagedTransactionStrategy.
> > > >
> > > > Look at the code, this is probably not named properly. It is
> > essentially
> > > a
> > > > no-op TransactionStrategy. It delegates through without doing
> > something.
> > > >
> > > > This is useful if you GUARANTEED have a ContainerManagedTransation in
> > an
> > > > outer level.
> > > > E.g. if you have some existing code using DeltaSpike @Transactional,
> > and
> > > > you know that you ALWAYS have e.g. a @Stateless @WebService calling
> > your
> > > > code.
> > > > We cannot rename this now because otherwise the Alternatives enabled
> in
> > > > various beans.xml files would go bonkers...
> > > >
> > > > So if you are about to use e.g. an @ApplicationScoped @Transactional
> > bean
> > > > without any EJBs involved at all, then you should rather use the
> > > > BeanManagedUserTransactionStrategy.
> > > > This one leverages the UserTransaction functionality provided by the
> > > > server. If a JTA Transaction is already active then it would simply
> do
> > > > nothing. So in this case it really behaves the same like
> > > > ContainerManagedTransactionStrategy.
> > > >
> > > > But if there is NO active Transaction, then it will use the
> > > > UserTransaction API to open a transaction and to commit/rollback on
> > this
> > > > very layer when leaving the intercepted method. Subsequently invoked
> > > > @Transactional CDI beans - and even EJBs! - will just take this open
> > > > transaction and work with it.
> > > > So this works perfectly fine in cases where you only use CDI but also
> > > when
> > > > you wildly mix EJBs and CDI beans.
> > > > I use this in production for quite a few projects.
> > > >
> > > > Note that the EntityManagerProducer you need to provide must use a
> > > > container provided EntityManagerFactory, otherwise your EntityManager
> > > won't
> > > > integrate with JTA.
> > > > A sample can be found here:
> > > > https://github.com/struberg/lightweightEE/blob/jtacdi11/
> > > > backend/src/main/java/de/jaxenter/eesummit/caroline/backend/tools/
> > > > EntityManagerProducer.java#L40
> > > >
> > > >
> > > > hth.
> > > >
> > > > LieGrue,
> > > > strub
> > > >
> > > > > Am 09.05.2017 um 01:50 schrieb John D. Ament <
> [email protected]
> > >:
> > > > >
> > > > > Konrad,
> > > > >
> > > > > When you specify globalAlternatives, you don't need to specify
> > anything
> > > > in
> > > > > beans.xml
> > > > >
> > > > > RE which strategy to use, it'll be the one that matches your
> > > transaction
> > > > > mode.  If you're using plain JTA just use
> > > > > ContainerManagedTransactionStrategy.
> > > > >
> > > > > John
> > > > >
> > > > > On Mon, May 8, 2017 at 3:56 PM Instantiation Exception <
> > > > > [email protected]> wrote:
> > > > >
> > > > >> John,
> > > > >>
> > > > >> I want to clarify one thing. When I use
> > > > >> META-INF/apache-deltaspike.properties with
> > > > >> globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.
> > > > >> TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.
> > > > >> ContainerManagedTransactionStrategy
> > > > >>
> > > > >> should I use alternative in beans.xml? And which one?
> > > > >> org.apache.deltaspike.jpa.impl.transaction.
> > > > ContainerManagedTransactionStr
> > > > >> ategy
> > > > >> or
> > > > >> org.apache.deltaspike.jpa.impl.transaction.
> > > > BeanManagedUserTransactionStrategy
> > > > >>
> > > > >> Best regards,
> > > > >> Konrad
> > > > >>
> > > > >> On Fri, Mar 3, 2017 at 2:57 PM, John D. Ament <
> > [email protected]>
> > > > >> wrote:
> > > > >>
> > > > >>> Ondrej,
> > > > >>>
> > > > >>> I agree as well.  It definitely should be more turn key in this
> > > > respect.
> > > > >>>
> > > > >>> John
> > > > >>>
> > > > >>> On Fri, Mar 3, 2017 at 8:53 AM Ondrej Mihályi <
> > > > [email protected]>
> > > > >>> wrote:
> > > > >>>
> > > > >>>> Hi John,
> > > > >>>>
> > > > >>>> It sounds to me that DeltaSpike could be improved to make a
> > > > >> sophisticated
> > > > >>>> guess to infer the default value of this configuration from the
> > > > >> container
> > > > >>>> it is running in. At least for WildFly and maybe some other
> > > containers
> > > > >>>> where people report problems.
> > > > >>>>
> > > > >>>> Just an idea :)
> > > > >>>>
> > > > >>>> Ondrej
> > > > >>>>
> > > > >>>> 2017-03-03 12:05 GMT+01:00 John D. Ament <[email protected]
> >:
> > > > >>>>
> > > > >>>>> Hi Konrad,
> > > > >>>>>
> > > > >>>>> What that's referring to is that you need to create a
> > > > >>>>> META-INF/apache-deltaspike.properties and add the following
> > line:
> > > > >>>>>
> > > > >>>>> globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.
> > > > >>>>> TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.
> > > > >>>>> ContainerManagedTransactionStrategy
> > > > >>>>>
> > > > >>>>> I do something similar to  you, and it works perfect.  I'm
> using
> > > > >> maven
> > > > >>> to
> > > > >>>>> build a WAR file, so it just goes in
> > > > >>>>> src/main/resources/META-INF/apache-deltaspike.properties
> > > > >>>>>
> > > > >>>>> John
> > > > >>>>>
> > > > >>>>> On Fri, Mar 3, 2017 at 3:38 AM Instantiation Exception <
> > > > >>>>> [email protected]> wrote:
> > > > >>>>>
> > > > >>>>>> Hi,
> > > > >>>>>>
> > > > >>>>>> In my company projects we use WildFly. In the past I tried few
> > > > >> times
> > > > >>> to
> > > > >>>>> use
> > > > >>>>>> DeltaSpike Data, but it didn't work. I configured everything
> > > > >>> according
> > > > >>>> to
> > > > >>>>>> documentation. In pure CDI scenario it worked. But when I
> > created
> > > > >>>>>> @Dependent @Repository and injected it to @Stateless EJB I got
> > > some
> > > > >>>>>> transaction errors when tried to call EJB methods. In
> > > > >> documentation I
> > > > >>>> see
> > > > >>>>>> warning:
> > > > >>>>>>
> > > > >>>>>> Some containers do not support BeanManagedUserTransactionStra
> > tegy!
> > > > >>> As
> > > > >>>>> JTA
> > > > >>>>>>> has still some portability issues even in Java EE 7, it might
> > be
> > > > >>>>> required
> > > > >>>>>>> that you implement your own TransactionStrategy. We will
> think
> > > > >>> about
> > > > >>>>>>> providing an acceptable solution for this.
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> Is it about WildFly? Is WildFly supported?
> > > > >>>>>>
> > > > >>>>>> Best regards,
> > > > >>>>>> Konrad
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>
> > > > >>
> > > >
> > > >
> > >
> >
>

Reply via email to