camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brett E. Meyer (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CAMEL-5932) Update camel-jpa for Spring 3.1
Date Thu, 08 Aug 2013 19:47:47 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-5932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13733896#comment-13733896
] 

Brett E. Meyer edited comment on CAMEL-5932 at 8/8/13 7:47 PM:
---------------------------------------------------------------

Hey [~davsclaus], apologies again.  Life has gotten away from us lately...

I pushed the current state to https://github.com/brmeyer/camel/tree/CAMEL-5932.  There are
a couple of test failures that I still need to work through.  If someone else has time to
take a look, great.  Otherwise, I'll see what I can do (although freetime has been diminishing).

It replaces the use of Spring's JpaTemplate with direct usage of EntityManager within a TransactionTemplate.

Admittedly, I'm not 100% on how Spring's JpaTemplate worked.  However, based off of some of
the unit tests and the original architecture of the consumer/producer, it appears that one
EntityManager was opened and shared.  Typically, it's best to use one EM per unit of work,
rather than per request or global.  However, in this context, the global context makes a bit
of sense.  It's left open and closed only on the endpoint's #doStop.  Anyone disagree with
that?

One failure is JpaUsePersistTest#produceExistingEntityShouldThowAnException().  Even though
debugging showed that JpaUsePersistTest#entityManager and JpaProducer#entityManager were the
same instance (Spring's LocalEntityManagerFactoryBean returns the same EM instance for #createEntityManager()
until the EM is explicitly closed, I believe), it's not throwing an exception anymore if the
same entity is persisted twice.  I'm not sure if that was something specific that the JpaTemplate
was providing (and OpenJPA doesn't natively do what we expect) or if there's something else
stupid that I'm missing.

JpaProducerConcurrentTest is failing also, but I haven't had a chance to really dig into it.
                
      was (Author: 3riverdev):
    Hey [~davsclaus], apologies again.  Life has gotten away from us lately...

I pushed the current state to https://github.com/brmeyer/camel/tree/CAMEL-5932.  There are
a couple of test failures that I still need to work through.  If someone else has time to
take a look, great.  Otherwise, I'll see what I can do (although freetime has been diminishing).

It replaces the use of Spring's JpaTemplate with direct usage of EntityManager within a TransactionTemplate.
 My best guess about the test failures brings up a discussion point:

Admittedly, I'm not 100% on how Spring's JpaTemplate worked.  However, based off of some of
the unit tests and the original architecture of the consumer/producer, it appears that one
EntityManager was opened and shared.  Typically, it's best to use one EM per unit of work,
rather than per request or global.  However, in this context, the global context makes a bit
of sense.  It's left open and closed only on the endpoint's #doStop.  Anyone disagree with
that?

One failure is JpaUsePersistTest#produceExistingEntityShouldThowAnException().  Even though
debugging showed that JpaUsePersistTest#entityManager and JpaProducer#entityManager were the
same instance (Spring's LocalEntityManagerFactoryBean returns the same EM instance for #createEntityManager()
until the EM is explicitly closed, I believe), it's not throwing an exception anymore if the
same entity is persisted twice.  I'm not sure if that was something specific that the JpaTemplate
was providing (and OpenJPA doesn't natively do what we expect) or if there's something else
stupid that I'm missing.

JpaProducerConcurrentTest is failing also, but I haven't had a chance to really dig into it.
                  
> Update camel-jpa for Spring 3.1
> -------------------------------
>
>                 Key: CAMEL-5932
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5932
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jpa
>            Reporter: Brett E. Meyer
>             Fix For: 2.12.0
>
>
> Spring 3.1 deprecated JpaTemplate and JpaCallback in favor of directly acting upon JPA's
EntityManager.  Replace JpaTemplateTransactionStrategy and make other improvements.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message