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