You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/03/05 14:58:34 UTC
olingo-odata4 git commit: [OLINGO-573] Sample for navigation request
Repository: olingo-odata4
Updated Branches:
refs/heads/olingo-server-extension b25fc8c21 -> c65715987
[OLINGO-573] Sample for navigation request
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c6571598
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c6571598
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c6571598
Branch: refs/heads/olingo-server-extension
Commit: c65715987e5c3b288ac4469822d71d7861f5f0d4
Parents: b25fc8c
Author: Michael Bolz <mi...@sap.com>
Authored: Thu Mar 5 14:54:59 2015 +0100
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Mar 5 14:57:21 2015 +0100
----------------------------------------------------------------------
.../olingo/server/core/TripPinHandler.java | 20 +++++++++--
.../olingo/server/core/TripPinServiceTest.java | 35 ++++++++++++++++++++
.../src/test/resources/people.json | 6 +++-
3 files changed, 57 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c6571598/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinHandler.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinHandler.java
index 4132678..7690ffd 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinHandler.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinHandler.java
@@ -34,11 +34,13 @@ import java.util.UUID;
import org.apache.olingo.commons.api.data.Entity;
import org.apache.olingo.commons.api.data.EntitySet;
+import org.apache.olingo.commons.api.data.Link;
import org.apache.olingo.commons.api.data.Property;
import org.apache.olingo.commons.api.edm.EdmAction;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmFunction;
+import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
import org.apache.olingo.commons.api.edm.EdmProperty;
import org.apache.olingo.commons.api.edm.EdmSingleton;
import org.apache.olingo.commons.api.http.HttpMethod;
@@ -142,9 +144,15 @@ public class TripPinHandler implements ServiceHandler {
@Override
void visit(PropertyResponse response) throws ODataTranslatedException,
ODataApplicationException {
+ Property property;
EdmProperty edmProperty = request.getUriResourceProperty().getProperty();
- Property property = dataEntity.getProperty(edmProperty.getName());
- response.writeProperty(edmProperty.getType(), property);
+ Entity propEntity = dataEntity;
+ if(request.getUriResourceNavigation() != null) {
+ EdmNavigationProperty navProperty = request.getUriResourceNavigation().getProperty();
+ Link link = dataEntity.getNavigationLink(navProperty.getName());
+ propEntity = link.getInlineEntity();
+ }
+ response.writeProperty(edmProperty.getType(), propEntity.getProperty(edmProperty.getName()));
}
@Override
@@ -162,7 +170,13 @@ public class TripPinHandler implements ServiceHandler {
@Override
public void visit(EntityResponse response) throws ODataTranslatedException,
ODataApplicationException {
- response.writeReadEntity(edmEntityType, dataEntity);
+ if(request.getUriResourceNavigation() != null) {
+ EdmNavigationProperty navProperty = request.getUriResourceNavigation().getProperty();
+ Link link = dataEntity.getNavigationLink(navProperty.getName());
+ response.writeReadEntity(navProperty.getType(), link.getInlineEntity());
+ } else {
+ response.writeReadEntity(edmEntityType, dataEntity);
+ }
}
});
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c6571598/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinServiceTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinServiceTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinServiceTest.java
index fecf0cf..645f7ca 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinServiceTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/TripPinServiceTest.java
@@ -68,6 +68,22 @@ public class TripPinServiceTest {
}
@Test
+ public void testMetadata() throws Exception {
+ ContentResponse response = http.newRequest(baseURL + "/$metadata")
+ .method(HttpMethod.GET)
+ .send();
+ System.out.println(response.getContentAsString());
+ }
+
+ @Test
+ public void testServiceDocument() throws Exception {
+ ContentResponse response = http.newRequest(baseURL + "/")
+ .method(HttpMethod.GET)
+ .send();
+ System.out.println(response.getContentAsString());
+ }
+
+ @Test
public void testEntitySet() throws Exception {
ContentResponse response = http.newRequest(baseURL + "/People")
.header("Content-Type", "application/json;odata.metadata=minimal")
@@ -77,6 +93,25 @@ public class TripPinServiceTest {
}
@Test
+ public void testEntitySetNav() throws Exception {
+ ContentResponse response = http.newRequest(baseURL + "/People('russellwhyte')/Photo")
+ .header("Content-Type", "application/json;odata.metadata=minimal")
+ .method(HttpMethod.GET)
+ .send();
+ System.out.println(response.getContentAsString());
+ }
+
+ @Test
+ public void testEntitySetNavProperty() throws Exception {
+ ContentResponse response = http.newRequest(baseURL + "/People('russellwhyte')/Photo/Name")
+ .header("Content-Type", "application/json;odata.metadata=minimal")
+ .method(HttpMethod.GET)
+ .send();
+ System.out.println(response.getContentAsString());
+ }
+
+
+ @Test
public void testReadEntitySetWithPaging() throws Exception {
ContentResponse response = http.newRequest(baseURL + "/People")
.header("Prefer", "odata.maxpagesize=10").send();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c6571598/lib/server-core-ext/src/test/resources/people.json
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/resources/people.json b/lib/server-core-ext/src/test/resources/people.json
index 443b152..08df1f8 100644
--- a/lib/server-core-ext/src/test/resources/people.json
+++ b/lib/server-core-ext/src/test/resources/people.json
@@ -19,7 +19,11 @@
}
],
"Gender":0,
- "Concurrency":635585295719432047
+ "Concurrency":635585295719432047,
+ "Photo": {
+ "Id": 2,
+ "Name": "My Photo 2"
+ }
},
{
"UserName":"scottketchum",