You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/06/02 16:07:04 UTC

git commit: [OLINGO-308] rollback

Repository: olingo-odata2
Updated Branches:
  refs/heads/master 7d71cee8f -> 9a8261a1c


[OLINGO-308] rollback


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/9a8261a1
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/9a8261a1
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/9a8261a1

Branch: refs/heads/master
Commit: 9a8261a1c7948f459614fb37414757f366eac726
Parents: 7d71cee
Author: Stephan Klevenz <sk...@apache.org>
Authored: Mon Jun 2 16:06:09 2014 +0200
Committer: Stephan Klevenz <sk...@apache.org>
Committed: Mon Jun 2 16:06:09 2014 +0200

----------------------------------------------------------------------
 .../api/ep/EntityProviderWriteProperties.java   |  11 --
 .../ep/producer/AtomEntryEntityProducer.java    | 131 ++++++++-----------
 .../ep/producer/JsonEntryEntityProducer.java    |  35 ++---
 .../core/ep/producer/AtomEntryProducerTest.java |  22 ----
 .../producer/JsonEntryEntityProducerTest.java   |  25 ----
 5 files changed, 69 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9a8261a1/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
index 1fa674f..822fc84 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
@@ -44,7 +44,6 @@ public class EntityProviderWriteProperties {
   private URI selfLink;
   private boolean includeSimplePropertyType;
   private Map<String, Map<String, Object>> additionalLinks;
-  private boolean ignoreKey = false;
 
   private EntityProviderWriteProperties() {}
 
@@ -240,12 +239,6 @@ public class EntityProviderWriteProperties {
       this.properties.selfLink = properties.getSelfLink();
       this.properties.includeSimplePropertyType = properties.includeSimplePropertyType;
       this.properties.additionalLinks = properties.additionalLinks;
-      this.properties.ignoreKey = properties.ignoreKey;
-      return this;
-    }
-
-    public ODataEntityProviderPropertiesBuilder ignoreKey(boolean ignoreKey) {
-      properties.ignoreKey = ignoreKey;
       return this;
     }
   }
@@ -255,8 +248,4 @@ public class EntityProviderWriteProperties {
         EntityProviderWriteProperties.serviceRoot(properties.getServiceRoot());
     return builder.fromProperties(properties);
   }
