Repository: olingo-odata2 Updated Branches: refs/heads/master c6e0a1a7e -> 7013e7e30
Revert "[OLINGO-580] Support JTA based transactions in JPA processor" This reverts commit dee84cf65981671ebdd09b2f6d932edbc463d772. Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/1c1f6d77 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/1c1f6d77 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/1c1f6d77 Branch: refs/heads/master Commit: 1c1f6d773addebd7b1383974d4bf429102f38e72 Parents: c6e0a1a Author: Michael Bolz <[email protected]> Authored: Mon Mar 2 09:44:53 2015 +0100 Committer: Michael Bolz <[email protected]> Committed: Mon Mar 2 09:44:53 2015 +0100 ---------------------------------------------------------------------- .../jpa/processor/api/ODataJPAContext.java | 8 +-- .../processor/api/ODataJPAServiceFactory.java | 29 +---------- .../jpa/processor/api/ODataJPATransaction.java | 48 ----------------- .../jpa/processor/core/ODataJPAContextImpl.java | 6 --- .../core/ODataJPAProcessorDefault.java | 7 ++- .../jpa/processor/core/access/data/JPALink.java | 9 ++-- .../core/access/data/JPAProcessorImpl.java | 14 ++--- .../core/ODataJPAProcessorDefaultTest.java | 12 ----- .../core/access/data/JPAProcessorImplTest.java | 15 ------ .../ODataJPATransactionLocalDefault.java | 54 -------------------- .../ref/web/JPAReferenceServiceFactory.java | 9 ++-- 11 files changed, 20 insertions(+), 191 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAContext.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAContext.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAContext.java index 0ec7ca7..9a57bf3 100644 --- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAContext.java +++ b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAContext.java @@ -218,7 +218,7 @@ public interface ODataJPAContext { /** * The method sets the server side paging object - * @param paging an instance of type {@link org.apache.olingo.odata2.jpa.processor.api.access.JPAPaging} + * @param an instance of type {@link org.apache.olingo.odata2.jpa.processor.api.access.JPAPaging} */ public void setPaging(JPAPaging paging); @@ -227,10 +227,4 @@ public interface ODataJPAContext { * @return an instance of type {@link org.apache.olingo.odata2.jpa.processor.api.access.JPAPaging} */ public JPAPaging getPaging(); - - /** - * The transaction context - * @return transaction context - */ - public ODataJPATransaction getODataJpaTransaction(); } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java index ba1248e..709a048 100644 --- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java +++ b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPAServiceFactory.java @@ -81,7 +81,6 @@ public abstract class ODataJPAServiceFactory extends ODataServiceFactory { private ODataContext oDataContext; private boolean setDetailErrors = false; private OnJPAWriteContent onJPAWriteContent = null; - private ODataJPATransaction oDataJPATransaction = null; /** * Creates an OData Service based on the values set in @@ -202,33 +201,7 @@ public abstract class ODataJPAServiceFactory extends ODataServiceFactory { return (T) onJPAWriteContent; } } - - if (oDataJPATransaction != null) { - if (callbackInterface.isAssignableFrom(ODataJPATransaction.class)) { - return (T) oDataJPATransaction; - } - } - - - return null; + return null; } - /** - * The methods sets the context with a callback implementation for JPA transaction specific content. - * For details refer to {@link ODataJPATransaction} - * @param oDataJPATransaction is an instance of type - * {@link org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction} - */ - protected void setODataJPATransaction(final ODataJPATransaction oDataJPATransaction) { - this.oDataJPATransaction = oDataJPATransaction; - } - - /** - * Simple method to retrieve the current ODataJPATransactionContext optimized for fast access - * - * @return the current ODataJPATransaction - */ - public ODataJPATransaction getDataJPATransaction() { - return oDataJPATransaction; - } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPATransaction.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPATransaction.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPATransaction.java deleted file mode 100644 index 605e5d7..0000000 --- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/ODataJPATransaction.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ******************************************************************************/ -package org.apache.olingo.odata2.jpa.processor.api; - -import org.apache.olingo.odata2.api.ODataCallback; - -/** - * Interface for JPA-Transaction abstraction. Default implementation is Resource local, while additional - * an override may used to insert JTA compatible transactions as well. - * - */ -public interface ODataJPATransaction extends ODataCallback { - /** - * implement the start of the transaction - */ - public void begin(); - - /** - * implement the commit of the transaction - */ - public void commit(); - - /** - * implement the rollback of the transaction - */ - public void rollback(); - - /** - * implement status of the transaction context - */ - public boolean isActive(); -} http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAContextImpl.java ---------------------------------------------------------------------- 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 66d0ff0..43f1850 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 @@ -25,7 +25,6 @@ import org.apache.olingo.odata2.api.edm.provider.EdmProvider; import org.apache.olingo.odata2.api.processor.ODataContext; import org.apache.olingo.odata2.api.processor.ODataProcessor; import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext; -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; import org.apache.olingo.odata2.jpa.processor.api.access.JPAPaging; import org.apache.olingo.odata2.jpa.processor.api.model.JPAEdmExtension; @@ -167,9 +166,4 @@ public class ODataJPAContextImpl implements ODataJPAContext { public JPAPaging getPaging() { return jpaPaging; } - - @Override - public ODataJPATransaction getODataJpaTransaction() { - return odataContext.getServiceFactory().getCallback(ODataJPATransaction.class); - } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefault.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefault.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefault.java index 2d4e37e..6b1f40b 100644 --- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefault.java +++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefault.java @@ -264,22 +264,21 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { throws ODataException { List<ODataResponse> responses = new ArrayList<ODataResponse>(); try { - oDataJPAContext.getODataJpaTransaction().begin(); + oDataJPAContext.getEntityManager().getTransaction().begin(); for (ODataRequest request : requests) { oDataJPAContext.setODataContext(getContext()); ODataResponse response = handler.handleRequest(request); if (response.getStatus().getStatusCode() >= HttpStatusCodes.BAD_REQUEST.getStatusCode()) { // Rollback - oDataJPAContext.getODataJpaTransaction().rollback(); + oDataJPAContext.getEntityManager().getTransaction().rollback(); List<ODataResponse> errorResponses = new ArrayList<ODataResponse>(1); errorResponses.add(response); return BatchResponsePart.responses(errorResponses).changeSet(false).build(); } responses.add(response); } - oDataJPAContext.getODataJpaTransaction().commit(); - + oDataJPAContext.getEntityManager().getTransaction().commit(); return BatchResponsePart.responses(responses).changeSet(true).build(); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPALink.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPALink.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPALink.java index 7e3ae73..64bf56c 100644 --- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPALink.java +++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPALink.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; import org.apache.olingo.odata2.api.edm.EdmEntitySet; import org.apache.olingo.odata2.api.edm.EdmException; @@ -43,7 +44,6 @@ import org.apache.olingo.odata2.api.uri.info.GetEntityUriInfo; import org.apache.olingo.odata2.api.uri.info.PostUriInfo; import org.apache.olingo.odata2.api.uri.info.PutMergePatchUriInfo; import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext; -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; import org.apache.olingo.odata2.jpa.processor.api.access.JPAProcessor; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPAModelException; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException; @@ -149,9 +149,10 @@ public class JPALink { public void save() { EntityManager em = context.getEntityManager(); - ODataJPATransaction tx = context.getODataJpaTransaction(); + EntityTransaction tx = em.getTransaction(); + if (!tx.isActive()) { - tx.begin(); + em.getTransaction().begin(); if (sourceJPAEntity != null) { em.persist(sourceJPAEntity); } @@ -159,7 +160,7 @@ public class JPALink { em.persist(targetJPAEntity); em.flush(); } - tx.commit(); + em.getTransaction().commit(); } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java index ef4d9dc..d926daf 100644 --- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java +++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; import javax.persistence.Query; import org.apache.olingo.odata2.api.commons.InlineCount; @@ -49,7 +50,6 @@ import org.apache.olingo.odata2.api.uri.info.PutMergePatchUriInfo; import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext; import org.apache.olingo.odata2.jpa.processor.api.ODataJPATombstoneContext; import org.apache.olingo.odata2.jpa.processor.api.ODataJPATombstoneEntityListener; -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; import org.apache.olingo.odata2.jpa.processor.api.access.JPAFunction; import org.apache.olingo.odata2.jpa.processor.api.access.JPAMethodContext; import org.apache.olingo.odata2.jpa.processor.api.access.JPAProcessor; @@ -355,7 +355,7 @@ public class JPAProcessorImpl implements JPAProcessor { em.remove(selectedObject); em.flush(); if (isLocalTransaction) { - oDataJPAContext.getODataJpaTransaction().commit(); + em.getTransaction().commit(); } } catch (Exception e) { @@ -456,7 +456,7 @@ public class JPAProcessorImpl implements JPAProcessor { em.persist(jpaEntity); if (em.contains(jpaEntity)) { if (isLocalTransaction) { - oDataJPAContext.getODataJpaTransaction().commit(); + em.getTransaction().commit(); } return jpaEntity; } @@ -507,7 +507,7 @@ public class JPAProcessorImpl implements JPAProcessor { } em.flush(); if (isLocalTransaction) { - oDataJPAContext.getODataJpaTransaction().commit(); + em.getTransaction().commit(); } } catch (Exception e) { throw ODataJPARuntimeException.throwException( @@ -572,9 +572,9 @@ public class JPAProcessorImpl implements JPAProcessor { } private boolean setTransaction() { - ODataJPATransaction transactionContext = oDataJPAContext.getODataJpaTransaction(); - if (!transactionContext.isActive()) { - transactionContext.begin(); + final EntityTransaction transaction = em.getTransaction(); + if (!transaction.isActive()) { + em.getTransaction().begin(); return true; } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefaultTest.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefaultTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefaultTest.java index 195559e..8733181 100644 --- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefaultTest.java +++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAProcessorDefaultTest.java @@ -67,7 +67,6 @@ import org.apache.olingo.odata2.api.uri.info.GetEntityUriInfo; import org.apache.olingo.odata2.api.uri.info.PostUriInfo; import org.apache.olingo.odata2.api.uri.info.PutMergePatchUriInfo; import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext; -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPAModelException; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException; import org.apache.olingo.odata2.jpa.processor.core.common.ODataJPATestConstants; @@ -321,7 +320,6 @@ public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { ODataJPAContext odataJPAContext = EasyMock.createMock(ODataJPAContext.class); EasyMock.expect(odataJPAContext.getPersistenceUnitName()).andStubReturn("salesorderprocessing"); EasyMock.expect(odataJPAContext.getEntityManagerFactory()).andStubReturn(mockEntityManagerFactory()); - EasyMock.expect(odataJPAContext.getODataJpaTransaction()).andStubReturn(getLocalJpaTransaction()); EasyMock.expect(odataJPAContext.getODataContext()).andStubReturn(getLocalODataContext()); odataJPAContext.setODataContext((ODataContext) EasyMock.anyObject()); EasyMock.expectLastCall().anyTimes(); @@ -330,16 +328,6 @@ public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { return odataJPAContext; } - private ODataJPATransaction getLocalJpaTransaction() { - ODataJPATransaction tx = EasyMock.createMock(ODataJPATransaction.class); - tx.begin(); // testing void method - tx.commit();// testing void method - tx.rollback();// testing void method - EasyMock.expect(tx.isActive()).andReturn(false); - EasyMock.replay(tx); - return tx; - } - private EntityManagerFactory mockEntityManagerFactory() { EntityManagerFactory emf = EasyMock.createMock(EntityManagerFactory.class); EasyMock.expect(emf.getMetamodel()).andStubReturn(mockMetaModel()); http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImplTest.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImplTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImplTest.java index 05afa5f..f370c26 100644 --- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImplTest.java +++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImplTest.java @@ -67,7 +67,6 @@ import org.apache.olingo.odata2.api.uri.info.GetEntityCountUriInfo; import org.apache.olingo.odata2.api.uri.info.GetEntitySetCountUriInfo; import org.apache.olingo.odata2.api.uri.info.GetEntitySetUriInfo; import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext; -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; import org.apache.olingo.odata2.jpa.processor.api.access.JPAPaging; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPAModelException; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException; @@ -286,7 +285,6 @@ public class JPAProcessorImplTest { ODataJPAContext odataJPAContext = EasyMock.createMock(ODataJPAContext.class); EasyMock.expect(odataJPAContext.getPersistenceUnitName()).andStubReturn("salesorderprocessing"); EasyMock.expect(odataJPAContext.getEntityManagerFactory()).andStubReturn(mockEntityManagerFactory()); - EasyMock.expect(odataJPAContext.getODataJpaTransaction()).andStubReturn(getLocalJpaTransaction()); EasyMock.expect(odataJPAContext.getODataContext()).andStubReturn(getLocalODataContext()); EasyMock.expect(odataJPAContext.getEntityManager()).andStubReturn(getLocalEntityManager()); EasyMock.expect(odataJPAContext.getPageSize()).andReturn(10).anyTimes(); @@ -296,19 +294,6 @@ public class JPAProcessorImplTest { return odataJPAContext; } - private ODataJPATransaction getLocalJpaTransaction() { - ODataJPATransaction tx = EasyMock.createMock(ODataJPATransaction.class); - EasyMock.expect(tx.isActive()).andReturn(false); - tx.begin(); // testing void method - tx.commit();// testing void method - EasyMock.expect(tx.isActive()).andReturn(false); - tx.begin(); // testing void method - tx.commit();// testing void method - EasyMock.replay(tx); - return tx; - } - - private EntityManagerFactory mockEntityManagerFactory() { EntityManagerFactory emf = EasyMock.createMock(EntityManagerFactory.class); EasyMock.expect(emf.getMetamodel()).andStubReturn(mockMetaModel()); http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/extension/ODataJPATransactionLocalDefault.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/extension/ODataJPATransactionLocalDefault.java b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/extension/ODataJPATransactionLocalDefault.java deleted file mode 100644 index 9291962..0000000 --- a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/extension/ODataJPATransactionLocalDefault.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ******************************************************************************/ -package org.apache.olingo.odata2.jpa.processor.ref.extension; - - -import org.apache.olingo.odata2.jpa.processor.api.ODataJPATransaction; - -import javax.persistence.EntityManager; -import javax.persistence.EntityTransaction; - -public class ODataJPATransactionLocalDefault implements ODataJPATransaction { - - private EntityTransaction tx = null; - - public ODataJPATransactionLocalDefault(EntityManager em) { - this.tx = em.getTransaction(); - } - - @Override - public void begin() { - tx.begin(); - } - - @Override - public void commit() { - tx.commit(); - } - - @Override - public void rollback() { - tx.rollback(); - } - - @Override - public boolean isActive() { - return tx.isActive(); - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c1f6d77/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java ---------------------------------------------------------------------- diff --git a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java index 9452535..256ffdd 100644 --- a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java +++ b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java @@ -25,7 +25,6 @@ import org.apache.olingo.odata2.jpa.processor.api.ODataJPAServiceFactory; import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent; import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException; import org.apache.olingo.odata2.jpa.processor.api.model.JPAEdmExtension; -import org.apache.olingo.odata2.jpa.processor.ref.extension.ODataJPATransactionLocalDefault; import org.apache.olingo.odata2.jpa.processor.ref.extension.OnDBWriteContent; import org.apache.olingo.odata2.jpa.processor.ref.extension.SalesOrderProcessingExtension; import org.apache.olingo.odata2.jpa.processor.ref.factory.JPAEntityManagerFactory; @@ -45,21 +44,19 @@ public class JPAReferenceServiceFactory extends ODataJPAServiceFactory { oDataJPAContext.setEntityManagerFactory(JPAEntityManagerFactory.getEntityManagerFactory(PUNIT_NAME)); oDataJPAContext.setPersistenceUnitName(PUNIT_NAME); oDataJPAContext.setJPAEdmMappingModel(MAPPING_MODEL); - oDataJPAContext.setJPAEdmExtension(new SalesOrderProcessingExtension()); + oDataJPAContext + .setJPAEdmExtension((JPAEdmExtension) new SalesOrderProcessingExtension()); oDataJPAContext.setPageSize(PAGE_SIZE); oDataJPAContext.setDefaultNaming(false); setErrorLevel(); setOnWriteJPAContent(onDBWriteContent); - if(getDataJPATransaction() == null) { - setODataJPATransaction(new ODataJPATransactionLocalDefault(getODataJPAContext().getEntityManager())); - } return oDataJPAContext; } private void setErrorLevel() { ResourceBundle config = ResourceBundle.getBundle(CONFIG); - boolean error = Boolean.parseBoolean(config.getString(SHOW_DETAIL_ERROR)); + boolean error = Boolean.parseBoolean((String) config.getObject(SHOW_DETAIL_ERROR)); setDetailErrors(error); } }
