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 <[email protected]> Authored: Wed Oct 22 09:53:05 2014 +0200 Committer: Michael Bolz <[email protected]> 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
