Repository: olingo-odata4 Updated Branches: refs/heads/master 908a14375 -> 92fa7cd62
[OLINGO-777] Fix sample/server's xml serialization Signed-off-by: Michael Bolz <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/92fa7cd6 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/92fa7cd6 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/92fa7cd6 Branch: refs/heads/master Commit: 92fa7cd62ecc5a08cc1cba1639b79e7b34855445 Parents: 908a143 Author: Aki Yoshida <[email protected]> Authored: Fri Sep 18 13:43:59 2015 +0200 Committer: Michael Bolz <[email protected]> Committed: Thu Mar 3 08:41:51 2016 +0100 ---------------------------------------------------------------------- .../olingo/server/sample/data/DataProvider.java | 54 ++++++++++++++------ .../server/sample/processor/CarsProcessor.java | 2 + 2 files changed, 41 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/92fa7cd6/samples/server/src/main/java/org/apache/olingo/server/sample/data/DataProvider.java ---------------------------------------------------------------------- diff --git a/samples/server/src/main/java/org/apache/olingo/server/sample/data/DataProvider.java b/samples/server/src/main/java/org/apache/olingo/server/sample/data/DataProvider.java index d360856..191a588 100644 --- a/samples/server/src/main/java/org/apache/olingo/server/sample/data/DataProvider.java +++ b/samples/server/src/main/java/org/apache/olingo/server/sample/data/DataProvider.java @@ -18,10 +18,13 @@ */ package org.apache.olingo.server.sample.data; +import java.net.URI; +import java.net.URISyntaxException; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.olingo.commons.api.ex.ODataException; +import org.apache.olingo.commons.api.ex.ODataRuntimeException; import org.apache.olingo.commons.api.data.Entity; import org.apache.olingo.commons.api.data.EntityCollection; import org.apache.olingo.commons.api.data.Property; @@ -94,41 +97,50 @@ public class DataProvider { private EntityCollection createCars() { EntityCollection entitySet = new EntityCollection(); - - entitySet.getEntities().add(new Entity() + Entity el = new Entity() .addProperty(createPrimitive("Id", 1)) .addProperty(createPrimitive("Model", "F1 W03")) .addProperty(createPrimitive("ModelYear", "2012")) .addProperty(createPrimitive("Price", 189189.43)) - .addProperty(createPrimitive("Currency", "EUR"))); + .addProperty(createPrimitive("Currency", "EUR")); + el.setId(createId(CarsEdmProvider.ES_CARS_NAME, 1)); + entitySet.getEntities().add(el); - entitySet.getEntities().add(new Entity() + el = new Entity() .addProperty(createPrimitive("Id", 2)) .addProperty(createPrimitive("Model", "F1 W04")) .addProperty(createPrimitive("ModelYear", "2013")) .addProperty(createPrimitive("Price", 199999.99)) - .addProperty(createPrimitive("Currency", "EUR"))); + .addProperty(createPrimitive("Currency", "EUR")); + el.setId(createId(CarsEdmProvider.ES_CARS_NAME, 2)); + entitySet.getEntities().add(el); - entitySet.getEntities().add(new Entity() + el = new Entity() .addProperty(createPrimitive("Id", 3)) .addProperty(createPrimitive("Model", "F2012")) .addProperty(createPrimitive("ModelYear", "2012")) .addProperty(createPrimitive("Price", 137285.33)) - .addProperty(createPrimitive("Currency", "EUR"))); + .addProperty(createPrimitive("Currency", "EUR")); + el.setId(createId(CarsEdmProvider.ES_CARS_NAME, 3)); + entitySet.getEntities().add(el); - entitySet.getEntities().add(new Entity() + el = new Entity() .addProperty(createPrimitive("Id", 4)) .addProperty(createPrimitive("Model", "F2013")) .addProperty(createPrimitive("ModelYear", "2013")) .addProperty(createPrimitive("Price", 145285.00)) - .addProperty(createPrimitive("Currency", "EUR"))); + .addProperty(createPrimitive("Currency", "EUR")); + el.setId(createId(CarsEdmProvider.ES_CARS_NAME, 4)); + entitySet.getEntities().add(el); - entitySet.getEntities().add(new Entity() + el = new Entity() .addProperty(createPrimitive("Id", 5)) .addProperty(createPrimitive("Model", "F1 W02")) .addProperty(createPrimitive("ModelYear", "2011")) .addProperty(createPrimitive("Price", 167189.00)) - .addProperty(createPrimitive("Currency", "EUR"))); + .addProperty(createPrimitive("Currency", "EUR")); + el.setId(createId(CarsEdmProvider.ES_CARS_NAME, 5)); + entitySet.getEntities().add(el); for (Entity entity:entitySet.getEntities()) { entity.setType(CarsEdmProvider.ET_CAR.getFullQualifiedNameAsString()); @@ -139,15 +151,19 @@ public class DataProvider { private EntityCollection createManufacturers() { EntityCollection entitySet = new EntityCollection(); - entitySet.getEntities().add(new Entity() + Entity el = new Entity() .addProperty(createPrimitive("Id", 1)) .addProperty(createPrimitive("Name", "Star Powered Racing")) - .addProperty(createAddress("Star Street 137", "Stuttgart", "70173", "Germany"))); + .addProperty(createAddress("Star Street 137", "Stuttgart", "70173", "Germany")); + el.setId(createId(CarsEdmProvider.ES_MANUFACTURER_NAME, 1)); + entitySet.getEntities().add(el); - entitySet.getEntities().add(new Entity() + el = new Entity() .addProperty(createPrimitive("Id", 2)) .addProperty(createPrimitive("Name", "Horse Powered Racing")) - .addProperty(createAddress("Horse Street 1", "Maranello", "41053", "Italy"))); + .addProperty(createAddress("Horse Street 1", "Maranello", "41053", "Italy")); + el.setId(createId(CarsEdmProvider.ES_MANUFACTURER_NAME, 2)); + entitySet.getEntities().add(el); for (Entity entity:entitySet.getEntities()) { entity.setType(CarsEdmProvider.ET_MANUFACTURER.getFullQualifiedNameAsString()); @@ -168,4 +184,12 @@ public class DataProvider { private Property createPrimitive(final String name, final Object value) { return new Property(null, name, ValueType.PRIMITIVE, value); } + + private URI createId(String entitySetName, Object id) { + try { + return new URI(entitySetName + "(" + String.valueOf(id) + ")"); + } catch (URISyntaxException e) { + throw new ODataRuntimeException("Unable to create id for entity: " + entitySetName, e); + } + } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/92fa7cd6/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java ---------------------------------------------------------------------- diff --git a/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java b/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java index 2da26fb..dfbce28 100644 --- a/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java +++ b/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java @@ -105,8 +105,10 @@ public class CarsProcessor implements EntityCollectionProcessor, EntityProcessor // Now the content is serialized using the serializer. final ExpandOption expand = uriInfo.getExpandOption(); final SelectOption select = uriInfo.getSelectOption(); + final String id = request.getRawBaseUri() + "/" + edmEntitySet.getName(); InputStream serializedContent = serializer.entityCollection(edm, edmEntitySet.getEntityType(), entitySet, EntityCollectionSerializerOptions.with() + .id(id) .contextURL(isODataMetadataNone(requestedContentType) ? null : getContextUrl(edmEntitySet, false, expand, select, null)) .count(uriInfo.getCountOption())
