Repository: olingo-odata2 Updated Branches: refs/heads/master b43255ae0 -> f48b5b723
[OLINGO-572] Fix entity set name encoding for Json Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/f48b5b72 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/f48b5b72 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/f48b5b72 Branch: refs/heads/master Commit: f48b5b7231bd31e0cb964338a05059ba9b3e5fef Parents: b43255a Author: Christian Amend <[email protected]> Authored: Tue Feb 17 14:44:40 2015 +0100 Committer: Christian Amend <[email protected]> Committed: Tue Feb 17 14:44:40 2015 +0100 ---------------------------------------------------------------------- .../core/ep/producer/JsonServiceDocumentProducer.java | 12 +++++++++++- .../core/ep/consumer/ServiceDocumentConsumerTest.java | 1 + .../ep/producer/JsonServiceDocumentProducerTest.java | 6 ++++-- 3 files changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/f48b5b72/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducer.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducer.java index 6b2134b..bca6b65 100644 --- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducer.java +++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducer.java @@ -53,7 +53,7 @@ public class JsonServiceDocumentProducer { } else { jsonStreamWriter.separator(); } - jsonStreamWriter.stringValue(info.getEntitySetUri().toASCIIString()); + jsonStreamWriter.stringValue(createEntitySetName(info)); } jsonStreamWriter.endArray() @@ -68,4 +68,14 @@ public class JsonServiceDocumentProducer { } } + + private static String createEntitySetName(EdmEntitySetInfo info) { + String entitySetName; + if (info.isDefaultEntityContainer()) { + entitySetName = info.getEntitySetName(); + } else { + entitySetName = info.getEntityContainerName() + "." + info.getEntitySetName(); + } + return entitySetName; + } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/f48b5b72/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/ServiceDocumentConsumerTest.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/ServiceDocumentConsumerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/ServiceDocumentConsumerTest.java index 705b316..60d527f 100644 --- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/ServiceDocumentConsumerTest.java +++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/ServiceDocumentConsumerTest.java @@ -109,6 +109,7 @@ public class ServiceDocumentConsumerTest extends BaseTest { assertEquals(entitySetsInfoJson.size(), entitySetsInfoAtom.size()); for (int i = 0; i < entitySetsInfoJson.size(); i++) { + assertEquals(entitySetsInfoJson.get(i).getEntitySetName(), entitySetsInfoAtom.get(i).getEntitySetName()); assertEquals(entitySetsInfoJson.get(i).getEntitySetUri(), entitySetsInfoAtom.get(i).getEntitySetUri()); } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/f48b5b72/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java index 038f561..4ec24f6 100644 --- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java +++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java @@ -65,9 +65,11 @@ public class JsonServiceDocumentProducerTest extends BaseTest { Edm edm = mock(Edm.class); EdmServiceMetadata metadata = mock(EdmServiceMetadata.class); EdmEntitySetInfo entitySetInfo1 = mock(EdmEntitySetInfo.class); - when(entitySetInfo1.getEntitySetUri()).thenReturn(URI.create("EntitySet")); + when(entitySetInfo1.isDefaultEntityContainer()).thenReturn(true); + when(entitySetInfo1.getEntitySetName()).thenReturn("EntitySet"); EdmEntitySetInfo entitySetInfo2 = mock(EdmEntitySetInfo.class); - when(entitySetInfo2.getEntitySetUri()).thenReturn(URI.create("Container2.EntitySet2")); + when(entitySetInfo2.getEntityContainerName()).thenReturn("Container2"); + when(entitySetInfo2.getEntitySetName()).thenReturn("EntitySet2"); when(metadata.getEntitySetInfos()).thenReturn(Arrays.asList(entitySetInfo1, entitySetInfo2)); when(edm.getServiceMetadata()).thenReturn(metadata); final ODataResponse response = new JsonEntityProvider().writeServiceDocument(edm, "http://host:80/service/");
