[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;

Reply via email to