-
-  public boolean isIgnoreKey() {
-    return ignoreKey;
-  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9a8261a1/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
index 4036df5..95702dd 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
@@ -95,11 +95,7 @@ public class AtomEntryEntityProducer {
       }
 
       // write all atom infos (mandatory and optional)
-      String selfLink = null;
-      if (!properties.isIgnoreKey()) {
-        selfLink = createSelfLink(eia, data, null);
-      }
-
+      String selfLink = createSelfLink(eia, data, null);
       appendAtomMandatoryParts(writer, eia, data, selfLink);
       appendAtomOptionalParts(writer, eia, data);
 
@@ -189,9 +185,7 @@ public class AtomEntryEntityProducer {
       final Map<String, Map<String, Object>> links = properties.getAdditionalLinks();
       final Map<String, Object> key = links == null ? null : links.get(name);
       if (key == null || key.isEmpty()) {
-        if (!properties.isIgnoreKey()) {
-          appendAtomNavigationLink(writer, createSelfLink(eia, data, name), name, isFeed, eia, data);
-        }
+        appendAtomNavigationLink(writer, createSelfLink(eia, data, name), name, isFeed, eia, data);
       } else {
         final EntityInfoAggregator targetEntityInfo = EntityInfoAggregator.create(
             eia.getEntitySet().getRelatedEntitySet((EdmNavigationProperty) eia.getEntityType().getProperty(name)));
@@ -312,13 +306,11 @@ public class AtomEntryEntityProducer {
   private void appendAtomEditLink(final XMLStreamWriter writer, final EntityInfoAggregator eia,
       final Map<String, Object> data, final String selfLink) throws EntityProviderException {
     try {
-      if (selfLink != null) {
-        writer.writeStartElement(FormatXml.ATOM_LINK);
-        writer.writeAttribute(FormatXml.ATOM_HREF, selfLink);
-        writer.writeAttribute(FormatXml.ATOM_REL, Edm.LINK_REL_EDIT);
-        writer.writeAttribute(FormatXml.ATOM_TITLE, eia.getEntityType().getName());
-        writer.writeEndElement();
-      }
+      writer.writeStartElement(FormatXml.ATOM_LINK);
+      writer.writeAttribute(FormatXml.ATOM_HREF, selfLink);
+      writer.writeAttribute(FormatXml.ATOM_REL, Edm.LINK_REL_EDIT);
+      writer.writeAttribute(FormatXml.ATOM_TITLE, eia.getEntityType().getName());
+      writer.writeEndElement();
     } catch (XMLStreamException e) {
       throw new EntityProviderException(EntityProviderException.COMMON, e);
     } catch (EdmException e) {
@@ -329,27 +321,25 @@ public class AtomEntryEntityProducer {
   private void appendAtomContentLink(final XMLStreamWriter writer, final EntityInfoAggregator eia,
       final Map<String, Object> data, final String selfLink) throws EntityProviderException, EdmException {
     try {
-      if (selfLink != null) {
-        String mediaResourceMimeType = properties.getMediaResourceMimeType();
-        if (mediaResourceMimeType == null) {
-          EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
-          if (entityTypeMapping != null) {
-            String mediaResourceMimeTypeKey = entityTypeMapping.getMediaResourceMimeTypeKey();
-            if (mediaResourceMimeTypeKey != null) {
-              mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
-            }
-          }
-          if (mediaResourceMimeType == null) {
-            mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
+      String mediaResourceMimeType = properties.getMediaResourceMimeType();
+      if (mediaResourceMimeType == null) {
+        EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
+        if (entityTypeMapping != null) {
+          String mediaResourceMimeTypeKey = entityTypeMapping.getMediaResourceMimeTypeKey();
+          if (mediaResourceMimeTypeKey != null) {
+            mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
           }
         }
-
-        writer.writeStartElement(FormatXml.ATOM_LINK);
-        writer.writeAttribute(FormatXml.ATOM_HREF, selfLink + "/$value");
-        writer.writeAttribute(FormatXml.ATOM_REL, Edm.LINK_REL_EDIT_MEDIA);
-        writer.writeAttribute(FormatXml.ATOM_TYPE, mediaResourceMimeType);
-        writer.writeEndElement();
+        if (mediaResourceMimeType == null) {
+          mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
+        }
       }
+
+      writer.writeStartElement(FormatXml.ATOM_LINK);
+      writer.writeAttribute(FormatXml.ATOM_HREF, selfLink + "/$value");
+      writer.writeAttribute(FormatXml.ATOM_REL, Edm.LINK_REL_EDIT_MEDIA);
+      writer.writeAttribute(FormatXml.ATOM_TYPE, mediaResourceMimeType);
+      writer.writeEndElement();
     } catch (XMLStreamException e) {
       throw new EntityProviderException(EntityProviderException.COMMON, e);
     }
@@ -358,44 +348,42 @@ public class AtomEntryEntityProducer {
   private void appendAtomContentPart(final XMLStreamWriter writer, final EntityInfoAggregator eia,
       final Map<String, Object> data, final String selfLink) throws EntityProviderException, EdmException {
     try {
-      if (selfLink != null) {
-        // We have to support the media resource mime type at the properties till version 1.2 then this can be
-        // refactored
-        String mediaResourceMimeType = properties.getMediaResourceMimeType();
-        EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
-        String self = null;
 
-        if (entityTypeMapping != null) {
-          String mediaResourceSourceKey = entityTypeMapping.getMediaResourceSourceKey();
-          if (mediaResourceSourceKey != null) {
-            self = (String) data.get(mediaResourceSourceKey);
-          }
-          if (self == null) {
-            self = selfLink + "/$value";
-          }
-          if (mediaResourceMimeType == null) {
-            String mediaResourceMimeTypeKey =
-                entityTypeMapping.getMimeType() != null ? entityTypeMapping.getMimeType()
-                    : entityTypeMapping.getMediaResourceMimeTypeKey();
-            if (mediaResourceMimeTypeKey != null) {
-              mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
-            }
-            if (mediaResourceMimeType == null) {
-              mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
-            }
-          }
-        } else {
+      // We have to support the media resource mime type at the properties till version 1.2 then this can be refactored
+      String mediaResourceMimeType = properties.getMediaResourceMimeType();
+      EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
+      String self = null;
+
+      if (entityTypeMapping != null) {
+        String mediaResourceSourceKey = entityTypeMapping.getMediaResourceSourceKey();
+        if (mediaResourceSourceKey != null) {
+          self = (String) data.get(mediaResourceSourceKey);
+        }
+        if (self == null) {
           self = selfLink + "/$value";
+        }
+        if (mediaResourceMimeType == null) {
+          String mediaResourceMimeTypeKey =
+              entityTypeMapping.getMimeType() != null ? entityTypeMapping.getMimeType()
+                  : entityTypeMapping.getMediaResourceMimeTypeKey();
+          if (mediaResourceMimeTypeKey != null) {
+            mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
+          }
           if (mediaResourceMimeType == null) {
             mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
           }
         }
-
-        writer.writeStartElement(FormatXml.ATOM_CONTENT);
-        writer.writeAttribute(FormatXml.ATOM_TYPE, mediaResourceMimeType);
-        writer.writeAttribute(FormatXml.ATOM_SRC, self);
-        writer.writeEndElement();
+      } else {
+        self = selfLink + "/$value";
+        if (mediaResourceMimeType == null) {
+          mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
+        }
       }
+
+      writer.writeStartElement(FormatXml.ATOM_CONTENT);
+      writer.writeAttribute(FormatXml.ATOM_TYPE, mediaResourceMimeType);
+      writer.writeAttribute(FormatXml.ATOM_SRC, self);
+      writer.writeEndElement();
     } catch (XMLStreamException e) {
       throw new EntityProviderException(EntityProviderException.COMMON, e);
     }
@@ -404,12 +392,10 @@ public class AtomEntryEntityProducer {
   private void appendAtomMandatoryParts(final XMLStreamWriter writer, final EntityInfoAggregator eia,
       final Map<String, Object> data, final String selfLink) throws EntityProviderException {
     try {
-      if (selfLink != null) {
-        writer.writeStartElement(FormatXml.ATOM_ID);
-        location = properties.getServiceRoot().toASCIIString() + selfLink;
-        writer.writeCharacters(location);
-        writer.writeEndElement();
-      }
+      writer.writeStartElement(FormatXml.ATOM_ID);
+      location = properties.getServiceRoot().toASCIIString() + selfLink;
+      writer.writeCharacters(location);
+      writer.writeEndElement();
 
       writer.writeStartElement(FormatXml.ATOM_TITLE);
       writer.writeAttribute(FormatXml.ATOM_TYPE, FormatXml.ATOM_TEXT);
@@ -585,10 +571,7 @@ public class AtomEntryEntityProducer {
           if (isNotMappedViaCustomMapping(propertyInfo)) {
             Object value = data.get(propertyName);
             XmlPropertyEntityProducer aps = new XmlPropertyEntityProducer(properties.isIncludeSimplePropertyType());
-
-            if (!(eia.getKeyPropertyInfos().contains(propertyInfo) && properties.isIgnoreKey())) {
-              aps.append(writer, propertyInfo.getName(), propertyInfo, value);
-            }
+            aps.append(writer, propertyInfo.getName(), propertyInfo, value);
           }
         }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9a8261a1/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
index c1b52fa..8ad5d42 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
@@ -45,7 +45,6 @@ import org.apache.olingo.odata2.api.exception.ODataApplicationException;
 import org.apache.olingo.odata2.core.commons.ContentType;
 import org.apache.olingo.odata2.core.commons.Encoder;
 import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityPropertyInfo;
 import org.apache.olingo.odata2.core.ep.util.FormatJson;
 import org.apache.olingo.odata2.core.ep.util.JsonStreamWriter;
 
@@ -81,10 +80,8 @@ public class JsonEntryEntityProducer {
 
       writeProperties(entityInfo, data, type);
 
-      if (!properties.isIgnoreKey()) {
-        writeNavigationProperties(writer, entityInfo, data, type);
-      }
-      
+      writeNavigationProperties(writer, entityInfo, data, type);
+
       jsonStreamWriter.endObject();
 
       if (isRootElement) {
@@ -178,15 +175,10 @@ public class JsonEntryEntityProducer {
       final EdmEntityType type) throws EdmException, EntityProviderException, IOException {
     for (final String propertyName : type.getPropertyNames()) {
       if (entityInfo.getSelectedPropertyNames().contains(propertyName)) {
-
-        EntityPropertyInfo propertyInfo = entityInfo.getPropertyInfo(propertyName);
-        if (!(entityInfo.getKeyPropertyInfos().contains(propertyInfo) && properties.isIgnoreKey())) {
-
-          jsonStreamWriter.separator();
-          jsonStreamWriter.name(propertyName);
-          JsonPropertyEntityProducer.appendPropertyValue(jsonStreamWriter, entityInfo.getPropertyInfo(propertyName),
-              data.get(propertyName));
-        }
+        jsonStreamWriter.separator();
+        jsonStreamWriter.name(propertyName);
+        JsonPropertyEntityProducer.appendPropertyValue(jsonStreamWriter, entityInfo.getPropertyInfo(propertyName),
+            data.get(propertyName));
       }
     }
   }
@@ -195,15 +187,12 @@ public class JsonEntryEntityProducer {
       final EdmEntityType type) throws IOException, EntityProviderException, EdmException {
     jsonStreamWriter.name(FormatJson.METADATA);
     jsonStreamWriter.beginObject();
-    String self = null;
-    if (!properties.isIgnoreKey()) {
-      self = AtomEntryEntityProducer.createSelfLink(entityInfo, data, null);
-      location = (properties.getServiceRoot() == null ? "" : properties.getServiceRoot().toASCIIString()) + self;
-      jsonStreamWriter.namedStringValue(FormatJson.ID, location);
-      jsonStreamWriter.separator();
-      jsonStreamWriter.namedStringValue(FormatJson.URI, location);
-      jsonStreamWriter.separator();
-    }
+    final String self = AtomEntryEntityProducer.createSelfLink(entityInfo, data, null);
+    location = (properties.getServiceRoot() == null ? "" : properties.getServiceRoot().toASCIIString()) + self;
+    jsonStreamWriter.namedStringValue(FormatJson.ID, location);
+    jsonStreamWriter.separator();
+    jsonStreamWriter.namedStringValue(FormatJson.URI, location);
+    jsonStreamWriter.separator();
     jsonStreamWriter.namedStringValueRaw(FormatJson.TYPE, type.getNamespace() + Edm.DELIMITER + type.getName());
     eTag = AtomEntryEntityProducer.createETag(entityInfo, data);
     if (eTag != null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9a8261a1/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
index cd65a8c..a87698d 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
@@ -56,7 +56,6 @@ import org.apache.olingo.odata2.api.processor.ODataResponse;
 import org.apache.olingo.odata2.core.commons.ContentType;
 import org.apache.olingo.odata2.core.ep.AbstractProviderTest;
 import org.apache.olingo.odata2.core.ep.AtomEntityProvider;
-import org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer;
 import org.apache.olingo.odata2.testutil.helper.StringHelper;
 import org.apache.olingo.odata2.testutil.helper.XMLUnitHelper;
 import org.apache.olingo.odata2.testutil.mock.MockFacade;
@@ -863,25 +862,4 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
   private void verifyTagOrdering(final String xmlString, final String... toCheckTags) {
     XMLUnitHelper.verifyTagOrdering(xmlString, toCheckTags);
   }
-
-  @Test
-  public void testPostEntryWithoutId() throws Exception {
-    roomData.remove("Id");
-
-    final EntityProviderWriteProperties properties =
-        EntityProviderWriteProperties.serviceRoot(BASE_URI).ignoreKey(true).build();
-    AtomEntityProvider ser = createAtomEntityProvider();
-    ODataResponse response =
-        ser.writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"), roomData, properties);
-
-    String xmlString = verifyResponse(response);
-
-    assertXpathExists("/a:entry", xmlString);
-    assertXpathEvaluatesTo(BASE_URI.toASCIIString(), "/a:entry/@xml:base", xmlString);
-
-    assertXpathExists("/a:entry/a:content", xmlString);
-    assertXpathEvaluatesTo(ContentType.APPLICATION_XML.toString(), "/a:entry/a:content/@type", xmlString);
-
-    assertXpathExists("/a:entry/a:content/m:properties", xmlString);
-  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9a8261a1/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
index 7593349..8efd99a 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
@@ -18,8 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata2.core.ep.producer;
 
-import static org.custommonkey.xmlunit.XMLAssert.assertXpathEvaluatesTo;
-import static org.custommonkey.xmlunit.XMLAssert.assertXpathExists;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -55,8 +53,6 @@ import org.apache.olingo.odata2.api.ep.callback.WriteFeedCallbackResult;
 import org.apache.olingo.odata2.api.exception.ODataApplicationException;
 import org.apache.olingo.odata2.api.processor.ODataResponse;
 import org.apache.olingo.odata2.api.uri.ExpandSelectTreeNode;
-import org.apache.olingo.odata2.core.commons.ContentType;
-import org.apache.olingo.odata2.core.ep.AtomEntityProvider;
 import org.apache.olingo.odata2.core.ep.JsonEntityProvider;
 import org.apache.olingo.odata2.testutil.fit.BaseTest;
 import org.apache.olingo.odata2.testutil.helper.StringHelper;
@@ -774,25 +770,4 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     assertNotNull(json);
     return json;
   }
-
-  @Test
-  public void testPostEntryWithoutId() throws Exception {
-    HashMap<String, Object> roomData = new HashMap<String, Object>();
-
-    roomData.put("Name", "Neu Schwanstein");
-    roomData.put("Seats", new Integer(20));
-    roomData.put("Version", new Integer(3));
-
-    final EntityProviderWriteProperties properties =
-        EntityProviderWriteProperties.serviceRoot(URI.create(BASE_URI)).ignoreKey(true).build();
-    ODataResponse response =
-        new JsonEntityProvider().writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),
-            roomData, properties);
-
-    String json = verifyResponse(response);
-
-    assertEquals("{\"d\":{\"__metadata\":{\"type\":\"RefScenario.Room\",\"etag\":\"W/\\\"3\\\"\"},"
-        + "\"Name\":\"Neu Schwanstein\",\"Seats\":20,\"Version\":3}}", json);
-  }
-
 }