[OLINGO-459] Fix for supporting $links in a batch call
Signed-off-by: Chandan V A <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/b69b9000 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/b69b9000 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/b69b9000 Branch: refs/heads/Olingo-129_PocJpaDataStore Commit: b69b9000414eb11be2dd6358330fd2931fee12a4 Parents: 83ff091 Author: Chandan V A <[email protected]> Authored: Tue Oct 28 21:56:17 2014 +0530 Committer: Chandan V A <[email protected]> Committed: Tue Oct 28 21:56:17 2014 +0530 ---------------------------------------------------------------------- .../core/ODataJPAProcessorDefault.java | 54 ++++++++++++++++---- .../core/ODataJPAProcessorDefaultTest.java | 8 +-- 2 files changed, 48 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b69b9000/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 bc820ba..079aecc 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 @@ -58,7 +58,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse readEntitySet(final GetEntitySetUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + List<Object> jpaEntities = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -72,7 +74,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse readEntity(final GetEntityUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + Object jpaEntity = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -84,7 +88,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse countEntitySet(final GetEntitySetCountUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + long jpaEntityCount = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = responseBuilder.build(jpaEntityCount); @@ -95,7 +101,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse existsEntity(final GetEntityCountUriInfo uriInfo, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + long jpaEntityCount = jpaProcessor.process(uriInfo); ODataResponse oDataResponse = responseBuilder.build(jpaEntityCount); @@ -106,7 +114,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse createEntity(final PostUriInfo uriParserResultView, final InputStream content, final String requestContentType, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + Object createdJpaEntity = jpaProcessor.process(uriParserResultView, content, requestContentType); ODataResponse oDataResponse = @@ -118,7 +128,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse updateEntity(final PutMergePatchUriInfo uriParserResultView, final InputStream content, final String requestContentType, final boolean merge, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + Object jpaEntity = jpaProcessor.process(uriParserResultView, content, requestContentType); ODataResponse oDataResponse = responseBuilder.build(uriParserResultView, jpaEntity); @@ -129,7 +141,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse deleteEntity(final DeleteUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + Object deletedObj = jpaProcessor.process(uriParserResultView, contentType); ODataResponse oDataResponse = responseBuilder.build(uriParserResultView, deletedObj); @@ -139,7 +153,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse executeFunctionImport(final GetFunctionImportUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + List<Object> resultEntity = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -151,7 +167,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse executeFunctionImportValue(final GetFunctionImportUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + List<Object> result = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -163,7 +181,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse readEntityLink(final GetEntityLinkUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + Object jpaEntity = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -176,6 +196,8 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { public ODataResponse readEntityLinks(final GetEntitySetLinksUriInfo uriParserResultView, final String contentType) throws ODataException { + oDataJPAContext.setODataContext(getContext()); + List<Object> jpaEntity = jpaProcessor.process(uriParserResultView); ODataResponse oDataResponse = @@ -188,6 +210,8 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { public ODataResponse createEntityLink(final PostUriInfo uriParserResultView, final InputStream content, final String requestContentType, final String contentType) throws ODataException { + oDataJPAContext.setODataContext(getContext()); + jpaProcessor.process(uriParserResultView, content, requestContentType, contentType); return ODataResponse.newBuilder().build(); @@ -197,6 +221,8 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { public ODataResponse updateEntityLink(final PutMergePatchUriInfo uriParserResultView, final InputStream content, final String requestContentType, final String contentType) throws ODataException { + oDataJPAContext.setODataContext(getContext()); + jpaProcessor.process(uriParserResultView, content, requestContentType, contentType); return ODataResponse.newBuilder().build(); @@ -205,7 +231,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse deleteEntityLink(final DeleteUriInfo uriParserResultView, final String contentType) throws ODataException { - + + oDataJPAContext.setODataContext(getContext()); + jpaProcessor.process(uriParserResultView, contentType); return ODataResponse.newBuilder().build(); @@ -214,6 +242,9 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { @Override public ODataResponse executeBatch(final BatchHandler handler, final String contentType, final InputStream content) throws ODataException { + + oDataJPAContext.setODataContext(getContext()); + ODataResponse batchResponse; List<BatchResponsePart> batchResponseParts = new ArrayList<BatchResponsePart>(); PathInfo pathInfo = getContext().getPathInfo(); @@ -236,6 +267,7 @@ public class ODataJPAProcessorDefault extends ODataJPAProcessor { 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 http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b69b9000/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 dc90021..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 @@ -79,7 +79,6 @@ import org.junit.Test; public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { ODataJPAProcessorDefault objODataJPAProcessorDefault; - ODataJPAProcessorDefaultTest objODataJPAProcessorDefaultTest; private static final String STR_LOCAL_URI = "http://localhost:8080/org.apache.olingo.odata2.processor.ref.web/"; private static final String SALESORDERPROCESSING_CONTAINER = "salesorderprocessingContainer"; @@ -87,12 +86,13 @@ public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { private static final String SALES_ORDER = "SalesOrder"; private static final String SALES_ORDER_HEADERS = "SalesOrderHeaders"; private static final String STR_CONTENT_TYPE = "Content-Type"; + @Before public void setUp() { - objODataJPAProcessorDefaultTest = new ODataJPAProcessorDefaultTest(); objODataJPAProcessorDefault = new ODataJPAProcessorDefault(getLocalmockODataJPAContext()); } + @Test public void testReadEntitySetGetEntitySetUriInfoString() { @@ -171,7 +171,7 @@ public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { Assert.assertTrue(true); // Expected TODO - need to revisit } } - + private PutMergePatchUriInfo getPutUriInfo() { return (PutMergePatchUriInfo) getDeletetUriInfo(); } @@ -321,6 +321,8 @@ public class ODataJPAProcessorDefaultTest extends JPAEdmTestModelView { EasyMock.expect(odataJPAContext.getPersistenceUnitName()).andStubReturn("salesorderprocessing"); EasyMock.expect(odataJPAContext.getEntityManagerFactory()).andStubReturn(mockEntityManagerFactory()); EasyMock.expect(odataJPAContext.getODataContext()).andStubReturn(getLocalODataContext()); + odataJPAContext.setODataContext((ODataContext) EasyMock.anyObject()); + EasyMock.expectLastCall().anyTimes(); EasyMock.expect(odataJPAContext.getEntityManager()).andStubReturn(getLocalEntityManager()); EasyMock.replay(odataJPAContext); return odataJPAContext;
