[olingo-odata4] branch master updated: [OLINGO-1390] Service Resolution variable for spring apps

2019-08-28 Thread archanarai
This is an automated email from the ASF dual-hosted git repository.

archanarai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git


The following commit(s) were added to refs/heads/master by this push:
 new 73842ec  [OLINGO-1390] Service Resolution variable for spring apps
73842ec is described below

commit 73842ec07b617f125dd50e84236f2001da375139
Author: Archana Rai 
AuthorDate: Thu Aug 29 11:04:04 2019 +0530

[OLINGO-1390] Service Resolution variable for spring apps
---
 .../java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java | 5 +++--
 .../java/org/apache/olingo/server/core/ODataHttpHandlerImplTest.java | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index bbd94e5..7a632b1 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -267,11 +267,13 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
   static void fillUriInformation(final ODataRequest odRequest, 
  final HttpServletRequest httpRequest, final int split) {
 String rawRequestUri = httpRequest.getRequestURL().toString();
-
+
+String rawServiceResolutionUri = null;
 String rawODataPath;
 //Application need to set the request mapping attribute if the request is 
coming from a spring based application
 if(httpRequest.getAttribute(REQUESTMAPPING)!=null){
   String requestMapping = 
httpRequest.getAttribute(REQUESTMAPPING).toString();
+  rawServiceResolutionUri = requestMapping;
   int beginIndex = rawRequestUri.indexOf(requestMapping) + 
requestMapping.length();
   rawODataPath = rawRequestUri.substring(beginIndex);
 }else if(!"".equals(httpRequest.getServletPath())) {
@@ -286,7 +288,6 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
   rawODataPath = httpRequest.getRequestURI();
 }
 
-String rawServiceResolutionUri = null;
 if (split > 0) {
   rawServiceResolutionUri = rawODataPath;
   for (int i = 0; i < split; i++) {
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataHttpHandlerImplTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataHttpHandlerImplTest.java
index 0645423..158cae6 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataHttpHandlerImplTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/ODataHttpHandlerImplTest.java
@@ -212,7 +212,7 @@ public class ODataHttpHandlerImplTest {
   String rawODataPath = p[4];
   String rawQueryPath = "".equals(p[5]) ? null : p[5];
   String rawRequestUri = requestUrl + (queryString == null ? "" : "?" + 
queryString);
-  String rawServiceResolutionUri = "".equals(p[3]) ? null : p[3];
+  String rawServiceResolutionUri = ("0".equals(p[6])) ? p[2] : p[3];
 
   when(hr.getAttribute("requestMapping")).thenReturn(p[2]);
   ODataHttpHandlerImpl.fillUriInformation(odr, hr, Integer.parseInt(p[6]));



[olingo-odata4] branch master updated: [OLINGO-1155]Delta support in Json format

2019-08-28 Thread ramyav
This is an automated email from the ASF dual-hosted git repository.

ramyav pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git


The following commit(s) were added to refs/heads/master by this push:
 new 7632ec7  [OLINGO-1155]Delta support in Json format
7632ec7 is described below

commit 7632ec726845345467d07800e56723c30a053a3b
Author: ramya vasanth 
AuthorDate: Thu Aug 29 09:51:44 2019 +0530

[OLINGO-1155]Delta support in Json format
---
 .../EntityCollectionSerializerOptions.java |  12 ++
 .../json/JsonDeltaSerializerWithNavigations.java   |  80 +++---
 .../olingo/server/tecsvc/data/DataCreator.java |  32 +++-
 .../JsonDeltaSerializerWithNavigationsTest.java| 177 -
 4 files changed, 272 insertions(+), 29 deletions(-)

diff --git 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
index 6e49f81..006e477 100644
--- 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
+++ 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
@@ -35,6 +35,7 @@ public class EntityCollectionSerializerOptions {
   private String id;
   private ODataContentWriteErrorCallback odataContentWriteErrorCallback;
   private String xml10InvalidCharReplacement;
+  private boolean isFullRepresentation = false;
 
   /** Gets the {@link ContextURL}. */
   public ContextURL getContextURL() {
@@ -81,6 +82,11 @@ public class EntityCollectionSerializerOptions {
   public String xml10InvalidCharReplacement() {
 return xml10InvalidCharReplacement;
   }  
+  
+  /** Inline entries will not have @delta if representation is full **/ 
+  public boolean isFullRepresentation() {
+return isFullRepresentation;
+  }
 
   /** Initializes the options builder. */
   public static Builder with() {
@@ -150,6 +156,12 @@ public class EntityCollectionSerializerOptions {
   return this;
 } 
 
+/** sets isFullRepresentation to represent inline entries**/
+public Builder isFullRepresentation(boolean isFullRepresentation) {
+  options.isFullRepresentation = isFullRepresentation;
+  return this;
+}
+
 /** Builds the OData serializer options. */
 public EntityCollectionSerializerOptions build() {
   return options;
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
index ad8635d..bf74efd 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
@@ -142,7 +142,8 @@ public class JsonDeltaSerializerWithNavigations implements 
EdmDeltaSerializer {
 json.writeStartArray();
 for (final Entity entity : entitySet.getEntities()) {
   writeAddedUpdatedEntity(metadata, entityType, entity, 
options.getExpand(), options.getSelect(),
-  options.getContextURL(), false, 
options.getContextURL().getEntitySetOrSingletonOrType(), json);
+  options.getContextURL(), false, 
options.getContextURL().getEntitySetOrSingletonOrType(), json,
+  options.isFullRepresentation());
 }
 for (final DeletedEntity deletedEntity : entitySet.getDeletedEntities()) {
   writeDeletedEntity(deletedEntity, json);
@@ -232,7 +233,7 @@ public class JsonDeltaSerializerWithNavigations implements 
EdmDeltaSerializer {
 
   public void writeAddedUpdatedEntity(final ServiceMetadata metadata, final 
EdmEntityType entityType,
   final Entity entity, final ExpandOption expand, final SelectOption 
select, final ContextURL url,
-  final boolean onlyReference, String name, final JsonGenerator json)
+  final boolean onlyReference, String name, final JsonGenerator json, 
boolean isFullRepresentation)
   throws IOException, SerializerException {
 json.writeStartObject();
 if (entity.getId() != null && url != null) {
@@ -248,7 +249,7 @@ public class JsonDeltaSerializerWithNavigations implements 
EdmDeltaSerializer {
 }
 json.writeStringField(Constants.AT + Constants.ATOM_ATTR_ID, 
getEntityId(entity, entityType, name));
 writeProperties(metadata, entityType, entity.getProperties(), select, 
json);
-writeNavigationProperties(metadata, entityType, entity, expand, name, 
json);
+writeNavigationProperties(metadata, entityType, entity, expand, name, 
json, isFullRepresentation);
 json.writeEndObject();
 
   }
@@ -503,7 +504,8 @@ public class JsonDeltaSerializerWithNavigations implements 
EdmDeltaSerializer {