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 2014/10/22 09:57:37 UTC

git commit: [OLINGO-463] Fix empty documentation serialization

Repository: olingo-odata2
Updated Branches:
  refs/heads/master 28e28212f -> 7029836a9


[OLINGO-463] Fix empty documentation serialization


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

Branch: refs/heads/master
Commit: 7029836a9ac40cc9baa4b0fed19c7f0f4d0dc82a
Parents: 28e2821
Author: Michael Bolz <mi...@sap.com>
Authored: Wed Oct 22 09:53:05 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Wed Oct 22 09:54:55 2014 +0200

----------------------------------------------------------------------
 .../core/ep/producer/XmlMetadataProducer.java     | 16 ++++++++++------
 .../core/ep/producer/XmlMetadataProducerTest.java | 18 ++++++++++++++++--
 2 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7029836a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
index 4ad3e3e..f917de7 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
@@ -574,13 +574,17 @@ public class XmlMetadataProducer {
       xmlStreamWriter.writeStartElement(XmlMetadataConstants.DOCUMENTATION);
       writeAnnotationAttributes(documentation.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
 
-      xmlStreamWriter.writeStartElement(XmlMetadataConstants.SUMMARY);
-      xmlStreamWriter.writeCharacters(documentation.getSummary());
-      xmlStreamWriter.writeEndElement();
+      if (documentation.getSummary() != null) {
+        xmlStreamWriter.writeStartElement(XmlMetadataConstants.SUMMARY);
+        xmlStreamWriter.writeCharacters(documentation.getSummary());
+        xmlStreamWriter.writeEndElement();
+      }
 
-      xmlStreamWriter.writeStartElement(XmlMetadataConstants.LONG_DESCRIPTION);
-      xmlStreamWriter.writeCharacters(documentation.getLongDescription());
-      xmlStreamWriter.writeEndElement();
+      if (documentation.getLongDescription() != null) {
+        xmlStreamWriter.writeStartElement(XmlMetadataConstants.LONG_DESCRIPTION);
+        xmlStreamWriter.writeCharacters(documentation.getLongDescription());
+        xmlStreamWriter.writeEndElement();
+      }
 
       writeAnnotationElements(documentation.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
       xmlStreamWriter.writeEndElement();

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7029836a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
index 2e8ad58..eb2a795 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
@@ -34,6 +34,7 @@ import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
 import org.apache.olingo.odata2.api.edm.provider.AnnotationAttribute;
 import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
 import org.apache.olingo.odata2.api.edm.provider.DataServices;
+import org.apache.olingo.odata2.api.edm.provider.Documentation;
 import org.apache.olingo.odata2.api.edm.provider.EntityType;
 import org.apache.olingo.odata2.api.edm.provider.Key;
 import org.apache.olingo.odata2.api.edm.provider.Property;
@@ -163,14 +164,23 @@ public class XmlMetadataProducerTest extends AbstractXmlProducerTestHelper {
     List<Property> properties = new ArrayList<Property>();
     properties.add(new SimpleProperty().setName("Id").setType(EdmSimpleTypeKind.String));
     EntityType entityType = new EntityType().setName("testType").setKey(key).setProperties(properties);
+    entityType.setDocumentation(new Documentation());
+
+    List<PropertyRef> keys2 = new ArrayList<PropertyRef>();
+    keys2.add(new PropertyRef().setName("SecondId"));
+    Key key2 = new Key().setKeys(keys2);
+    List<Property> properties2 = new ArrayList<Property>();
+    properties2.add(new SimpleProperty().setName("SecondId").setType(EdmSimpleTypeKind.String));
+    EntityType entityType2 = new EntityType().setName("SecondTestType").setKey(key2).setProperties(properties2);
+    entityType2.setDocumentation(new Documentation().setSummary("Doc_TlDr").setLongDescription("Some long desc."));
     List<EntityType> entityTypes = new ArrayList<EntityType>();
     entityTypes.add(entityType);
+    entityTypes.add(entityType2);
     schema.setEntityTypes(entityTypes);
 
     DataServices data = new DataServices().setSchemas(schemas).setDataServiceVersion(ODataServiceVersion.V20);
-    OutputStreamWriter writer = null;
     CircleStreamBuffer csb = new CircleStreamBuffer();
-    writer = new OutputStreamWriter(csb.getOutputStream(), "UTF-8");
+    OutputStreamWriter writer = new OutputStreamWriter(csb.getOutputStream(), "UTF-8");
     XMLStreamWriter xmlStreamWriter = xmlStreamWriterFactory.createXMLStreamWriter(writer);
     XmlMetadataProducer.writeMetadata(data, xmlStreamWriter, null);
 
@@ -183,6 +193,10 @@ public class XmlMetadataProducerTest extends AbstractXmlProducerTestHelper {
 
     String metadata = StringHelper.inputStreamToString(csb.getInputStream());
     assertXpathExists("/edmx:Edmx/edmx:DataServices/a:Schema/a:test", metadata);
+
+    assertXpathExists("/edmx:Edmx/edmx:DataServices/a:Schema/a:EntityType[@Name=\"testType\"]", metadata);
+    assertXpathExists("/edmx:Edmx/edmx:DataServices/a:Schema/" +
+            "a:EntityType[@Name=\"SecondTestType\"]/a:Documentation/a:Summary", metadata);
   }
 
   // Elements with namespace and attributes without namespace