This is an automated email from the ASF dual-hosted git repository. mibo pushed a commit to branch pr-33-fix in repository https://gitbox.apache.org/repos/asf/olingo-odata2.git
commit d1fb871e7e4f176cd8f43a1df1b879e99b1faed2 Author: Michael Bolz <[email protected]> AuthorDate: Wed Nov 17 07:02:40 2021 +0100 Fixing incompatibilities --- .../jpa/processor/core/ODataJPAContextImpl.java | 13 +++++------ .../core/jpql/JPQLBuilderFactoryTest.java | 27 ++++++++++++---------- pom.xml | 1 + 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAContextImpl.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAContextImpl.java index b327ad7..075d0a1 100644 --- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAContextImpl.java +++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAContextImpl.java @@ -33,7 +33,7 @@ public class ODataJPAContextImpl implements ODataJPAContext { private String pUnitName; private EntityManagerFactory emf; - private static final ThreadLocal<EntityManager> emThreadLocal = new ThreadLocal<>(); + private static final ThreadLocal<EntityManager> emThreadLocal = new ThreadLocal<EntityManager>(); private ODataContext odataContext; private ODataProcessor processor; private EdmProvider edmProvider; @@ -123,17 +123,16 @@ public class ODataJPAContextImpl implements ODataJPAContext { @Override public EntityManager getEntityManager() { EntityManager em = emThreadLocal.get(); - if (em == null || !em.isOpen()) { - em = emf.createEntityManager(); - setEntityManager(em); - } - return em; + if (em == null || !em.isOpen()) { + em = emf.createEntityManager(); + setEntityManager(em); + } + return em; } @Override public void setJPAEdmExtension(final JPAEdmExtension jpaEdmExtension) { this.jpaEdmExtension = jpaEdmExtension; - } @Override diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/jpql/JPQLBuilderFactoryTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/jpql/JPQLBuilderFactoryTest.java index 5aef018..8dd062c 100644 --- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/jpql/JPQLBuilderFactoryTest.java +++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/jpql/JPQLBuilderFactoryTest.java @@ -238,20 +238,20 @@ public class JPQLBuilderFactoryTest { ODataJPAContextImpl oDataJPAContextImpl = new ODataJPAContextImpl(); Class<?> clazz = oDataJPAContextImpl.getClass(); try { - Field field = clazz.getDeclaredField("em"); - field.setAccessible(true); - field.set(oDataJPAContextImpl, new JPAProcessorImplTest().getLocalEntityManager()); +// Field field = clazz.getDeclaredField("emThreadLocal"); +// field.setAccessible(true); +// ThreadLocal<EntityManager> emThreadLocal = new ThreadLocal<EntityManager>(); +// emThreadLocal.set(new JPAProcessorImplTest().getLocalEntityManager()); +// field.set(oDataJPAContextImpl, emThreadLocal); + oDataJPAContextImpl.setEntityManager(new JPAProcessorImplTest().getLocalEntityManager()); } catch (SecurityException e) { fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); - } catch (NoSuchFieldException e) { - fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); } catch (IllegalArgumentException e) { fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); - } catch (IllegalAccessException e) { - fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); } final EntityManager em = EasyMock.createMock(EntityManager.class); - EasyMock.expect(em.getMetamodel()).andReturn(null); + Metamodel metamodel = EasyMock.createMock(Metamodel.class); + EasyMock.expect(em.getMetamodel()).andReturn(metamodel).anyTimes(); EasyMock.expect(em.isOpen()).andReturn(true).anyTimes(); EasyMock.replay(em); @@ -270,7 +270,8 @@ public class JPQLBuilderFactoryTest { ODataJPAContextImpl oDataJPAContextImpl = new ODataJPAContextImpl(); final EntityManager em = EasyMock.createMock(EntityManager.class); - EasyMock.expect(em.getMetamodel()).andReturn(null); + Metamodel metamodel = EasyMock.createMock(Metamodel.class); + EasyMock.expect(em.getMetamodel()).andReturn(metamodel).anyTimes(); EasyMock.expect(em.isOpen()).andReturn(true).anyTimes(); EasyMock.replay(em); @@ -288,8 +289,9 @@ public class JPQLBuilderFactoryTest { ODataJPAContextImpl oDataJPAContextImpl = new ODataJPAContextImpl(); final EntityManager em = EasyMock.createMock(EntityManager.class); - EasyMock.expect(em.getMetamodel()).andReturn(null); - EasyMock.expect(em.isOpen()).andReturn(true).anyTimes(); + Metamodel metamodel = EasyMock.createMock(Metamodel.class); + EasyMock.expect(em.getMetamodel()).andReturn(metamodel).anyTimes(); + EasyMock.expect(em.isOpen()).andReturn(true); EasyMock.replay(em); oDataJPAContextImpl.setEntityManagerFactory(new TestEntityManagerFactory(em)); @@ -308,7 +310,8 @@ public class JPQLBuilderFactoryTest { ODataJPAContextImpl oDataJPAContextImpl = new ODataJPAContextImpl(); EntityManager em = EasyMock.createMock(EntityManager.class); - EasyMock.expect(em.getMetamodel()).andReturn(null); + Metamodel metamodel = EasyMock.createMock(Metamodel.class); + EasyMock.expect(em.getMetamodel()).andReturn(metamodel).anyTimes(); EasyMock.expect(em.isOpen()).andReturn(true).anyTimes(); EasyMock.replay(em); diff --git a/pom.xml b/pom.xml index d786a88..9e5b8ad 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.release>8</maven.compiler.release> <javadoc.phase>package</javadoc.phase> <!-- required for correct Sonar coverage data reporting (list of artifactIds) -->
