Repository: olingo-odata2 Updated Branches: refs/heads/master ecd02e87b -> ee4b64337
[OLINGO-] ODatav2 edmx Reference tag Issue Signed-off-by: Christian Amend <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/ee4b6433 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/ee4b6433 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/ee4b6433 Branch: refs/heads/master Commit: ee4b64337a35898a84508180d4f4e73d407c42e0 Parents: ecd02e8 Author: Archana Rai <[email protected]> Authored: Wed Feb 8 11:51:53 2017 +0530 Committer: Christian Amend <[email protected]> Committed: Tue Feb 21 12:36:45 2017 +0100 ---------------------------------------------------------------------- .../core/ep/consumer/XmlMetadataConsumer.java | 5 +++- .../ep/consumer/XmlMetadataConsumerTest.java | 29 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/ee4b6433/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java index e245cad..df4cdcd 100644 --- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java +++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java @@ -954,7 +954,10 @@ public class XmlMetadataConsumer { if (namespacePrefix == null || isDefaultNamespace(namespacePrefix)) { namespacePrefix = Edm.PREFIX_EDM; } - xmlNamespaceMap.put(namespacePrefix, namespaceUri); + //Ignoring the duplicate tags, parent tag namespace takes precedence + if (!xmlNamespaceMap.containsKey(namespacePrefix)) { + xmlNamespaceMap.put(namespacePrefix, namespaceUri); + } } } http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/ee4b6433/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java index fb95029..9c4877c 100644 --- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java +++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java @@ -180,6 +180,35 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest { "Nullable=\"false\" MaxLength=\"Max\"/><Property Name=\"Name\" Type=\"Edm.Int32\" MaxLength=\"max\"/>" + "</EntityType></Schema></edmx:DataServices></edmx:Edmx>"; + private final String edmxRefFor1680364709 = + "<edmx:Edmx xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\" " + + "xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" xmlns:sap=\"" + + "http://www.sap.com/Protocols/SAPData\" Version=\"1.0\">" + + "<edmx:Reference xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\" " + + "Uri=\"https://host:port/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies"+ + "(TechnicalName='%2FIWBEP%2FVOC_COMMON'"+ + ",Version='0001',SAP__Origin='')/$value\">" + + "<edmx:Include Alias=\"Common\" Namespace=\"com.sap.vocabularies.Common.v1\"/>" + + "</edmx:Reference>" + + "</edmx:Edmx>"; + + @Test + public void twoEdmxWithValidation() throws Exception { + XmlMetadataConsumer parser = new XmlMetadataConsumer(); + XMLStreamReader reader = createStreamReader(edmxRefFor1680364709); + DataServices result = parser.readMetadata(reader, true); + assertNotNull(result); + + } + + @Test + public void twoEdmxWithoutValidation() throws Exception { + XmlMetadataConsumer parser = new XmlMetadataConsumer(); + XMLStreamReader reader = createStreamReader(edmxRefFor1680364709); + DataServices result = parser.readMetadata(reader, false); + assertNotNull(result); + + } @Test public void testMetadataDokumentWithWhitepaces() throws Exception { final String metadata = ""
