From c4517068c0183a892703b26baf098c97bfb2a854 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 7 Feb 2021 18:56:28 +0100 Subject: [PATCH] Add XMLNamespace java.net.URI is a rather bad fit our purposes. We really need a simplistic String container, without the need to have it parsed out into a complex structure. Introduce XMLNamespace and mass-migrate all users of URI. JIRA: YANGTOOLS-1141 Change-Id: I87d9fa85f078aa0fa0d29d1e1b118094d51cfc5e Signed-off-by: Robert Varga --- .../data/jaxen/BitIsSetXPathFunctionTest.java | 5 +- .../data/jaxen/DerefXPathFunctionTest.java | 5 +- .../jaxen/DerivedFromXPathFunctionTest.java | 5 +- .../jaxen/EnumValueXPathFunctionTest.java | 5 +- .../yangtools/yang/data/jaxen/JaxenTest.java | 4 +- .../api/OpenDaylightExtensionsConstants.java | 5 +- .../odlext/parser/Bug3874ExtensionTest.java | 4 +- .../model/api/OpenConfigConstants.java | 4 +- .../rfc6241/model/api/NetconfConstants.java | 5 +- .../rfc6536/model/api/NACMConstants.java | 5 +- .../model/api/IetfYangSmiv2Constants.java | 5 +- .../rfc7952/model/api/MetadataConstants.java | 5 +- .../rfc8040/model/api/YangDataConstants.java | 5 +- .../rfc8040/parser/YangDataExtensionTest.java | 4 +- .../data/api/YangLibraryConstants.java | 5 +- .../model/api/SchemaMountConstants.java | 5 +- .../rfc8528/parser/MountPointTest.java | 5 +- .../yangtools/yang/common/QName.java | 28 +++---- .../yangtools/yang/common/QNameModule.java | 17 ++-- .../yangtools/yang/common/XMLNamespace.java | 79 +++++++++++++++++++ .../yangtools/yang/common/XNv1.java | 51 ++++++++++++ .../yangtools/yang/common/YangConstants.java | 4 +- .../common/BiMapYangNamespaceContextTest.java | 7 +- .../yangtools/yang/common/QNameTest.java | 9 +-- .../yang/common/YangConstantsTest.java | 10 +-- .../yang/data/api/DatastoreIdentifier.java | 5 +- .../yang/data/api/PathArgumentListTest.java | 4 +- .../stream/NormalizedNodeWriterTest.java | 4 +- .../yang/data/codec/binfmt/QNameFactory.java | 4 +- .../gson/JSONInstanceIdentifierCodec.java | 4 +- .../gson/JSONNormalizedNodeStreamWriter.java | 14 ++-- .../codec/gson/JSONStreamWriterContext.java | 4 +- .../JSONStreamWriterExclusiveRootContext.java | 4 +- .../gson/JSONStreamWriterQNameContext.java | 4 +- .../gson/JSONStreamWriterRootContext.java | 4 +- .../JSONStreamWriterSharedRootContext.java | 4 +- .../gson/JSONStreamWriterURIContext.java | 11 +-- .../data/codec/gson/JsonParserStream.java | 28 ++++--- .../yang/data/codec/gson/Bug5446Test.java | 4 +- .../yang/data/codec/gson/Bug7246Test.java | 4 +- .../yang/data/codec/gson/Bug8083Test.java | 6 +- ...estingNormalizedNodeStructuresCreator.java | 10 +-- .../data/codec/xml/IdentityrefXmlCodec.java | 7 +- .../yang/data/codec/xml/RandomPrefix.java | 8 +- ...domPrefixInstanceIdentifierSerializer.java | 6 +- .../xml/SchemaAwareXMLStreamWriterUtils.java | 4 +- .../data/codec/xml/StreamWriterFacade.java | 4 +- .../yang/data/codec/xml/XmlParserStream.java | 14 ++-- .../xml/XmlStringInstanceIdentifierCodec.java | 6 +- .../yang/data/codec/xml/Bug5396Test.java | 6 +- .../yang/data/codec/xml/Bug5446Test.java | 4 +- .../yang/data/codec/xml/Bug890Test.java | 4 +- .../xml/NormalizedNodeXmlTranslationTest.java | 4 +- .../codec/xml/NormalizedNodesToXmlTest.java | 4 +- .../yang/data/codec/xml/RandomPrefixTest.java | 12 +-- ...LStreamNormalizedNodeStreamWriterTest.java | 4 +- .../data/codec/xml/XmlStreamUtilsTest.java | 3 +- .../codec/xml/XmlToNormalizedNodesTest.java | 6 +- .../yang/data/codec/xml/YT1108Test.java | 6 +- .../codec/StringPatternCheckingCodecTest.java | 4 +- .../yang/data/impl/leafref/Bug7844Test.java | 6 +- ...mutableNormalizedNodeStreamWriterTest.java | 7 +- .../schema/NormalizedDataBuilderTest.java | 4 +- .../data/impl/schema/tree/Bug4295Test.java | 4 +- .../impl/schema/tree/OrderedListTest.java | 4 +- .../data/util/AbstractNamespaceCodec.java | 4 +- .../util/ModuleStringIdentityrefCodec.java | 4 +- .../yang/data/util/ParserStreamUtils.java | 4 +- .../util/codec/DataSchemaContextTreeTest.java | 4 +- .../util/codec/IdentityCodecUtilTest.java | 4 +- .../yang/model/api/QNameModuleAware.java | 5 +- .../yang/model/api/SchemaContext.java | 22 +++--- .../api/stmt/NamespaceEffectiveStatement.java | 4 +- .../model/api/stmt/NamespaceStatement.java | 4 +- .../model/util/ut/SchemaContextUtilTest.java | 6 +- .../model/util/AbstractSchemaContext.java | 6 +- .../util/FilteringSchemaContextProxy.java | 8 +- .../yang/model/util/ModuleDependencySort.java | 18 ++--- .../yang/model/util/SimpleSchemaContext.java | 8 +- .../model/util/ModuleDependencySortTest.java | 6 +- .../model/util/SchemaContextProxyTest.java | 3 +- .../model/util/SchemaContextUtilTest.java | 6 +- .../model/util/SimpleSchemaContextTest.java | 9 ++- .../SchemaContextFactoryDeviationsTest.java | 8 +- .../stmt/reactor/SourceSpecificContext.java | 4 +- .../repo/YinStatementStreamSource.java | 13 ++- .../stmt/import_/ImportStatementSupport.java | 4 +- .../stmt/module/ModuleStatementSupport.java | 6 +- .../EmptyNamespaceEffectiveStatement.java | 4 +- .../namespace/EmptyNamespaceStatement.java | 6 +- .../namespace/NamespaceStatementSupport.java | 17 ++-- .../RegularNamespaceEffectiveStatement.java | 4 +- .../namespace/RegularNamespaceStatement.java | 6 +- .../yang/stmt/AugmentProcessTest.java | 6 +- .../yangtools/yang/stmt/AugmentTest.java | 12 +-- .../yangtools/yang/stmt/Bug1412Test.java | 4 +- .../yangtools/yang/stmt/Bug2872Test.java | 4 +- .../yangtools/yang/stmt/Bug4231Test.java | 4 +- .../yangtools/yang/stmt/Bug4456Test.java | 4 +- .../yangtools/yang/stmt/Bug4610Test.java | 6 +- .../yangtools/yang/stmt/Bug4623Test.java | 8 +- .../yangtools/yang/stmt/Bug7038Test.java | 4 +- .../yangtools/yang/stmt/Bug7480Test.java | 18 ++--- .../yangtools/yang/stmt/Bug8307Test.java | 8 +- .../yangtools/yang/stmt/CaseStmtTest.java | 6 +- .../yang/stmt/EffectiveBuildTest.java | 4 +- .../yang/stmt/EffectiveModuleTest.java | 6 +- .../EffectiveModulesAndSubmodulesTest.java | 12 +-- .../yang/stmt/EffectiveSchemaContextTest.java | 4 +- .../yangtools/yang/stmt/GroupingTest.java | 4 +- .../yang/stmt/MoreRevisionsTest.java | 10 +-- .../yang/stmt/TypesResolutionTest.java | 11 +-- .../yangtools/yang/stmt/UsesAugmentTest.java | 6 +- .../yangtools/yang/stmt/YT1195Test.java | 4 +- .../yangtools/yang/stmt/YT1208Test.java | 20 ++--- .../yangtools/yang/stmt/YT1209Test.java | 4 +- .../yangtools/yang/stmt/YT1212Test.java | 8 +- .../yangtools/yang/stmt/YT841Test.java | 4 +- .../yangtools/yang/stmt/YT971Test.java | 4 +- .../yang/stmt/YangParserSimpleTest.java | 6 +- .../yangtools/yang/stmt/YangParserTest.java | 8 +- .../yang/stmt/YangParserWithContextTest.java | 24 +++--- .../yang/stmt/YangTypes2StmtTest.java | 4 +- .../OpenconfigVersionBorderCaseTest.java | 17 ++-- .../OpenconfigVersionComplexTest.java | 10 +-- .../OpenconfigVersionDefaultsTest.java | 10 +-- ...OpenconfigVersionIgnoringRevisionTest.java | 14 ++-- .../OpenconfigVersionImportTest.java | 5 +- .../OpenconfigVersionMultipleImportTest.java | 12 +-- .../OpenconfigVersionPositionTest.java | 23 +++--- .../openconfigver/OpenconfigVersionTest.java | 36 +++++---- .../yin/YinOpenconfigVersionTest.java | 15 ++-- .../yang/stmt/yin/YinFileHeaderStmtsTest.java | 6 +- .../yang/stmt/yin/YinFileIncludeStmtTest.java | 5 +- .../spi/source/ImpPrefixToNamespace.java | 6 +- .../spi/source/ModuleNameToNamespace.java | 6 +- .../parser/spi/source/PrefixToModule.java | 5 +- .../parser/spi/source/PrefixToModuleMap.java | 9 +-- .../source/QNameToStatementDefinition.java | 5 +- .../source/QNameToStatementDefinitionMap.java | 4 +- .../yang/xpath/impl/XPathParserTest.java | 8 +- 141 files changed, 647 insertions(+), 508 deletions(-) create mode 100644 yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java create mode 100644 yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java diff --git a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java index d756c9bdc8..8fd828442f 100644 --- a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java +++ b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java @@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import java.net.URI; import java.util.Set; import org.jaxen.Context; import org.jaxen.Function; @@ -29,6 +28,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -44,7 +44,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class BitIsSetXPathFunctionTest { private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory(); - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03")); + private static final QNameModule FOO_MODULE = + QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03")); private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container"); private static final QName MY_LIST = QName.create(FOO_MODULE, "my-list"); private static final QName FLAGS = QName.create(FOO_MODULE, "flags"); diff --git a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java index 43b867c6a4..a644b93c6b 100644 --- a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java +++ b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java @@ -18,13 +18,13 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import java.net.URI; import java.util.Map; import org.jaxen.Function; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -45,7 +45,8 @@ public class DerefXPathFunctionTest { private static JaxenSchemaContextFactory jaxenSchemaContextFactory = new JaxenSchemaContextFactory(); - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03")); + private static final QNameModule FOO_MODULE = + QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03")); private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container"); private static final QName MY_INNER_CONTAINER = QName.create(FOO_MODULE, "my-inner-container"); private static final QName MY_LIST = QName.create(FOO_MODULE, "my-list"); diff --git a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java index 54baeca70e..08520d9482 100644 --- a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java +++ b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java @@ -19,7 +19,6 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import java.net.URI; import org.jaxen.Context; import org.jaxen.Function; import org.jaxen.FunctionCallException; @@ -27,6 +26,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -42,7 +42,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class DerivedFromXPathFunctionTest { private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory(); - private static final QNameModule BAR_MODULE = QNameModule.create(URI.create("bar-ns"), Revision.of("2017-04-03")); + private static final QNameModule BAR_MODULE = + QNameModule.create(XMLNamespace.of("bar-ns"), Revision.of("2017-04-03")); private static final QName MY_CONTAINER = QName.create(BAR_MODULE, "my-container"); private static final QName MY_LIST = QName.create(BAR_MODULE, "my-list"); private static final QName KEY_LEAF = QName.create(BAR_MODULE, "key-leaf"); diff --git a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java index cc4841a786..a2c924581b 100644 --- a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java +++ b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java @@ -18,7 +18,6 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import java.net.URI; import org.jaxen.Context; import org.jaxen.Function; import org.jaxen.FunctionCallException; @@ -26,6 +25,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -41,7 +41,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class EnumValueXPathFunctionTest { private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory(); - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03")); + private static final QNameModule FOO_MODULE = + QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03")); private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container"); private static final QName ALARM = QName.create(FOO_MODULE, "alarm"); private static final QName SEVERITY = QName.create(FOO_MODULE, "severity"); diff --git a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java index 57781c2234..b3b05e2622 100644 --- a/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java +++ b/attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java @@ -18,7 +18,6 @@ import com.google.common.base.VerifyException; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import com.google.common.collect.Maps; -import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -34,6 +33,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -213,7 +213,7 @@ public class JaxenTest { } private void initQNames() { - this.moduleQName = QNameModule.create(URI.create("urn:opendaylight.test2"), Revision.of("2015-08-08")); + this.moduleQName = QNameModule.create(XMLNamespace.of("urn:opendaylight.test2"), Revision.of("2015-08-08")); this.rootQName = QName.create(moduleQName, "root"); this.listAQName = QName.create(moduleQName, "list-a"); this.listBQName = QName.create(moduleQName, "list-b"); diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsConstants.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsConstants.java index 84f6d0edd6..c591c12a8b 100644 --- a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsConstants.java +++ b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsConstants.java @@ -8,10 +8,10 @@ package org.opendaylight.yangtools.odlext.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -22,7 +22,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; */ public final class OpenDaylightExtensionsConstants { private static final String MODULE_NAME = "yang-ext"; - private static final URI MODULE_NAMESPACE = URI.create("urn:opendaylight:yang:extension:yang-ext"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:opendaylight:yang:extension:yang-ext").intern(); private static final Revision ORIGINAL_REVISION = Revision.of("2013-07-09"); /** diff --git a/yang/odlext-parser-support/src/test/java/org/opendaylight/yangtools/odlext/parser/Bug3874ExtensionTest.java b/yang/odlext-parser-support/src/test/java/org/opendaylight/yangtools/odlext/parser/Bug3874ExtensionTest.java index ae0c5942b2..75152be51c 100644 --- a/yang/odlext-parser-support/src/test/java/org/opendaylight/yangtools/odlext/parser/Bug3874ExtensionTest.java +++ b/yang/odlext-parser-support/src/test/java/org/opendaylight/yangtools/odlext/parser/Bug3874ExtensionTest.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.odlext.parser; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.net.URI; import java.util.Collection; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -18,6 +17,7 @@ import org.junit.Test; import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -58,7 +58,7 @@ public class Bug3874ExtensionTest { YangTextSchemaSource.forResource("/bugs/bug3874/yang-ext.yang"))) .buildEffective(); - QNameModule foo = QNameModule.create(URI.create("foo")); + QNameModule foo = QNameModule.create(XMLNamespace.of("foo")); QName myContainer2QName = QName.create(foo, "my-container-2"); QName myAnyXmlDataQName = QName.create(foo, "my-anyxml-data"); diff --git a/yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigConstants.java b/yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigConstants.java index dbf0c1c064..3c130c8bfa 100644 --- a/yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigConstants.java +++ b/yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigConstants.java @@ -8,11 +8,11 @@ package org.opendaylight.yangtools.openconfig.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -26,7 +26,7 @@ public final class OpenConfigConstants { private static final String MODULE_NAME = "yang-ext"; // Package-visible, because openconfig-version applies across all known revisions and needs to bind to all of them - static final URI MODULE_NAMESPACE = URI.create("http://openconfig.net/yang/openconfig-ext"); + static final XMLNamespace MODULE_NAMESPACE = XMLNamespace.of("http://openconfig.net/yang/openconfig-ext").intern(); // Initial revision, defining semantic-version private static final Revision SEMVER_REVISION = Revision.of("2015-10-09"); diff --git a/yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/NetconfConstants.java b/yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/NetconfConstants.java index 1b6e4a121a..14756f2cfd 100644 --- a/yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/NetconfConstants.java +++ b/yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/NetconfConstants.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.rfc6241.model.api; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -26,7 +26,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @NonNullByDefault public final class NetconfConstants { private static final String MODULE_NAME = "ietf-netconf"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:netconf:base:1.0"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0").intern(); private static final Revision RFC6241_REVISION = Revision.of("2011-06-01"); /** diff --git a/yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/NACMConstants.java b/yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/NACMConstants.java index e0e9fee36d..633ed57489 100644 --- a/yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/NACMConstants.java +++ b/yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/NACMConstants.java @@ -8,11 +8,11 @@ package org.opendaylight.yangtools.rfc6536.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @NonNullByDefault public final class NACMConstants { private static final String MODULE_NAME = "ietf-netconf-acm"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-netconf-acm"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-netconf-acm").intern(); private static final Revision RFC6536_REVISION = Revision.of("2012-02-22"); private static final Revision RFC8341_REVISION = Revision.of("2018-02-14"); diff --git a/yang/rfc6643-model-api/src/main/java/org/opendaylight/yangtools/rfc6643/model/api/IetfYangSmiv2Constants.java b/yang/rfc6643-model-api/src/main/java/org/opendaylight/yangtools/rfc6643/model/api/IetfYangSmiv2Constants.java index 0a54912ab7..25ad01d52c 100644 --- a/yang/rfc6643-model-api/src/main/java/org/opendaylight/yangtools/rfc6643/model/api/IetfYangSmiv2Constants.java +++ b/yang/rfc6643-model-api/src/main/java/org/opendaylight/yangtools/rfc6643/model/api/IetfYangSmiv2Constants.java @@ -9,17 +9,18 @@ package org.opendaylight.yangtools.rfc6643.model.api; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @Beta public final class IetfYangSmiv2Constants { private static final String MODULE_NAME = "ietf-yang-smiv2"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-smiv2"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-smiv2").intern(); private static final Revision RFC6643_REVISION = Revision.of("2012-06-22"); /** diff --git a/yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/MetadataConstants.java b/yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/MetadataConstants.java index c9a9eea931..b4f8adcb62 100644 --- a/yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/MetadataConstants.java +++ b/yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/MetadataConstants.java @@ -8,11 +8,11 @@ package org.opendaylight.yangtools.rfc7952.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @NonNullByDefault public final class MetadataConstants { private static final String MODULE_NAME = "ietf-yang-metadata"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-metadata"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-metadata").intern(); private static final Revision RFC7952_REVISION = Revision.of("2016-08-05"); /** diff --git a/yang/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java b/yang/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java index f013f6c0e8..9d548ac648 100644 --- a/yang/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java +++ b/yang/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java @@ -8,11 +8,11 @@ package org.opendaylight.yangtools.rfc8040.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @NonNullByDefault public final class YangDataConstants { private static final String MODULE_NAME = "ietf-restconf"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-restconf"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-restconf").intern(); private static final Revision RFC8040_REVISION = Revision.of("2017-01-26"); /** diff --git a/yang/rfc8040-parser-support/src/test/java/org/opendaylight/yangtools/rfc8040/parser/YangDataExtensionTest.java b/yang/rfc8040-parser-support/src/test/java/org/opendaylight/yangtools/rfc8040/parser/YangDataExtensionTest.java index 3cce9448b3..0be14ddf8d 100644 --- a/yang/rfc8040-parser-support/src/test/java/org/opendaylight/yangtools/rfc8040/parser/YangDataExtensionTest.java +++ b/yang/rfc8040-parser-support/src/test/java/org/opendaylight/yangtools/rfc8040/parser/YangDataExtensionTest.java @@ -17,7 +17,6 @@ import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableSet; import java.io.IOException; -import java.net.URI; import java.util.Collection; import java.util.Optional; import org.junit.AfterClass; @@ -27,6 +26,7 @@ import org.opendaylight.yangtools.rfc8040.model.api.YangDataSchemaNode; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; @@ -64,7 +64,7 @@ public class YangDataExtensionTest { "/yang-data-extension-test/ietf-restconf.yang"); private static final Revision REVISION = Revision.of("2017-06-01"); - private static final QNameModule FOO_QNAMEMODULE = QNameModule.create(URI.create("foo"), REVISION); + private static final QNameModule FOO_QNAMEMODULE = QNameModule.create(XMLNamespace.of("foo"), REVISION); private static final QName MY_YANG_DATA_A = QName.create(FOO_QNAMEMODULE, "my-yang-data-a"); private static final QName MY_YANG_DATA_B = QName.create(FOO_QNAMEMODULE, "my-yang-data-b"); diff --git a/yang/rfc8528-data-api/src/main/java/org/opendaylight/yangtools/rfc8528/data/api/YangLibraryConstants.java b/yang/rfc8528-data-api/src/main/java/org/opendaylight/yangtools/rfc8528/data/api/YangLibraryConstants.java index d5e82a114c..26924c973a 100644 --- a/yang/rfc8528-data-api/src/main/java/org/opendaylight/yangtools/rfc8528/data/api/YangLibraryConstants.java +++ b/yang/rfc8528-data-api/src/main/java/org/opendaylight/yangtools/rfc8528/data/api/YangLibraryConstants.java @@ -12,10 +12,10 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import java.net.URI; import java.util.Arrays; import java.util.Optional; import org.eclipse.jdt.annotation.NonNullByDefault; +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * Constants related to {@code ietf-yang-library.yang}. As schema-mount works in concert with yang-library, we need @@ -38,7 +38,8 @@ public final class YangLibraryConstants { * The namespace assigned to {@code ietf-yang-library}. This constant is required for XML-like parsers, using * XML namespaces to reference modules. */ - public static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-library"); + public static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-library"); /** * The module name assigned to {@code ietf-yang-library}. This constant is required for JSON-like parsers, using * module names to reference modules. diff --git a/yang/rfc8528-model-api/src/main/java/org/opendaylight/yangtools/rfc8528/model/api/SchemaMountConstants.java b/yang/rfc8528-model-api/src/main/java/org/opendaylight/yangtools/rfc8528/model/api/SchemaMountConstants.java index 1fdb4be3db..17d1bda2ae 100644 --- a/yang/rfc8528-model-api/src/main/java/org/opendaylight/yangtools/rfc8528/model/api/SchemaMountConstants.java +++ b/yang/rfc8528-model-api/src/main/java/org/opendaylight/yangtools/rfc8528/model/api/SchemaMountConstants.java @@ -8,11 +8,11 @@ package org.opendaylight.yangtools.rfc8528.model.api; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Collection; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @NonNullByDefault public final class SchemaMountConstants { private static final String MODULE_NAME = "ietf-yang-schema-mount"; - private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"); + private static final XMLNamespace MODULE_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount").intern(); private static final Revision RFC8528_REVISION = Revision.of("2019-01-14"); /** diff --git a/yang/rfc8528-parser-support/src/test/java/org/opendaylight/yangtools/rfc8528/parser/MountPointTest.java b/yang/rfc8528-parser-support/src/test/java/org/opendaylight/yangtools/rfc8528/parser/MountPointTest.java index 6a103b232f..6d36771fce 100644 --- a/yang/rfc8528-parser-support/src/test/java/org/opendaylight/yangtools/rfc8528/parser/MountPointTest.java +++ b/yang/rfc8528-parser-support/src/test/java/org/opendaylight/yangtools/rfc8528/parser/MountPointTest.java @@ -12,7 +12,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import java.io.IOException; -import java.net.URI; import java.util.List; import java.util.stream.Collectors; import org.junit.AfterClass; @@ -21,6 +20,7 @@ import org.junit.Test; import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; @@ -34,7 +34,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; public class MountPointTest { - private static final QNameModule EXAMPLE_USES = QNameModule.create(URI.create("http://example.org/example-uses")); + private static final QNameModule EXAMPLE_USES = + QNameModule.create(XMLNamespace.of("http://example.org/example-uses")); private static final QName EXAMPLE_CONT = QName.create(EXAMPLE_USES, "cont"); private static final QName EXAMPLE_GRP = QName.create(EXAMPLE_USES, "grp"); private static final QName EXAMPLE_GRP_CONT = QName.create(EXAMPLE_USES, "grp-cont"); diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index 41672ca7e1..d74786b910 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -15,8 +15,6 @@ import com.google.common.collect.Interners; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; import java.util.Objects; import java.util.Optional; import java.util.regex.Matcher; @@ -104,7 +102,7 @@ public final class QName extends AbstractQName implements Comparable { * @param localName * YANG schema identifier */ - private QName(final URI namespace, final String localName) { + private QName(final XMLNamespace namespace, final String localName) { this(QNameModule.create(namespace), checkLocalName(localName)); } @@ -118,7 +116,7 @@ public final class QName extends AbstractQName implements Comparable { } matcher = QNAME_PATTERN_NO_REVISION.matcher(input); if (matcher.matches()) { - final URI namespace = URI.create(matcher.group(1)); + final XMLNamespace namespace = XMLNamespace.of(matcher.group(1)); final String localName = matcher.group(2); return new QName(namespace, localName); } @@ -150,7 +148,7 @@ public final class QName extends AbstractQName implements Comparable { * @param localName Local name part of QName. MUST NOT BE null. * @return Instance of QName */ - public static @NonNull QName create(final URI namespace, final @Nullable Revision revision, + public static @NonNull QName create(final XMLNamespace namespace, final @Nullable Revision revision, final String localName) { return create(QNameModule.create(namespace, revision), localName); } @@ -163,7 +161,7 @@ public final class QName extends AbstractQName implements Comparable { * @param localName Local name part of QName. MUST NOT BE null. * @return Instance of QName */ - public static @NonNull QName create(final URI namespace, final Optional revision, + public static @NonNull QName create(final XMLNamespace namespace, final Optional revision, final String localName) { return create(QNameModule.create(namespace, revision), localName); } @@ -177,7 +175,7 @@ public final class QName extends AbstractQName implements Comparable { * @return Instance of QName */ public static @NonNull QName create(final String namespace, final String localName, final Revision revision) { - return create(QNameModule.create(parseNamespace(namespace), revision), localName); + return create(QNameModule.create(XMLNamespace.of(namespace), revision), localName); } /** @@ -192,7 +190,7 @@ public final class QName extends AbstractQName implements Comparable { * to {@code YYYY-mm-dd}. */ public static @NonNull QName create(final String namespace, final String revision, final String localName) { - return create(parseNamespace(namespace), Revision.of(revision), localName); + return create(XMLNamespace.of(namespace), Revision.of(revision), localName); } /** @@ -205,7 +203,7 @@ public final class QName extends AbstractQName implements Comparable { * @throws IllegalArgumentException If {@code namespace} is not valid URI. */ public static @NonNull QName create(final String namespace, final String localName) { - return create(parseNamespace(namespace), localName); + return create(XMLNamespace.of(namespace), localName); } /** @@ -217,7 +215,7 @@ public final class QName extends AbstractQName implements Comparable { * @throws NullPointerException If any of parameters is null. * @throws IllegalArgumentException If namespace is not valid URI. */ - public static @NonNull QName create(final URI namespace, final String localName) { + public static @NonNull QName create(final XMLNamespace namespace, final String localName) { return new QName(namespace, localName); } @@ -268,7 +266,7 @@ public final class QName extends AbstractQName implements Comparable { * * @return XMLNamespace assigned to the YANG module. */ - public @NonNull URI getNamespace() { + public @NonNull XMLNamespace getNamespace() { return module.getNamespace(); } @@ -322,14 +320,6 @@ public final class QName extends AbstractQName implements Comparable { return Objects.equals(getLocalName(), other.getLocalName()) && module.equals(other.module); } - private static @NonNull URI parseNamespace(final String namespace) { - try { - return new URI(namespace); - } catch (final URISyntaxException ue) { - throw new IllegalArgumentException("Namespace '" + namespace + "' is not a valid URI", ue); - } - } - @Override public @NonNull String toString() { final StringBuilder sb = new StringBuilder().append(QNAME_LEFT_PARENTHESIS).append(getNamespace()); diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java index 8051db9c08..0221ecc821 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java @@ -16,7 +16,6 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.io.Serializable; -import java.net.URI; import java.util.Objects; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; @@ -29,12 +28,12 @@ public final class QNameModule implements Comparable, Immutable, Se private static final Interner INTERNER = Interners.newWeakInterner(); private static final long serialVersionUID = 3L; - private final @NonNull URI namespace; + private final @NonNull XMLNamespace namespace; private final @Nullable Revision revision; private transient int hash = 0; - private QNameModule(final URI namespace, final @Nullable Revision revision) { + private QNameModule(final XMLNamespace namespace, final @Nullable Revision revision) { this.namespace = requireNonNull(namespace); this.revision = revision; } @@ -56,7 +55,7 @@ public final class QNameModule implements Comparable, Immutable, Se * @return A new, potentially shared, QNameModule instance * @throws NullPointerException if any argument is null */ - public static @NonNull QNameModule create(final URI namespace, final Optional revision) { + public static @NonNull QNameModule create(final XMLNamespace namespace, final Optional revision) { return new QNameModule(namespace, revision.orElse(null)); } @@ -67,7 +66,7 @@ public final class QNameModule implements Comparable, Immutable, Se * @return A new, potentially shared, QNameModule instance * @throws NullPointerException if {@code namespace} is null */ - public static @NonNull QNameModule create(final URI namespace) { + public static @NonNull QNameModule create(final XMLNamespace namespace) { return new QNameModule(namespace, null); } @@ -79,7 +78,7 @@ public final class QNameModule implements Comparable, Immutable, Se * @return A new, potentially shared, QNameModule instance * @throws NullPointerException if any argument is null */ - public static @NonNull QNameModule create(final URI namespace, final @Nullable Revision revision) { + public static @NonNull QNameModule create(final XMLNamespace namespace, final @Nullable Revision revision) { return new QNameModule(namespace, revision); } @@ -94,15 +93,15 @@ public final class QNameModule implements Comparable, Immutable, Se public static @NonNull QNameModule readFrom(final DataInput in) throws IOException { final String namespace = in.readUTF(); final String revision = in.readUTF(); - return new QNameModule(URI.create(namespace), revision.isEmpty() ? null : Revision.of(revision)); + return new QNameModule(XMLNamespace.of(namespace), revision.isEmpty() ? null : Revision.of(revision)); } /** * Returns the namespace of the module which is specified as argument of YANG Module {@code namespace} keyword. * - * @return URI format of the namespace of the module + * @return XMLNamespace of the namespace of the module */ - public @NonNull URI getNamespace() { + public @NonNull XMLNamespace getNamespace() { return namespace; } diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java new file mode 100644 index 0000000000..f7292db2b1 --- /dev/null +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.common; + +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.Interner; +import com.google.common.collect.Interners; +import java.io.Serializable; +import java.net.URI; +import java.net.URISyntaxException; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.concepts.Immutable; + +/** + * A simple type capture of {@code namespace} statement's argument according to + * RFC6020. + */ +public final class XMLNamespace implements Comparable, Immutable, Serializable { + private static final Interner INTERNER = Interners.newWeakInterner(); + private static final long serialVersionUID = 1L; + + private final String namespace; + + private XMLNamespace(final String namespace) { + this.namespace = requireNonNull(namespace); + } + + // FIXME: add documentation + public static @NonNull XMLNamespace of(final String namespace) { + try { + // Validation only + new URI(namespace); + } catch (final URISyntaxException e) { + throw new IllegalArgumentException("Namespace '" + namespace + "' is not a valid URI", e); + } + + return new XMLNamespace(namespace); + } + + /** + * Return an interned reference to a equivalent XMLNamespace. + * + * @return Interned reference, or this object if it was interned. + */ + public @NonNull XMLNamespace intern() { + return INTERNER.intern(this); + } + + @Override + @SuppressWarnings("checkstyle:parameterName") + public int compareTo(final XMLNamespace o) { + return namespace.compareTo(o.namespace); + } + + @Override + public int hashCode() { + return namespace.hashCode(); + } + + @Override + public boolean equals(final Object obj) { + return this == obj || obj instanceof XMLNamespace && namespace.equals(((XMLNamespace) obj).namespace); + } + + @Override + public String toString() { + return namespace; + } + + Object writeReplace() { + return new XNv1(this); + } +} diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java new file mode 100644 index 0000000000..621bc13684 --- /dev/null +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.common; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +/** + * Externalizable proxy for {@link XMLNamespace}. + */ +final class XNv1 implements Externalizable { + + private XMLNamespace namespace; + + @SuppressWarnings("checkstyle:redundantModifier") + public XNv1() { + // For Externalizable + } + + XNv1(final XMLNamespace namespace) { + this.namespace = requireNonNull(namespace); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeUTF(namespace.toString()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + try { + namespace = XMLNamespace.of(in.readUTF()); + } catch (IllegalArgumentException e) { + throw new IOException("Invalid namespace", e); + } + } + + Object readResolve() { + return verifyNotNull(namespace); + } +} diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangConstants.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangConstants.java index 2445c2ae20..61b63b6695 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangConstants.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangConstants.java @@ -39,7 +39,7 @@ public final class YangConstants { /** * YANG namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format. */ - public static final URI RFC6020_YANG_NAMESPACE = URI.create(RFC6020_YANG_NAMESPACE_STRING); + public static final XMLNamespace RFC6020_YANG_NAMESPACE = XMLNamespace.of(RFC6020_YANG_NAMESPACE_STRING).intern(); /** * Base QNameModule for all YANG statements. @@ -69,7 +69,7 @@ public final class YangConstants { /** * YIN namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format. */ - public static final URI RFC6020_YIN_NAMESPACE = URI.create(RFC6020_YIN_NAMESPACE_STRING); + public static final XMLNamespace RFC6020_YIN_NAMESPACE = XMLNamespace.of(RFC6020_YIN_NAMESPACE_STRING).intern(); /** * Base QNameModule for all YIN statements. diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContextTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContextTest.java index f48f6192d0..28b56436d5 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContextTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContextTest.java @@ -17,14 +17,13 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.net.URI; import java.util.Optional; import org.junit.Test; public class BiMapYangNamespaceContextTest { - private static final QNameModule FOO = QNameModule.create(URI.create("foo")); - private static final QNameModule BAR = QNameModule.create(URI.create("bar")); - private static final QNameModule BAZ = QNameModule.create(URI.create("baz")); + private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo")); + private static final QNameModule BAR = QNameModule.create(XMLNamespace.of("bar")); + private static final QNameModule BAZ = QNameModule.create(XMLNamespace.of("baz")); private final BiMapYangNamespaceContext context = new BiMapYangNamespaceContext( ImmutableBiMap.of("foo", FOO, "bar", BAR)); diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java index dabe8d8944..05eace2556 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java @@ -11,7 +11,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; -import java.net.URI; import java.net.URISyntaxException; import org.junit.Test; @@ -19,7 +18,7 @@ public class QNameTest { private static final String NAMESPACE = "urn:foo"; private static final String REVISION = "2013-12-24"; private static final String LOCALNAME = "bar"; - private static final URI NS = URI.create(NAMESPACE); + private static final XMLNamespace NS = XMLNamespace.of(NAMESPACE); @Test public void testStringSerialization() throws Exception { @@ -66,13 +65,13 @@ public class QNameTest { assertTrue(qb.compareTo(qa) > 0); // compare with 1 null revision - qa = QName.create(URI.create(A), A); - qb = QName.create(URI.create(A), Revision.of(REVISION), A); + qa = QName.create(XMLNamespace.of(A), A); + qb = QName.create(XMLNamespace.of(A), Revision.of(REVISION), A); assertTrue(qa.compareTo(qb) < 0); assertTrue(qb.compareTo(qa) > 0); // compare with both null revision - qb = QName.create(URI.create(A), A); + qb = QName.create(XMLNamespace.of(A), A); assertTrue(qa.compareTo(qb) == 0); assertTrue(qb.compareTo(qa) == 0); } diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/YangConstantsTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/YangConstantsTest.java index 26bf20b093..c637b52006 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/YangConstantsTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/YangConstantsTest.java @@ -9,17 +9,15 @@ package org.opendaylight.yangtools.yang.common; import static org.junit.Assert.assertEquals; -import java.net.URI; import org.junit.Test; public class YangConstantsTest { - @Test public void testYangConstants() { - final URI uriYang = YangConstants.RFC6020_YANG_NAMESPACE; - final URI uriYin = YangConstants.RFC6020_YIN_NAMESPACE; - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:1"), uriYang); - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:yin:1"), uriYin); + final XMLNamespace uriYang = YangConstants.RFC6020_YANG_NAMESPACE; + final XMLNamespace uriYin = YangConstants.RFC6020_YIN_NAMESPACE; + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:1"), uriYang); + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:yin:1"), uriYin); assertEquals(QNameModule.create(uriYang).intern(), YangConstants.RFC6020_YANG_MODULE); assertEquals(QNameModule.create(uriYin).intern(), YangConstants.RFC6020_YIN_MODULE); } diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/DatastoreIdentifier.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/DatastoreIdentifier.java index 33590250bb..172bbc8d0d 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/DatastoreIdentifier.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/DatastoreIdentifier.java @@ -17,11 +17,11 @@ import com.google.common.collect.ImmutableSet; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.net.URI; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.concepts.WritableObject; import org.opendaylight.yangtools.util.AbstractIdentifier; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * Identifier of a RFC8342 (NMDA) datastore. This class is backed by the QName of the datastore, i.e. @@ -33,7 +33,8 @@ import org.opendaylight.yangtools.yang.common.QName; public final class DatastoreIdentifier extends AbstractIdentifier implements WritableObject { private static final long serialVersionUID = 1L; - private static final URI IETF_DATASTORES_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-datastores"); + private static final XMLNamespace IETF_DATASTORES_NAMESPACE = + XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-datastores").intern(); private static final ImmutableSet KNOWN_ABSTRACTS = ImmutableSet.of("datastore", "conventional", "dynamic"); private static final LoadingCache CACHE = CacheBuilder.newBuilder().weakValues() diff --git a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java index 5d8f678def..e2298784bb 100644 --- a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java +++ b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java @@ -13,7 +13,6 @@ import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import com.google.common.collect.UnmodifiableIterator; -import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -22,6 +21,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; @@ -72,7 +72,7 @@ public class PathArgumentListTest { @Test public void testPathArgument() { - final QNameModule qNameModule = QNameModule.create(URI.create("urn:opendaylight.test2"), + final QNameModule qNameModule = QNameModule.create(XMLNamespace.of("urn:opendaylight.test2"), Revision.of("2015-08-08")); final QName qNameRoot = QName.create(qNameModule, "root"); final QName qNameList = QName.create(qNameModule, "list"); diff --git a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java index 2941d473bd..2d62b9b8d5 100644 --- a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java +++ b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java @@ -17,7 +17,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import java.io.IOException; -import java.net.URI; import java.util.Set; import javax.xml.transform.dom.DOMSource; import org.junit.Before; @@ -25,6 +24,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue; @@ -53,7 +53,7 @@ public class NormalizedNodeWriterTest { @Before public void setUp() { - bazModule = QNameModule.create(URI.create("baz-namespace"), Revision.of("1970-01-01")); + bazModule = QNameModule.create(XMLNamespace.of("baz-namespace"), Revision.of("1970-01-01")); myKeyedList = QName.create(bazModule, "my-keyed-list"); myKeyLeaf = QName.create(bazModule, "my-key-leaf"); myLeafList = QName.create(bazModule, "my-leaf-list"); diff --git a/yang/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/QNameFactory.java b/yang/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/QNameFactory.java index a8065a22c7..13680b494b 100644 --- a/yang/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/QNameFactory.java +++ b/yang/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/QNameFactory.java @@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import java.net.URI; import java.util.Objects; import java.util.concurrent.ExecutionException; import org.eclipse.jdt.annotation.NonNull; @@ -21,6 +20,7 @@ import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; final class QNameFactory { @@ -116,7 +116,7 @@ final class QNameFactory { } QNameModule toQNameModule() { - return QNameModule.create(URI.create(namespace), Revision.ofNullable(revision)); + return QNameModule.create(XMLNamespace.of(namespace), Revision.ofNullable(revision)); } } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java index 0263ef9dad..3daa055401 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java @@ -12,8 +12,8 @@ import static java.util.Objects.requireNonNull; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; import java.util.Iterator; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; @@ -41,7 +41,7 @@ abstract class JSONInstanceIdentifierCodec extends AbstractModuleStringInstanceI } @Override - protected final String prefixForNamespace(final URI namespace) { + protected final String prefixForNamespace(final XMLNamespace namespace) { final Iterator modules = context.findModules(namespace).iterator(); return modules.hasNext() ? modules.next().getName() : null; } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java index 21ab3bd8bc..dcbb94b366 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java @@ -16,13 +16,13 @@ import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; import java.util.regex.Pattern; import javax.xml.transform.dom.DOMSource; import org.checkerframework.checker.regex.qual.Regex; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier; import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -129,7 +129,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory, - final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) { + final SchemaPath path, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs)); } @@ -156,7 +156,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory, - final Absolute path, final URI initialNs, final JsonWriter jsonWriter) { + final Absolute path, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs)); } @@ -183,7 +183,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory, - final DataNodeContainer rootNode, final URI initialNs, final JsonWriter jsonWriter) { + final DataNodeContainer rootNode, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Exclusive(codecFactory, SchemaTracker.create(rootNode), jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs)); } @@ -208,7 +208,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory, - final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) { + final SchemaPath path, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Nested(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter, new JSONStreamWriterSharedRootContext(initialNs)); } @@ -233,7 +233,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory, - final Absolute path, final URI initialNs, final JsonWriter jsonWriter) { + final Absolute path, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Nested(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter, new JSONStreamWriterSharedRootContext(initialNs)); } @@ -258,7 +258,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt * @return A stream writer instance */ public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory, - final DataNodeContainer rootNode, final URI initialNs, final JsonWriter jsonWriter) { + final DataNodeContainer rootNode, final XMLNamespace initialNs, final JsonWriter jsonWriter) { return new Nested(codecFactory, SchemaTracker.create(rootNode), jsonWriter, new JSONStreamWriterSharedRootContext(initialNs)); } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java index 9f34573162..80b4fa6fe2 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java @@ -14,11 +14,11 @@ import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; @@ -94,7 +94,7 @@ abstract class JSONStreamWriterContext { * * @return Namespace as URI */ - protected abstract @NonNull URI getNamespace(); + protected abstract @NonNull XMLNamespace getNamespace(); /** * Emit the start of an element. diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java index 7fed467695..314b87287a 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.codec.gson; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; final class JSONStreamWriterExclusiveRootContext extends JSONStreamWriterRootContext { - JSONStreamWriterExclusiveRootContext(final URI namespace) { + JSONStreamWriterExclusiveRootContext(final XMLNamespace namespace) { super(namespace, true); } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterQNameContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterQNameContext.java index 3c00d02753..67132b8904 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterQNameContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterQNameContext.java @@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.codec.gson; import static java.util.Objects.requireNonNull; -import java.net.URI; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * Abstract base class for {@link JSONNormalizedNodeStreamWriter} recursion @@ -34,7 +34,7 @@ abstract class JSONStreamWriterQNameContext extends JSONStreamWriterContext { } @Override - protected final URI getNamespace() { + protected final XMLNamespace getNamespace() { return qname.getNamespace(); } } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterRootContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterRootContext.java index 0ac5aad36b..912fa4ea72 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterRootContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterRootContext.java @@ -7,14 +7,14 @@ */ package org.opendaylight.yangtools.yang.data.codec.gson; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * The root node of a particular {@link JSONNormalizedNodeStreamWriter} instance. * It holds the base namespace and can never be removed from the stack. */ abstract class JSONStreamWriterRootContext extends JSONStreamWriterURIContext { - JSONStreamWriterRootContext(final URI namespace, final boolean mandatory) { + JSONStreamWriterRootContext(final XMLNamespace namespace, final boolean mandatory) { super(null, namespace, mandatory); } } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterSharedRootContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterSharedRootContext.java index 858637af2b..96a704586e 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterSharedRootContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterSharedRootContext.java @@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.data.codec.gson; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; final class JSONStreamWriterSharedRootContext extends JSONStreamWriterRootContext { - JSONStreamWriterSharedRootContext(final URI namespace) { + JSONStreamWriterSharedRootContext(final XMLNamespace namespace) { super(namespace, false); } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java index 212c077ae4..889f737c1c 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java @@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.codec.gson; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; /** @@ -17,19 +17,20 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; * recursion. It only tracks the namespace associated with this node. */ abstract class JSONStreamWriterURIContext extends JSONStreamWriterContext { - private final URI namespace; + private final XMLNamespace namespace; - JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final URI namespace) { + JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final XMLNamespace namespace) { this(parent, namespace, false); } - JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final URI namespace, final boolean mandatory) { + JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final XMLNamespace namespace, + final boolean mandatory) { super(parent, mandatory); this.namespace = namespace; } @Override - protected final URI getNamespace() { + protected final XMLNamespace getNamespace() { return namespace; } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java index 371d98c045..a1d2e49bb7 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java @@ -21,7 +21,6 @@ import java.io.Closeable; import java.io.EOFException; import java.io.Flushable; import java.io.IOException; -import java.net.URI; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.ArrayDeque; import java.util.Deque; @@ -32,6 +31,7 @@ import java.util.Set; import javax.xml.transform.dom.DOMSource; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.util.xml.UntrustedXML; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema; import org.opendaylight.yangtools.yang.data.util.AnyXmlNodeDataWithSchema; @@ -67,7 +67,7 @@ public final class JsonParserStream implements Closeable, Flushable { static final String ANYXML_ARRAY_ELEMENT_ID = "array-element"; private static final Logger LOG = LoggerFactory.getLogger(JsonParserStream.class); - private final Deque namespaces = new ArrayDeque<>(); + private final Deque namespaces = new ArrayDeque<>(); private final NormalizedNodeStreamWriter writer; private final JSONCodecFactory codecs; private final DataSchemaNode parentNode; @@ -280,9 +280,10 @@ public final class JsonParserStream implements Closeable, Flushable { while (in.hasNext()) { final String jsonElementName = in.nextName(); final DataSchemaNode parentSchema = parent.getSchema(); - final Entry namespaceAndName = resolveNamespace(jsonElementName, parentSchema); + final Entry namespaceAndName = + resolveNamespace(jsonElementName, parentSchema); final String localName = namespaceAndName.getKey(); - final URI namespace = namespaceAndName.getValue(); + final XMLNamespace namespace = namespaceAndName.getValue(); if (lenient && (localName == null || namespace == null)) { LOG.debug("Schema node with name {} was not found under {}", localName, parentSchema.getQName()); @@ -349,15 +350,15 @@ public final class JsonParserStream implements Closeable, Flushable { namespaces.pop(); } - private void addNamespace(final URI namespace) { + private void addNamespace(final XMLNamespace namespace) { namespaces.push(namespace); } - private Entry resolveNamespace(final String childName, final DataSchemaNode dataSchemaNode) { + private Entry resolveNamespace(final String childName, final DataSchemaNode dataSchemaNode) { final int lastIndexOfColon = childName.lastIndexOf(':'); String moduleNamePart = null; String nodeNamePart = null; - URI namespace = null; + XMLNamespace namespace = null; if (lastIndexOfColon != -1) { moduleNamePart = childName.substring(0, lastIndexOfColon); nodeNamePart = childName.substring(lastIndexOfColon + 1); @@ -370,7 +371,7 @@ public final class JsonParserStream implements Closeable, Flushable { } if (namespace == null) { - final Set potentialUris = resolveAllPotentialNamespaces(nodeNamePart, dataSchemaNode); + final Set potentialUris = resolveAllPotentialNamespaces(nodeNamePart, dataSchemaNode); if (potentialUris.contains(getCurrentNamespace())) { namespace = getCurrentNamespace(); } else if (potentialUris.size() == 1) { @@ -387,9 +388,9 @@ public final class JsonParserStream implements Closeable, Flushable { return new SimpleImmutableEntry<>(nodeNamePart, namespace); } - private String toModuleNames(final Set potentialUris) { + private String toModuleNames(final Set potentialUris) { final StringBuilder builder = new StringBuilder(); - for (final URI potentialUri : potentialUris) { + for (final XMLNamespace potentialUri : potentialUris) { builder.append('\n'); //FIXME how to get information about revision from JSON input? currently first available is used. builder.append(codecs.getEffectiveModelContext().findModules(potentialUri).iterator().next().getName()); @@ -397,8 +398,9 @@ public final class JsonParserStream implements Closeable, Flushable { return builder.toString(); } - private Set resolveAllPotentialNamespaces(final String elementName, final DataSchemaNode dataSchemaNode) { - final Set potentialUris = new HashSet<>(); + private Set resolveAllPotentialNamespaces(final String elementName, + final DataSchemaNode dataSchemaNode) { + final Set potentialUris = new HashSet<>(); final Set choices = new HashSet<>(); if (dataSchemaNode instanceof DataNodeContainer) { for (final DataSchemaNode childSchemaNode : ((DataNodeContainer) dataSchemaNode).getChildNodes()) { @@ -418,7 +420,7 @@ public final class JsonParserStream implements Closeable, Flushable { return potentialUris; } - private URI getCurrentNamespace() { + private XMLNamespace getCurrentNamespace() { return namespaces.peek(); } diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java index 41a34b3db9..b1aed2332f 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java @@ -18,7 +18,6 @@ import java.io.FileReader; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; -import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.Base64; @@ -28,6 +27,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; @@ -42,7 +42,7 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class Bug5446Test { - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2015-11-05")); + private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-11-05")); private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root"); private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address"); private static EffectiveModelContext schemaContext; diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java index 960ccdce46..7d25227d46 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java @@ -16,10 +16,10 @@ import java.io.FileReader; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; -import java.net.URI; import java.nio.charset.StandardCharsets; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -65,7 +65,7 @@ public class Bug7246Test { final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter.createExclusiveWriter( JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext), path, - URI.create(NS), JsonWriterFactory.createJsonWriter(writer, 2)); + XMLNamespace.of(NS), JsonWriterFactory.createJsonWriter(writer, 2)); final NormalizedNodeWriter nodeWriter = NormalizedNodeWriter.forStreamWriter(jsonStream); nodeWriter.write(inputStructure); diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java index ba6ede5e17..ae2371876b 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java @@ -23,7 +23,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.io.StringReader; -import java.net.URI; import java.net.URISyntaxException; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -31,6 +30,7 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -50,8 +50,8 @@ import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefi import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class Bug8083Test { - private static final QNameModule FOOMOD = QNameModule.create(URI.create("http://example.com/foomod")); - private static final QNameModule BARMOD = QNameModule.create(URI.create("http://example.com/barmod")); + private static final QNameModule FOOMOD = QNameModule.create(XMLNamespace.of("http://example.com/foomod")); + private static final QNameModule BARMOD = QNameModule.create(XMLNamespace.of("http://example.com/barmod")); private static final QName FOO_QNAME = QName.create(FOOMOD, "foo"); private static final QName FOOLIST_QNAME = QName.create(FOOMOD, "foo-list"); diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java index 12c02cd16a..61e1c20ca8 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.codec.gson; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import java.net.URI; import java.util.Arrays; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -31,10 +31,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; public final class TestingNormalizedNodeStructuresCreator { - private static final QNameModule COMPLEX_JSON = QNameModule.create(URI.create("ns:complex:json"), - Revision.of("2014-08-11")); - private static final QNameModule COMPLEX_JSON_AUG = QNameModule.create(URI.create("ns:complex:json:augmentation"), - Revision.of("2014-08-14")); + private static final QNameModule COMPLEX_JSON = + QNameModule.create(XMLNamespace.of("ns:complex:json"), Revision.of("2014-08-11")); + private static final QNameModule COMPLEX_JSON_AUG = + QNameModule.create(XMLNamespace.of("ns:complex:json:augmentation"), Revision.of("2014-08-14")); private TestingNormalizedNodeStructuresCreator() { throw new UnsupportedOperationException(); diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/IdentityrefXmlCodec.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/IdentityrefXmlCodec.java index e0d9b7d1ec..e1b9506da2 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/IdentityrefXmlCodec.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/IdentityrefXmlCodec.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import java.net.URI; import java.util.Iterator; import java.util.Map.Entry; import javax.xml.namespace.NamespaceContext; @@ -18,6 +17,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.util.codec.IdentityCodecUtil; import org.opendaylight.yangtools.yang.data.util.codec.QNameCodecUtil; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @@ -45,7 +45,8 @@ final class IdentityrefXmlCodec implements XmlCodec { } final String prefixedNS = ctx.getNamespaceURI(prefix); - final Iterator modules = schemaContext.findModules(URI.create(prefixedNS)).iterator(); + final Iterator modules = + schemaContext.findModules(XMLNamespace.of(prefixedNS)).iterator(); checkArgument(modules.hasNext(), "Could not find module for namespace %s", prefixedNS); return modules.next().getQNameModule(); }).getQName(); @@ -56,7 +57,7 @@ final class IdentityrefXmlCodec implements XmlCodec { final RandomPrefix prefixes = new RandomPrefix(ctx.getNamespaceContext()); final String str = QNameCodecUtil.encodeQName(value, uri -> prefixes.encodePrefix(uri.getNamespace())); - for (Entry e : prefixes.getPrefixes()) { + for (Entry e : prefixes.getPrefixes()) { ctx.writeNamespace(e.getValue(), e.getKey().toString()); } ctx.writeCharacters(str); diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefix.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefix.java index 674efb1908..bc3213b9e9 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefix.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefix.java @@ -12,10 +12,10 @@ import static com.google.common.base.Preconditions.checkArgument; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import java.net.URI; import java.util.Map.Entry; import javax.xml.XMLConstants; import javax.xml.namespace.NamespaceContext; +import org.opendaylight.yangtools.yang.common.XMLNamespace; class RandomPrefix { // 32 characters, carefully chosen @@ -26,18 +26,18 @@ class RandomPrefix { private int counter = 0; // BiMap to make values lookup faster - private final BiMap prefixes = HashBiMap.create(); + private final BiMap prefixes = HashBiMap.create(); private final NamespaceContext context; RandomPrefix(final NamespaceContext context) { this.context = context; } - Iterable> getPrefixes() { + Iterable> getPrefixes() { return prefixes.entrySet(); } - String encodePrefix(final URI namespace) { + String encodePrefix(final XMLNamespace namespace) { String prefix = prefixes.get(namespace); if (prefix != null) { return prefix; diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixInstanceIdentifierSerializer.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixInstanceIdentifierSerializer.java index 68a5ae20bc..1fb1cf5773 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixInstanceIdentifierSerializer.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixInstanceIdentifierSerializer.java @@ -7,11 +7,11 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import java.net.URI; import java.util.Map.Entry; import javax.xml.namespace.NamespaceContext; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.util.AbstractStringInstanceIdentifierCodec; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @@ -26,12 +26,12 @@ final class RandomPrefixInstanceIdentifierSerializer extends AbstractStringInsta prefixes = new RandomPrefix(nsContext); } - Iterable> getPrefixes() { + Iterable> getPrefixes() { return prefixes.getPrefixes(); } @Override - protected String prefixForNamespace(final URI namespace) { + protected String prefixForNamespace(final XMLNamespace namespace) { return prefixes.encodePrefix(namespace); } diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamWriterUtils.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamWriterUtils.java index c929dcee20..32ad7d5233 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamWriterUtils.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamWriterUtils.java @@ -10,10 +10,10 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; -import java.net.URI; import java.util.Map.Entry; import javax.xml.stream.XMLStreamException; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; @@ -42,7 +42,7 @@ final class SchemaAwareXMLStreamWriterUtils extends XMLStreamWriterUtils impleme writer.getNamespaceContext()); String serializedValue = iiCodec.serialize(value); - for (Entry e : iiCodec.getPrefixes()) { + for (Entry e : iiCodec.getPrefixes()) { writer.writeNamespace(e.getValue(), e.getKey().toString()); } diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java index 24949d37a8..28b18398b5 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java @@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.Strings; import java.io.IOException; -import java.net.URI; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import javax.xml.XMLConstants; @@ -21,6 +20,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata; import org.opendaylight.yangtools.yang.data.util.SingleChildDataNodeContainer; import org.slf4j.Logger; @@ -117,7 +117,7 @@ final class StreamWriterFacade extends ValueWriter { } } - String getPrefix(final URI uri, final String str) throws XMLStreamException { + String getPrefix(final XMLNamespace uri, final String str) throws XMLStreamException { final String prefix = writer.getPrefix(str); if (prefix != null) { return prefix; diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java index c2e0961c83..ab7255b3f0 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java @@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableMap; import java.io.Closeable; import java.io.Flushable; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.Deque; @@ -52,6 +51,7 @@ import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode; import org.opendaylight.yangtools.rfc8528.model.api.SchemaMountConstants; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.util.AbstractMountPointDataWithSchema; import org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema; @@ -110,7 +110,7 @@ public final class XmlParserStream implements Closeable, Flushable { * annotations. */ @Deprecated - public static final QNameModule LEGACY_ATTRIBUTE_NAMESPACE = QNameModule.create(URI.create("")).intern(); + public static final QNameModule LEGACY_ATTRIBUTE_NAMESPACE = QNameModule.create(XMLNamespace.of("")).intern(); private static final Logger LOG = LoggerFactory.getLogger(XmlParserStream.class); private static final String XML_STANDARD_VERSION = "1.0"; @@ -459,7 +459,7 @@ public final class XmlParserStream implements Closeable, Flushable { final String elementNS = in.getNamespaceURI(); final boolean added = namesakes.add(new SimpleImmutableEntry<>(elementNS, xmlElementName)); - final URI nsUri; + final XMLNamespace nsUri; try { nsUri = rawXmlNamespace(elementNS).getNamespace(); } catch (IllegalArgumentException e) { @@ -546,8 +546,8 @@ public final class XmlParserStream implements Closeable, Flushable { return last instanceof ListSchemaNode || last instanceof LeafListSchemaNode; } - private static void addMountPointChild(final MountPointData mount, final URI namespace, final String localName, - final DOMSource source) { + private static void addMountPointChild(final MountPointData mount, final XMLNamespace namespace, + final String localName, final DOMSource source) { final DOMSourceMountPointChild child = new DOMSourceMountPointChild(source); if (YangLibraryConstants.MODULE_NAMESPACE.equals(namespace)) { final Optional optName = ContainerName.forLocalName(localName); @@ -648,13 +648,13 @@ public final class XmlParserStream implements Closeable, Flushable { private Optional resolveXmlNamespace(final String xmlNamespace) { return resolvedNamespaces.computeIfAbsent(xmlNamespace, nsUri -> { - final Iterator it = codecs.getEffectiveModelContext().findModules(URI.create(nsUri)) + final Iterator it = codecs.getEffectiveModelContext().findModules(XMLNamespace.of(nsUri)) .iterator(); return it.hasNext() ? Optional.of(it.next().getQNameModule()) : Optional.empty(); }); } private QNameModule rawXmlNamespace(final String xmlNamespace) { - return rawNamespaces.computeIfAbsent(xmlNamespace, nsUri -> QNameModule.create(URI.create(nsUri))); + return rawNamespaces.computeIfAbsent(xmlNamespace, nsUri -> QNameModule.create(XMLNamespace.of(nsUri))); } } diff --git a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java index 126a3343ce..47bd2ba769 100644 --- a/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java +++ b/yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import java.net.URI; import java.util.ArrayDeque; import java.util.Deque; import java.util.Iterator; @@ -18,6 +17,7 @@ import javax.xml.namespace.NamespaceContext; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; @@ -44,12 +44,12 @@ final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanc @Override protected Module moduleForPrefix(final String prefix) { final String prefixedNS = getNamespaceContext().getNamespaceURI(prefix); - final Iterator modules = context.findModules(URI.create(prefixedNS)).iterator(); + final Iterator modules = context.findModules(XMLNamespace.of(prefixedNS)).iterator(); return modules.hasNext() ? modules.next() : null; } @Override - protected String prefixForNamespace(final URI namespace) { + protected String prefixForNamespace(final XMLNamespace namespace) { final Iterator modules = context.findModules(namespace).iterator(); return modules.hasNext() ? modules.next().getName() : null; } diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java index 34d6362f56..6d9383b765 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java @@ -13,7 +13,6 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.InputStream; -import java.net.URI; import javax.xml.stream.XMLStreamReader; import org.junit.Before; import org.junit.Test; @@ -21,6 +20,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -39,8 +39,8 @@ public class Bug5396Test { private EffectiveModelContext schemaContext; @Before - public void setUp() throws Exception { - fooModuleQName = QNameModule.create(new URI("foo"), Revision.of("2016-03-22")); + public void setUp() { + fooModuleQName = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2016-03-22")); schemaContext = YangParserTestUtils.parseYangResource("/bug5396/yang/foo.yang"); } diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java index 0aed2b6339..ba0c1c7845 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java @@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.net.URI; import java.util.Base64; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; @@ -31,6 +30,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -47,7 +47,7 @@ import org.w3c.dom.Node; import org.xml.sax.SAXException; public class Bug5446Test extends XMLTestCase { - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2015-11-05")); + private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-11-05")); private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root"); private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java index c95f1c4e81..d58d5363cc 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java @@ -12,7 +12,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.InputStream; -import java.net.URI; import java.util.Collection; import java.util.Optional; import javax.xml.stream.XMLStreamReader; @@ -22,6 +21,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class Bug890Test { - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2018-07-10")); + private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2018-07-10")); private static final QName OUTGOING_LABELS_QNAME = QName.create(FOO_MODULE, "outgoing-labels"); private static final QName INDEX_QNAME = QName.create(FOO_MODULE, "index"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java index 9e6d5f5a15..fefd76779f 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java @@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableSet; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.net.URI; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -47,6 +46,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -226,7 +226,7 @@ public class NormalizedNodeXmlTranslationTest { } private static NodeIdentifier getNodeIdentifier(final String localName) { - return new NodeIdentifier(QName.create(URI.create(NAMESPACE), REVISION, localName)); + return new NodeIdentifier(QName.create(XMLNamespace.of(NAMESPACE), REVISION, localName)); } private static AugmentationIdentifier getAugmentIdentifier(final String... childNames) { diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java index b69ec8b7cd..5043b809f6 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java @@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableSet; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.net.URI; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -43,6 +42,7 @@ import org.junit.runners.Parameterized; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -115,7 +115,7 @@ public class NormalizedNodesToXmlTest { @Before public void setup() { - bazModule = QNameModule.create(URI.create("baz-namespace")); + bazModule = QNameModule.create(XMLNamespace.of("baz-namespace")); outerContainer = QName.create(bazModule, "outer-container"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java index 7a2d4e17ba..4928b0339b 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java @@ -11,7 +11,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import com.google.common.collect.Iterables; -import java.net.URI; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -20,6 +19,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; public class RandomPrefixTest { static final int MAX_COUNTER = 4000; @@ -41,13 +41,13 @@ public class RandomPrefixTest { } @Test - public void testQNameWithPrefix() throws Exception { + public void testQNameWithPrefix() { final RandomPrefix a = new RandomPrefix(null); final List allGenerated = new ArrayList<>(); for (int i = 0; i < MAX_COUNTER; i++) { final String prefix = RandomPrefix.encode(i); - final URI uri = new URI("localhost:" + prefix); + final XMLNamespace uri = XMLNamespace.of("localhost:" + prefix); final QName qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name"); allGenerated.add(a.encodePrefix(qname.getNamespace())); } @@ -67,7 +67,7 @@ public class RandomPrefixTest { public void test2QNames1Namespace() throws Exception { final RandomPrefix a = new RandomPrefix(null); - final URI uri = URI.create("localhost"); + final XMLNamespace uri = XMLNamespace.of("localhost"); final QName qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name"); final QName qname2 = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name"); @@ -78,12 +78,12 @@ public class RandomPrefixTest { public void testQNameNoPrefix() throws Exception { final RandomPrefix a = new RandomPrefix(null); - final URI uri = URI.create("localhost"); + final XMLNamespace uri = XMLNamespace.of("localhost"); QName qname = QName.create(uri, Revision.of("2000-01-01"), "local-name"); assertEquals("a", a.encodePrefix(qname.getNamespace())); qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name"); assertEquals("a", a.encodePrefix(qname.getNamespace())); - qname = QName.create(QNameModule.create(URI.create("second"), Revision.of("2000-01-01")), "local-name"); + qname = QName.create(QNameModule.create(XMLNamespace.of("second"), Revision.of("2000-01-01")), "local-name"); assertEquals("b", a.encodePrefix(qname.getNamespace())); } diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java index 55742cfbda..04e6169b68 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java @@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableSet; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -44,6 +43,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -118,7 +118,7 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest { @Before public void setup() { - foobarModule = QNameModule.create(URI.create("foobar-namespace"), Revision.of("2016-09-19")); + foobarModule = QNameModule.create(XMLNamespace.of("foobar-namespace"), Revision.of("2016-09-19")); outerContainer = QName.create(foobarModule, "outer-container"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java index 4e4fbf8e55..4536f99ca8 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java @@ -30,6 +30,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -68,7 +69,7 @@ public class XmlStreamUtilsTest { @Test public void testWriteIdentityRef() throws Exception { - final QNameModule parent = QNameModule.create(URI.create("parent:uri"), Revision.of("2000-01-01")); + final QNameModule parent = QNameModule.create(XMLNamespace.of("parent:uri"), Revision.of("2000-01-01")); String xmlAsString = createXml(writer -> { writer.writeStartElement("element"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java index 93e3d64700..c03ed287ae 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java @@ -17,7 +17,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.io.IOException; import java.io.InputStream; -import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; @@ -30,6 +29,7 @@ import org.junit.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -53,10 +53,10 @@ import org.xml.sax.SAXException; public class XmlToNormalizedNodesTest { - private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-namespace")); + private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo-namespace")); private static final QName PARENT_CONTAINER = QName.create(FOO_MODULE, "parent-container"); - private static final QNameModule BAZ_MODULE = QNameModule.create(URI.create("baz-namespace")); + private static final QNameModule BAZ_MODULE = QNameModule.create(XMLNamespace.of("baz-namespace")); private static final QName OUTER_CONTAINER = QName.create(BAZ_MODULE, "outer-container"); private static final QName MY_CONTAINER_1 = QName.create(BAZ_MODULE, "my-container-1"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java index 6e69ba3fd2..5ac539d44c 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java @@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.net.URI; import java.util.Collection; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; @@ -37,6 +36,7 @@ import org.junit.runners.Parameterized; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -82,7 +82,7 @@ public class YT1108Test { @Before public void setup() { - fooModule = QNameModule.create(URI.create("foo-namespace")); + fooModule = QNameModule.create(XMLNamespace.of("foo-namespace")); fooLeafContainer = QName.create(fooModule, "leaf-container"); fooIdentity = QName.create(fooModule, "ident-one"); @@ -122,7 +122,7 @@ public class YT1108Test { new XMLTestCase() {}.assertXMLEqual(diff, true); } - private DOMResult convertNormalizedNodeToXml(NormalizedNode normalizedNode) + private DOMResult convertNormalizedNodeToXml(final NormalizedNode normalizedNode) throws XMLStreamException, IOException { final DOMResult domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument()); diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/StringPatternCheckingCodecTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/StringPatternCheckingCodecTest.java index 577d76f260..5a70ec7a3e 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/StringPatternCheckingCodecTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/StringPatternCheckingCodecTest.java @@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodecTestHelper.getCodec; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.codec.StringCodec; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -35,7 +35,7 @@ public class StringPatternCheckingCodecTest { "/string-pattern-checking-codec-test.yang"); assertNotNull(schemaContext); - final QNameModule testModuleQName = QNameModule.create(URI.create("string-pattern-checking-codec-test")); + final QNameModule testModuleQName = QNameModule.create(XMLNamespace.of("string-pattern-checking-codec-test")); final Module testModule = schemaContext.findModules("string-pattern-checking-codec-test").iterator().next(); final ContainerSchemaNode testContainer = (ContainerSchemaNode) testModule.findDataChildByName( diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/Bug7844Test.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/Bug7844Test.java index 9c8ca831f9..def573928d 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/Bug7844Test.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/Bug7844Test.java @@ -13,11 +13,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.Map; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; @@ -37,7 +37,7 @@ public class Bug7844Test { final Map referencingChilds = leafRefContext.getReferencingChilds(); assertEquals(7, referencingChilds.size()); - final QNameModule bazQNameModule = QNameModule.create(URI.create(BAZ_NS)); + final QNameModule bazQNameModule = QNameModule.create(XMLNamespace.of(BAZ_NS)); final LeafRefPath expectedPathToBazTarget = LeafRefPath.create(true, new QNameWithPredicateImpl(bazQNameModule, "root", ImmutableList.of()), new QNameWithPredicateImpl(bazQNameModule, "target", ImmutableList.of())); @@ -49,7 +49,7 @@ public class Bug7844Test { assertLeafRef(referencingChilds.get(bar("my-leafref-in-bar")), expectedPathToBazTarget); assertLeafRef(referencingChilds.get(bar("my-leafref-in-bar-2")), expectedPathToBazTarget); - final QNameModule barQNameModule = QNameModule.create(URI.create(BAR_NS)); + final QNameModule barQNameModule = QNameModule.create(XMLNamespace.of(BAR_NS)); final LeafRefPath expectedPathToBarTarget = LeafRefPath.create(true, new QNameWithPredicateImpl(barQNameModule, "bar-target", ImmutableList.of())); assertLeafRef(referencingChilds.get(foo("direct-leafref")), expectedPathToBarTarget); diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java index e858968805..b616ecc1f0 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java @@ -13,8 +13,6 @@ import static org.junit.Assert.assertNotNull; import com.google.common.collect.ImmutableSet; import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; @@ -26,6 +24,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -83,8 +82,8 @@ public class ImmutableNormalizedNodeStreamWriterTest { private DOMSource anyxmlDomSource; @Before - public void setup() throws URISyntaxException, ParseException { - bazModule = QNameModule.create(new URI("baz-namespace"), Revision.of("1970-01-01")); + public void setup() throws ParseException { + bazModule = QNameModule.create(XMLNamespace.of("baz-namespace"), Revision.of("1970-01-01")); outerContainer = QName.create(bazModule, "outer-container"); diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedDataBuilderTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedDataBuilderTest.java index 6bc1c8451f..8073f21ab6 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedDataBuilderTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedDataBuilderTest.java @@ -11,12 +11,12 @@ import static com.google.common.base.Preconditions.checkState; import com.google.common.collect.ImmutableSet; import java.io.File; -import java.net.URI; import java.net.URISyntaxException; import java.util.Collections; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -179,7 +179,7 @@ public class NormalizedDataBuilderTest { } private static QName getQName(final String localName) { - return QName.create(URI.create("namespace"), localName); + return QName.create(XMLNamespace.of("namespace"), localName); } private static NodeIdentifier getNodeIdentifier(final String localName) { diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java index c2b047f75d..604c858cde 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap.Builder; -import java.net.URI; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -45,7 +45,7 @@ public class Bug4295Test { @Before public void init() { - foo = QNameModule.create(URI.create("foo")); + foo = QNameModule.create(XMLNamespace.of("foo")); root = QName.create(foo, "root"); subRoot = QName.create(foo, "sub-root"); outerList = QName.create(foo, "outer-list"); diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java index f9ec399c15..17c0d2c92c 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java @@ -12,12 +12,12 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import com.google.common.collect.ImmutableMap; -import java.net.URI; import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -53,7 +53,7 @@ public class OrderedListTest { @Before public void setup() { - testModule = QNameModule.create(URI.create("ordered-list-modification-test")); + testModule = QNameModule.create(XMLNamespace.of("ordered-list-modification-test")); parentContainer = QName.create(testModule, "parent-container"); childContainer = QName.create(testModule, "child-container"); parentOrderedList = QName.create(testModule, "parent-ordered-list"); diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java index d92c9eb28a..89b0e415ea 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java @@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.data.util; import static com.google.common.base.Preconditions.checkArgument; import com.google.common.base.Splitter; -import java.net.URI; import java.util.Iterator; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; abstract class AbstractNamespaceCodec extends AbstractIllegalArgumentCodec { private static final Splitter COLON_SPLITTER = Splitter.on(':'); @@ -27,7 +27,7 @@ abstract class AbstractNamespaceCodec extends AbstractIllegalArgumentCodec modules = context.findModules(namespace).iterator(); return modules.hasNext() ? modules.next().getName() : null; } diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java index d98030e8ad..453d01dadb 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java @@ -8,13 +8,13 @@ package org.opendaylight.yangtools.yang.data.util; -import java.net.URI; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -34,7 +34,7 @@ public final class ParserStreamUtils { * (where n is number of choices through it was passed) */ public static Deque findSchemaNodeByNameAndNamespace(final DataSchemaNode dataSchemaNode, - final String childName, final URI namespace) { + final String childName, final XMLNamespace namespace) { final Deque result = new ArrayDeque<>(); final List childChoices = new ArrayList<>(); DataSchemaNode potentialChildNode = null; diff --git a/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/DataSchemaContextTreeTest.java b/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/DataSchemaContextTreeTest.java index 7c9048e2c3..9b9d745837 100644 --- a/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/DataSchemaContextTreeTest.java +++ b/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/DataSchemaContextTreeTest.java @@ -10,19 +10,19 @@ package org.opendaylight.yangtools.yang.data.util.codec; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.net.URI; import java.util.Optional; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class DataSchemaContextTreeTest { - private static final QNameModule MODULE = QNameModule.create(URI.create("dataschemacontext")); + private static final QNameModule MODULE = QNameModule.create(XMLNamespace.of("dataschemacontext")); private static final QName FOO = QName.create(MODULE, "foo"); private static final QName BAR = QName.create(MODULE, "bar"); private static final QName BAZ = QName.create(MODULE, "baz"); diff --git a/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/IdentityCodecUtilTest.java b/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/IdentityCodecUtilTest.java index 3a554fb73f..bda6262ba8 100644 --- a/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/IdentityCodecUtilTest.java +++ b/yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/IdentityCodecUtilTest.java @@ -11,16 +11,16 @@ import static com.google.common.base.Preconditions.checkState; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThrows; -import java.net.URI; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class IdentityCodecUtilTest { - private static final QNameModule MODULE = QNameModule.create(URI.create("yangtools846")); + private static final QNameModule MODULE = QNameModule.create(XMLNamespace.of("yangtools846")); private static EffectiveModelContext SCHEMA_CONTEXT; @BeforeClass diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/QNameModuleAware.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/QNameModuleAware.java index 7fa0bcafa6..281c9cde06 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/QNameModuleAware.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/QNameModuleAware.java @@ -7,11 +7,11 @@ */ package org.opendaylight.yangtools.yang.model.api; -import java.net.URI; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; public interface QNameModuleAware { /** @@ -21,8 +21,7 @@ public interface QNameModuleAware { */ @NonNull QNameModule getQNameModule(); - @Deprecated - default @NonNull URI getNamespace() { + default @NonNull XMLNamespace getNamespace() { return getQNameModule().getNamespace(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java index 9198dde5b1..fbe0a60287 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java @@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; -import java.net.URI; import java.util.Collection; import java.util.Collections; import java.util.Optional; @@ -22,6 +21,7 @@ import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound; /** @@ -40,7 +40,7 @@ public interface SchemaContext extends ContainerLike, Immutable { * QName of NETCONF top-level data node. */ // FIXME: YANGTOOLS-1074: we do not want this name - @NonNull QName NAME = QName.create(URI.create("urn:ietf:params:xml:ns:netconf:base:1.0"), "data").intern(); + @NonNull QName NAME = QName.create(XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0"), "data").intern(); /** * Returns data schema node instances which represents direct subnodes (like @@ -94,7 +94,7 @@ public interface SchemaContext extends ContainerLike, Immutable { * @return module instance which has name and revision the same as are the values specified in parameters * namespace and no revision. */ - default Optional findModule(final @NonNull URI namespace) { + default Optional findModule(final @NonNull XMLNamespace namespace) { return findModule(QNameModule.create(namespace)); } @@ -106,7 +106,7 @@ public interface SchemaContext extends ContainerLike, Immutable { * @return module instance which has name and revision the same as are the values specified in parameters * namespace and revision. */ - default Optional findModule(final @NonNull URI namespace, final @Nullable Revision revision) { + default Optional findModule(final @NonNull XMLNamespace namespace, final @Nullable Revision revision) { return findModule(QNameModule.create(namespace, revision)); } @@ -118,7 +118,8 @@ public interface SchemaContext extends ContainerLike, Immutable { * @return module instance which has name and revision the same as are the values specified in parameters * namespace and revision. */ - default Optional findModule(final @NonNull URI namespace, final @NonNull Optional revision) { + default Optional findModule(final @NonNull XMLNamespace namespace, + final @NonNull Optional revision) { return findModule(QNameModule.create(namespace, revision)); } @@ -166,8 +167,7 @@ public interface SchemaContext extends ContainerLike, Immutable { * Returns module instances (from the context) with a concrete name. Returned Set is required to have its iteration * order guarantee that the latest revision is encountered first. * - * @param name - * string with the module name + * @param name string with the module name * @return set of module instances with specified name. */ default @NonNull Collection findModules(final String name) { @@ -178,12 +178,10 @@ public interface SchemaContext extends ContainerLike, Immutable { * Returns module instance (from the context) with concrete namespace. Returned Set is required to have its * iteration order guarantee that the latest revision is encountered first. * - * @param namespace - * URI instance with specified namespace - * @return module instance which has namespace equal to the - * namespace or null in other cases + * @param namespace XMLNamespace instance with specified namespace + * @return module instance which has namespace equal to the {@code namespace} or {@code null} in other cases */ - default @NonNull Collection findModules(final URI namespace) { + default @NonNull Collection findModules(final XMLNamespace namespace) { return Collections2.filter(getModules(), m -> namespace.equals(m.getNamespace())); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceEffectiveStatement.java index fbe0101ccc..080856d0d3 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceEffectiveStatement.java @@ -8,13 +8,13 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; @Beta -public interface NamespaceEffectiveStatement extends EffectiveStatement { +public interface NamespaceEffectiveStatement extends EffectiveStatement { @Override default StatementDefinition statementDefinition() { return YangStmtMapping.NAMESPACE; diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java index 01bb0f064d..29c083fc62 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java @@ -7,12 +7,12 @@ */ package org.opendaylight.yangtools.yang.model.api.stmt; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; -public interface NamespaceStatement extends DeclaredStatement { +public interface NamespaceStatement extends DeclaredStatement { @Override default StatementDefinition statementDefinition() { return YangStmtMapping.NAMESPACE; diff --git a/yang/yang-model-util-ut/src/test/java/org/opendaylight/yangtools/yang/model/util/ut/SchemaContextUtilTest.java b/yang/yang-model-util-ut/src/test/java/org/opendaylight/yangtools/yang/model/util/ut/SchemaContextUtilTest.java index 88b28a918a..a46c1e75c3 100644 --- a/yang/yang-model-util-ut/src/test/java/org/opendaylight/yangtools/yang/model/util/ut/SchemaContextUtilTest.java +++ b/yang/yang-model-util-ut/src/test/java/org/opendaylight/yangtools/yang/model/util/ut/SchemaContextUtilTest.java @@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import java.net.URI; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -40,7 +40,7 @@ public class SchemaContextUtilTest { @BeforeClass public static void beforeClass() { context = YangParserTestUtils.parseYangResourceDirectory("/schema-context-util"); - myModule = context.findModule(URI.create("uri:my-module"), Revision.of("2014-10-07")).get(); + myModule = context.findModule(XMLNamespace.of("uri:my-module"), Revision.of("2014-10-07")).get(); } @Test @@ -285,7 +285,7 @@ public class SchemaContextUtilTest { @Test public void findDataSchemaNodeTest() { - final Module importedModule = context.findModule(URI.create("uri:imported-module"), + final Module importedModule = context.findModule(XMLNamespace.of("uri:imported-module"), Revision.of("2014-10-07")).get(); final SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName(QName.create( diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java index 6d0ebb7875..fe55927edc 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java @@ -16,7 +16,6 @@ import com.google.common.collect.Multimaps; import com.google.common.collect.SetMultimap; import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -33,6 +32,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; @@ -93,7 +93,7 @@ public abstract class AbstractSchemaContext implements SchemaContext { * * @return Map of modules where key is namespace */ - protected abstract SetMultimap getNamespaceToModules(); + protected abstract SetMultimap getNamespaceToModules(); /** * Returns the module name-to-module mapping. @@ -162,7 +162,7 @@ public abstract class AbstractSchemaContext implements SchemaContext { } @Override - public Collection findModules(final URI namespace) { + public Collection findModules(final XMLNamespace namespace) { return getNamespaceToModules().get(namespace); } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java index d858276c90..632afd2820 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java @@ -22,7 +22,6 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import com.google.common.collect.SetMultimap; import com.google.common.collect.TreeMultimap; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -36,6 +35,7 @@ import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.ModuleLike; @@ -49,7 +49,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { private final ImmutableSet filteredModules; //collections to be filled in with filtered data - private final ImmutableSetMultimap namespaceToModules; + private final ImmutableSetMultimap namespaceToModules; private final ImmutableSetMultimap nameToModules; /** @@ -91,7 +91,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { sortedModules.sort(NAME_REVISION_COMPARATOR); this.filteredModules = ImmutableSet.copyOf(sortedModules); - final SetMultimap nsMap = Multimaps.newSetMultimap(new TreeMap<>(), + final SetMultimap nsMap = Multimaps.newSetMultimap(new TreeMap<>(), AbstractSchemaContext::createModuleSet); final SetMultimap nameMap = Multimaps.newSetMultimap(new TreeMap<>(), AbstractSchemaContext::createModuleSet); @@ -165,7 +165,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { } @Override - protected SetMultimap getNamespaceToModules() { + protected SetMultimap getNamespaceToModules() { return namespaceToModules; } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java index 5e9ba484de..fc6a458d95 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java @@ -11,7 +11,6 @@ import com.google.common.annotations.Beta; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Lists; import com.google.common.collect.Table; -import java.net.URI; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; @@ -25,6 +24,7 @@ import org.opendaylight.yangtools.util.TopologicalSort; import org.opendaylight.yangtools.util.TopologicalSort.Node; import org.opendaylight.yangtools.util.TopologicalSort.NodeImpl; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -89,13 +89,13 @@ public final class ModuleDependencySort { */ private static void processDependencies(final Table, ModuleNodeImpl> moduleGraph, final Collection mmbs) { - final Map allNS = new HashMap<>(); + final Map allNS = new HashMap<>(); // Create edges in graph for (final Module module : mmbs) { final Map> imported = new HashMap<>(); final String fromName = module.getName(); - final URI ns = module.getNamespace(); + final XMLNamespace ns = module.getNamespace(); final Optional fromRevision = module.getRevision(); // check for existence of module with same namespace @@ -250,18 +250,10 @@ public final class ModuleDependencySort { return false; } final ModuleNodeImpl other = (ModuleNodeImpl) obj; - if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { + if (!Objects.equals(name, other.name)) { return false; } - if (revision == null) { - if (other.revision != null) { - return false; - } - } else if (!revision.equals(other.revision)) { + if (!Objects.equals(revision, other.revision)) { return false; } return true; diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContext.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContext.java index 3603810ff4..2130a130a9 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContext.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContext.java @@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.Multimaps; import com.google.common.collect.SetMultimap; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -31,6 +30,7 @@ import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode; import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNodeAwareSchemaContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; /** @@ -40,7 +40,7 @@ import org.opendaylight.yangtools.yang.model.api.Module; */ @Beta public class SimpleSchemaContext extends AbstractSchemaContext implements AnnotationSchemaNodeAwareSchemaContext { - private final ImmutableSetMultimap namespaceToModules; + private final ImmutableSetMultimap namespaceToModules; private final ImmutableSetMultimap nameToModules; private final ImmutableMap moduleMap; private final ImmutableSet modules; @@ -66,7 +66,7 @@ public class SimpleSchemaContext extends AbstractSchemaContext implements Annota * * Invest some quality time in building up lookup tables for both. */ - final SetMultimap nsMap = Multimaps.newSetMultimap(new TreeMap<>(), + final SetMultimap nsMap = Multimaps.newSetMultimap(new TreeMap<>(), AbstractSchemaContext::createModuleSet); final SetMultimap nameMap = Multimaps.newSetMultimap(new TreeMap<>(), AbstractSchemaContext::createModuleSet); @@ -107,7 +107,7 @@ public class SimpleSchemaContext extends AbstractSchemaContext implements Annota } @Override - protected final SetMultimap getNamespaceToModules() { + protected final SetMultimap getNamespaceToModules() { return namespaceToModules; } diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySortTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySortTest.java index 3c4fe6e1eb..4885257d46 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySortTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySortTest.java @@ -12,7 +12,6 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; import com.google.common.collect.ImmutableSet; -import java.net.URI; import java.util.List; import java.util.Optional; import org.junit.Before; @@ -21,6 +20,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -28,8 +28,8 @@ import org.opendaylight.yangtools.yang.model.api.Submodule; @RunWith(MockitoJUnitRunner.class) public class ModuleDependencySortTest { - public static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo")); - public static final QNameModule BAR_MODULE = QNameModule.create(URI.create("bar")); + public static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo")); + public static final QNameModule BAR_MODULE = QNameModule.create(XMLNamespace.of("bar")); @Mock public Module fooNoRev; diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java index d9942c271f..d17567d143 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java @@ -27,6 +27,7 @@ import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; @@ -669,7 +670,7 @@ public class SchemaContextProxyTest { private static void mockModuleLike(final ModuleLike mockedModule, final String name) { doReturn(name).when(mockedModule).getName(); doReturn(Optional.of(REVISION)).when(mockedModule).getRevision(); - final URI newNamespace = URI.create(NAMESPACE.toString() + ":" + name); + final XMLNamespace newNamespace = XMLNamespace.of(NAMESPACE.toString() + ":" + name); doReturn(newNamespace).when(mockedModule).getNamespace(); doReturn(QNameModule.create(newNamespace, REVISION)).when(mockedModule).getQNameModule(); doReturn(new HashSet<>()).when(mockedModule).getSubmodules(); diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java index 92bfa0f123..2913785906 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java @@ -16,7 +16,6 @@ import static org.mockito.Mockito.mock; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -29,6 +28,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.PathExpression; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -39,7 +39,7 @@ import org.opendaylight.yangtools.yang.model.util.type.BaseTypes; @RunWith(MockitoJUnitRunner.StrictStubs.class) public class SchemaContextUtilTest { public static final Splitter SPACE_SPLITTER = Splitter.on(' '); - public static final URI NAMESPACE = URI.create("abc"); + public static final XMLNamespace NAMESPACE = XMLNamespace.of("abc"); @Mock public SchemaContext mockSchemaContext; @@ -138,7 +138,7 @@ public class SchemaContextUtilTest { @Test public void findDataSchemaNodeIllegalArgumentTest2() { assertThrows(NullPointerException.class, () -> SchemaContextUtil.findDataSchemaNode(null, - SchemaPath.create(true, QName.create(URI.create("uri:my-module"), Revision.of("2014-10-07"), "foo")))); + SchemaPath.create(true, QName.create(XMLNamespace.of("uri:my-module"), Revision.of("2014-10-07"), "foo")))); } @Test diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContextTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContextTest.java index 34c9fddb64..69adaf6725 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContextTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContextTest.java @@ -13,7 +13,6 @@ import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import java.net.URI; import java.util.Collection; import java.util.List; import java.util.Optional; @@ -21,6 +20,7 @@ import java.util.Set; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; public class SimpleSchemaContextTest { @@ -45,7 +45,7 @@ public class SimpleSchemaContextTest { assertFindModules(expected, "foo", foo2, foo0, foo1); assertFindModules(expected, "foo", foo2, foo1, foo0); - final URI uri = URI.create("foo"); + final XMLNamespace uri = XMLNamespace.of("foo"); assertFindModules(expected, uri, foo0, foo1, foo2); assertFindModules(expected, uri, foo0, foo2, foo1); assertFindModules(expected, uri, foo1, foo0, foo2); @@ -65,14 +65,15 @@ public class SimpleSchemaContextTest { assertArrayEquals(expected.toArray(), actual.toArray()); } - private static void assertFindModules(final List expected, final URI uri, final Module... modules) { + private static void assertFindModules(final List expected, final XMLNamespace uri, + final Module... modules) { final Collection actual = SimpleSchemaContext.forModules(ImmutableSet.copyOf(modules)) .findModules(uri); assertArrayEquals(expected.toArray(), actual.toArray()); } private static Module mockModule(final String name, final Optional revision) { - final QNameModule mod = QNameModule.create(URI.create(name), revision); + final QNameModule mod = QNameModule.create(XMLNamespace.of(name), revision); final Module ret = mock(Module.class); doReturn(name).when(ret).getName(); doReturn(mod.getNamespace()).when(ret).getNamespace(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java index 80fba57f96..6cafef6803 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java @@ -19,7 +19,6 @@ import com.google.common.base.Throwables; import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.SetMultimap; import com.google.common.util.concurrent.ListenableFuture; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.ExecutionException; @@ -27,6 +26,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -45,9 +45,9 @@ public class SchemaContextFactoryDeviationsTest { private static final String FOOBAR = "/bug9195/foobar.yang"; private static final String BAR_INVALID = "/bug9195/bar-invalid.yang"; private static final String BAZ_INVALID = "/bug9195/baz-invalid.yang"; - private static final URI FOO_NS = URI.create("foo-ns"); - private static final URI BAR_NS = URI.create("bar-ns"); - private static final URI BAZ_NS = URI.create("baz-ns"); + private static final XMLNamespace FOO_NS = XMLNamespace.of("foo-ns"); + private static final XMLNamespace BAR_NS = XMLNamespace.of("bar-ns"); + private static final XMLNamespace BAZ_NS = XMLNamespace.of("baz-ns"); private static final Revision REVISION = Revision.of("2017-05-16"); private static final QNameModule FOO_MODULE = QNameModule.create(FOO_NS, REVISION); private static final QName MY_FOO_CONT_A = QName.create(FOO_MODULE, "my-foo-cont-a"); diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java index 190c1d5501..87245f42e3 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java @@ -15,7 +15,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -27,6 +26,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Mutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException; @@ -365,7 +365,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha private PrefixToModule preLinkagePrefixes() { final PrefixToModuleMap preLinkagePrefixes = new PrefixToModuleMap(); - final Map prefixToNamespaceMap = getAllFromLocalStorage(ImpPrefixToNamespace.class); + final Map prefixToNamespaceMap = getAllFromLocalStorage(ImpPrefixToNamespace.class); if (prefixToNamespaceMap == null) { //:FIXME if it is a submodule without any import, the map is null. Handle also submodules and includes... return null; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YinStatementStreamSource.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YinStatementStreamSource.java index 88055adcf1..c52802f29e 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YinStatementStreamSource.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YinStatementStreamSource.java @@ -15,12 +15,11 @@ import com.google.common.annotations.Beta; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import java.net.URI; -import java.net.URISyntaxException; import java.util.Optional; import javax.xml.transform.TransformerException; import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.meta.ArgumentDefinition; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; @@ -53,11 +52,11 @@ import org.w3c.dom.NodeList; public final class YinStatementStreamSource extends AbstractSimpleIdentifiable implements StatementStreamSource { private static final Logger LOG = LoggerFactory.getLogger(YinStatementStreamSource.class); - private static final LoadingCache URI_CACHE = CacheBuilder.newBuilder().weakValues().build( - new CacheLoader() { + private static final LoadingCache NS_CACHE = CacheBuilder.newBuilder().weakValues().build( + new CacheLoader() { @Override - public URI load(final String key) throws URISyntaxException { - return new URI(key); + public XMLNamespace load(final String key) { + return XMLNamespace.of(key).intern(); } }); private final Node root; @@ -77,7 +76,7 @@ public final class YinStatementStreamSource extends AbstractSimpleIdentifiable importedModuleContext = imported.resolve(ctx); verify(moduleName.equals(importedModuleContext.getRawArgument())); - final URI importedModuleNamespace = verifyNotNull( + final XMLNamespace importedModuleNamespace = verifyNotNull( importedModuleContext.getFromNamespace(ModuleNameToNamespace.class, moduleName)); final String impPrefix = SourceException.throwIfNull( firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class), stmt, diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java index 21dfbe72d2..50c31f2299 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java @@ -14,7 +14,6 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.f import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -26,6 +25,7 @@ import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.UnqualifiedQName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.Submodule; @@ -157,7 +157,7 @@ public final class ModuleStatementSupport public void onPreLinkageDeclared(final Mutable stmt) { final String moduleName = stmt.getRawArgument(); - final URI moduleNs = SourceException.throwIfNull( + final XMLNamespace moduleNs = SourceException.throwIfNull( firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class), stmt, "Namespace of the module [%s] is missing", moduleName); stmt.addToNs(ModuleNameToNamespace.class, moduleName, moduleNs); @@ -178,7 +178,7 @@ public final class ModuleStatementSupport @Override public void onLinkageDeclared(final Mutable stmt) { - final URI moduleNs = SourceException.throwIfNull( + final XMLNamespace moduleNs = SourceException.throwIfNull( firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class), stmt, "Namespace of the module [%s] is missing", stmt.argument()); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceEffectiveStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceEffectiveStatement.java index 1c6f228588..acdf513043 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceEffectiveStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceEffectiveStatement.java @@ -7,12 +7,12 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument; -final class EmptyNamespaceEffectiveStatement extends DefaultArgument +final class EmptyNamespaceEffectiveStatement extends DefaultArgument implements NamespaceEffectiveStatement { EmptyNamespaceEffectiveStatement(final NamespaceStatement declared) { super(declared); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java index b6d74585b7..fe59f6a74f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java @@ -7,12 +7,12 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString; -final class EmptyNamespaceStatement extends ArgumentToString implements NamespaceStatement { - EmptyNamespaceStatement(final URI argument) { +final class EmptyNamespaceStatement extends ArgumentToString implements NamespaceStatement { + EmptyNamespaceStatement(final XMLNamespace argument) { super(argument); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java index 8883ae88fa..c3db65944f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java @@ -8,9 +8,8 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace; import com.google.common.collect.ImmutableList; -import java.net.URI; -import java.net.URISyntaxException; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -23,7 +22,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; public final class NamespaceStatementSupport - extends AbstractStatementSupport { + extends AbstractStatementSupport { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping .NAMESPACE) .build(); @@ -38,10 +37,10 @@ public final class NamespaceStatementSupport } @Override - public URI parseArgumentValue(final StmtContext ctx, final String value) { + public XMLNamespace parseArgumentValue(final StmtContext ctx, final String value) { try { - return new URI(value); - } catch (URISyntaxException e) { + return XMLNamespace.of(value).intern(); + } catch (IllegalArgumentException e) { throw new SourceException(ctx, e, "Invalid namespace \"%s\"", value); } } @@ -52,18 +51,18 @@ public final class NamespaceStatementSupport } @Override - protected NamespaceStatement createDeclared(@NonNull final StmtContext ctx, + protected NamespaceStatement createDeclared(@NonNull final StmtContext ctx, final ImmutableList> substatements) { return new RegularNamespaceStatement(ctx.getArgument(), substatements); } @Override - protected NamespaceStatement createEmptyDeclared(final StmtContext ctx) { + protected NamespaceStatement createEmptyDeclared(final StmtContext ctx) { return new EmptyNamespaceStatement(ctx.getArgument()); } @Override - protected NamespaceEffectiveStatement createEffective(final Current stmt, + protected NamespaceEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyNamespaceEffectiveStatement(stmt.declared()) : new RegularNamespaceEffectiveStatement(stmt.declared(), substatements); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceEffectiveStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceEffectiveStatement.java index 9686fc20c9..6cba23e233 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceEffectiveStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceEffectiveStatement.java @@ -8,13 +8,13 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace; import com.google.common.collect.ImmutableList; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; -final class RegularNamespaceEffectiveStatement extends WithSubstatements +final class RegularNamespaceEffectiveStatement extends WithSubstatements implements NamespaceEffectiveStatement { RegularNamespaceEffectiveStatement(final NamespaceStatement declared, final ImmutableList> substatements) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java index 02fd876b19..1b656ee450 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java @@ -8,13 +8,13 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace; import com.google.common.collect.ImmutableList; -import java.net.URI; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString.WithSubstatements; -final class RegularNamespaceStatement extends WithSubstatements implements NamespaceStatement { - RegularNamespaceStatement(final URI argument, +final class RegularNamespaceStatement extends WithSubstatements implements NamespaceStatement { + RegularNamespaceStatement(final XMLNamespace argument, final ImmutableList> substatements) { super(argument, substatements); } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java index 4d3f01631f..5eff39db71 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java @@ -14,10 +14,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -35,8 +35,8 @@ public class AugmentProcessTest { private static final StatementStreamSource AUGMENTED = sourceForResource("/stmt-test/augments/augmented.yang"); private static final StatementStreamSource ROOT = sourceForResource("/stmt-test/augments/aug-root.yang"); - private static final QNameModule ROOT_QNAME_MODULE = QNameModule.create(URI.create("root")); - private static final QNameModule AUGMENTED_QNAME_MODULE = QNameModule.create(URI.create("aug")); + private static final QNameModule ROOT_QNAME_MODULE = QNameModule.create(XMLNamespace.of("root")); + private static final QNameModule AUGMENTED_QNAME_MODULE = QNameModule.create(XMLNamespace.of("aug")); private final QName augParent1 = QName.create(AUGMENTED_QNAME_MODULE, "aug-parent1"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java index 3f398334e9..65127364b6 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java @@ -13,7 +13,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -21,6 +20,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -39,11 +39,11 @@ import org.opendaylight.yangtools.yang.model.util.BaseTypes; public class AugmentTest { private static final QNameModule FOO = QNameModule.create( - URI.create("urn:opendaylight.foo"), Revision.of("2013-10-13")); + XMLNamespace.of("urn:opendaylight.foo"), Revision.of("2013-10-13")); private static final QNameModule BAR = QNameModule.create( - URI.create("urn:opendaylight.bar"), Revision.of("2013-10-14")); + XMLNamespace.of("urn:opendaylight.bar"), Revision.of("2013-10-14")); private static final QNameModule BAZ = QNameModule.create( - URI.create("urn:opendaylight.baz"), Revision.of("2013-10-15")); + XMLNamespace.of("urn:opendaylight.baz"), Revision.of("2013-10-15")); private static final QName Q0 = QName.create(BAR, "interfaces"); private static final QName Q1 = QName.create(BAR, "ifEntry"); @@ -325,8 +325,8 @@ public class AugmentTest { @Test public void testAugmentRpc() throws Exception { final SchemaContext context = TestUtils.loadModules(getClass().getResource("/augment-test/rpc").toURI()); - final URI NS_BAR = URI.create("urn:opendaylight:bar"); - final URI NS_FOO = URI.create("urn:opendaylight:foo"); + final XMLNamespace NS_BAR = XMLNamespace.of("urn:opendaylight:bar"); + final XMLNamespace NS_FOO = XMLNamespace.of("urn:opendaylight:foo"); final Revision revision = Revision.of("2013-10-11"); final Module bar = TestUtils.findModule(context, "bar").get(); final Collection rpcs = bar.getRpcs(); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java index f3552c327d..e9710de65e 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java @@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import java.net.URI; import java.util.Collection; import org.junit.Test; import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement; @@ -41,7 +41,7 @@ public class Bug1412Test { assertEquals(1, unknownNodes.size()); final UnrecognizedStatement action = unknownNodes.iterator().next(); - final QNameModule qm = QNameModule.create(URI.create("urn:test:bug1412"), Revision.of("2014-07-25")); + final QNameModule qm = QNameModule.create(XMLNamespace.of("urn:test:bug1412"), Revision.of("2014-07-25")); QName expectedNodeType = QName.create("urn:test:bug1412:ext:definitions", "2014-07-25", "action"); assertEquals(expectedNodeType, action.statementDefinition().getStatementName()); assertEquals("hello", action.argument()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java index 78d5221a84..75303aa1ef 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java @@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import java.net.URI; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -31,7 +31,7 @@ public class Bug2872Test { final SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug2872"); assertNotNull(schema); - final QNameModule bug2872module = QNameModule.create(URI.create("bug2872"), Revision.of("2016-06-08")); + final QNameModule bug2872module = QNameModule.create(XMLNamespace.of("bug2872"), Revision.of("2016-06-08")); final QName foo = QName.create(bug2872module, "bar"); final DataSchemaNode dataSchemaNode = schema.getDataChildByName(foo); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java index 428f05908c..8991e540b4 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotNull; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -27,7 +27,7 @@ public class Bug4231Test { assertNotNull(context); - QNameModule foo = QNameModule.create(new URI("foo"), Revision.of("2015-09-02")); + QNameModule foo = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-09-02")); SchemaPath targetPath = SchemaPath .create(true, QName.create(foo, "augment-target")) diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4456Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4456Test.java index 46c6179ec0..974c9ae802 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4456Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4456Test.java @@ -11,10 +11,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; -import java.net.URI; import java.util.Collection; import java.util.Set; import org.junit.Test; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -26,7 +26,7 @@ public class Bug4456Test { SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug4456"); assertNotNull(schema); - Set modules = (Set) schema.findModules(URI.create("foo")); + Set modules = (Set) schema.findModules(XMLNamespace.of("foo")); assertEquals(1, modules.size()); Module moduleFoo = modules.iterator().next(); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java index 02b319a6ce..af39510f5e 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java @@ -10,11 +10,11 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -29,8 +29,8 @@ public class Bug4610Test { SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug4610"); Revision revision = Revision.of("2015-12-12"); - QNameModule foo = QNameModule.create(URI.create("foo"), revision); - QNameModule bar = QNameModule.create(URI.create("bar"), revision); + QNameModule foo = QNameModule.create(XMLNamespace.of("foo"), revision); + QNameModule bar = QNameModule.create(XMLNamespace.of("bar"), revision); QName g1 = QName.create(bar, "g1"); QName g2 = QName.create(bar, "g2"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4623Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4623Test.java index 0e2ba93ae2..6082e43fff 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4623Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4623Test.java @@ -13,11 +13,11 @@ import static org.junit.Assert.assertNotNull; import com.google.common.collect.Range; import java.io.File; -import java.net.URI; import java.util.Collection; import java.util.List; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -40,7 +40,7 @@ public class Bug4623Test { final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt); final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName( - QName.create(URI.create("urn:custom.types.demo"), "leaf-length-pattern-unknown")); + QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-length-pattern-unknown")); // then final TypeDefinition type = leaf.getType(); @@ -76,7 +76,7 @@ public class Bug4623Test { final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt); final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName( - QName.create(URI.create("urn:custom.types.demo"), "leaf-length-unknown-pattern")); + QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-length-unknown-pattern")); // then assertNotNull(leaf); @@ -112,7 +112,7 @@ public class Bug4623Test { final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt); final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName( - QName.create(URI.create("urn:custom.types.demo"), "leaf-unknown-length-pattern")); + QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-unknown-length-pattern")); // then assertNotNull(leaf); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java index abf30252f0..34294e62e7 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java @@ -14,10 +14,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; @@ -30,7 +30,7 @@ public class Bug7038Test { @Test public void unknownNodeTest() throws Exception { final ModuleStatement bar = StmtTestUtils.parseYangSources("/bugs/bug7038") - .getModuleStatement(QNameModule.create(URI.create("bar"))).getDeclared(); + .getModuleStatement(QNameModule.create(XMLNamespace.of("bar"))).getDeclared(); final UnrecognizedStatement decimal64 = bar.findFirstDeclaredSubstatement(UnrecognizedStatement.class) .orElseThrow(); assertEquals("decimal64", decimal64.argument()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java index 94b4d19b51..a3668a2bd7 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java @@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import java.util.Collection; import org.junit.Test; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.Submodule; @@ -31,18 +31,18 @@ public class Bug7480Test { final Collection modules = context.getModules(); assertEquals(8, modules.size()); - assertNotNull(context.findModule(new URI("foo-imp"), Revision.of("2017-01-23"))); - assertEquals(1, context.findModules(new URI("foo-imp-2")).size()); - assertEquals(1, context.findModules(new URI("foo-imp-imp")).size()); - assertEquals(1, context.findModules(new URI("bar")).size()); - assertEquals(1, context.findModules(new URI("baz")).size()); - assertTrue(context.findModule(new URI("baz-imp"), Revision.of("2002-01-01")).isPresent()); - final Collection foo = context.findModules(new URI("foo")); + assertNotNull(context.findModule(XMLNamespace.of("foo-imp"), Revision.of("2017-01-23"))); + assertEquals(1, context.findModules(XMLNamespace.of("foo-imp-2")).size()); + assertEquals(1, context.findModules(XMLNamespace.of("foo-imp-imp")).size()); + assertEquals(1, context.findModules(XMLNamespace.of("bar")).size()); + assertEquals(1, context.findModules(XMLNamespace.of("baz")).size()); + assertTrue(context.findModule(XMLNamespace.of("baz-imp"), Revision.of("2002-01-01")).isPresent()); + final Collection foo = context.findModules(XMLNamespace.of("foo")); assertEquals(1, foo.size()); final Collection subFoos = foo.iterator().next().getSubmodules(); assertEquals(1, subFoos.size()); - final Module parentMod = context.findModule(new URI("parent-mod-ns"), Revision.of("2017-09-07")).get(); + final Module parentMod = context.findModule(XMLNamespace.of("parent-mod-ns"), Revision.of("2017-09-07")).get(); assertEquals(1, parentMod.getSubmodules().size()); } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java index 29c8c2127e..4231aed974 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java @@ -15,11 +15,11 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.SetMultimap; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; @@ -39,9 +39,9 @@ public class Bug8307Test { private static final StatementStreamSource BAR_INVALID_MODULE = sourceForResource("/bugs/bug8307/bar-invalid.yang"); private static final StatementStreamSource BAZ_INVALID_MODULE = sourceForResource("/bugs/bug8307/baz-invalid.yang"); - private static final URI FOO_NS = URI.create("foo-ns"); - private static final URI BAR_NS = URI.create("bar-ns"); - private static final URI BAZ_NS = URI.create("baz-ns"); + private static final XMLNamespace FOO_NS = XMLNamespace.of("foo-ns"); + private static final XMLNamespace BAR_NS = XMLNamespace.of("bar-ns"); + private static final XMLNamespace BAZ_NS = XMLNamespace.of("baz-ns"); private static final Revision REVISION = Revision.of("2017-05-16"); private static final QNameModule FOO = QNameModule.create(FOO_NS, REVISION); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java index 7b321752c3..ee03318aa8 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java @@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThrows; -import java.net.URI; import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -48,8 +48,8 @@ public class CaseStmtTest { rootBar = schema.findModule("bar", rev).get(); assertNotNull(rootFoo); assertNotNull(rootBar); - qnameFoo = QNameModule.create(URI.create("foo"), rev); - qnameBar = QNameModule.create(URI.create("bar"), rev); + qnameFoo = QNameModule.create(XMLNamespace.of("foo"), rev); + qnameBar = QNameModule.create(XMLNamespace.of("bar"), rev); assertNotNull(qnameFoo); assertNotNull(qnameBar); } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java index dbec3114b0..6667a4805e 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java @@ -14,12 +14,12 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEqual import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import java.io.FileNotFoundException; -import java.net.URI; import java.net.URISyntaxException; import java.util.Collection; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; @@ -35,7 +35,7 @@ public class EffectiveBuildTest { private static final StatementStreamSource SIMPLE_MODULE = sourceForResource( "/stmt-test/effective-build/simple-module.yang"); - private static final QNameModule SIMPLE_MODULE_QNAME = QNameModule.create(URI.create("simple.yang")); + private static final QNameModule SIMPLE_MODULE_QNAME = QNameModule.create(XMLNamespace.of("simple.yang")); private static final StatementStreamSource YANG_EXT = sourceForResource( "/stmt-test/extensions/yang-ext.yang"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java index 27c7241e64..0ee7f97694 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java @@ -12,13 +12,13 @@ import static org.junit.Assert.assertNotNull; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; -import java.net.URI; import java.util.Collection; import java.util.Optional; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -50,7 +50,7 @@ public class EffectiveModuleTest { private static final StatementStreamSource SUBMODULE = sourceForResource( "/semantic-statement-parser/effective-module/submod.yang"); - private static final QNameModule ROOT_MODULE_QNAME = QNameModule.create(URI.create("root-ns")); + private static final QNameModule ROOT_MODULE_QNAME = QNameModule.create(XMLNamespace.of("root-ns")); private static final QName CONT = QName.create(ROOT_MODULE_QNAME, "cont"); private static final QName FEATURE1 = QName.create(ROOT_MODULE_QNAME, "feature1"); @@ -106,7 +106,7 @@ public class EffectiveModuleTest { assertEquals(1, deviations.size()); final Deviation deviationStmt = deviations.iterator().next(); assertNotNull(deviationStmt); - final QNameModule importedModuleQName = QNameModule.create(URI.create("imported"), REVISION); + final QNameModule importedModuleQName = QNameModule.create(XMLNamespace.of("imported"), REVISION); final QName importedContQName = QName.create(importedModuleQName, "cont"); assertEquals(Absolute.of(importedContQName), deviationStmt.getTargetPath()); assertEquals(DeviateKind.ADD, deviationStmt.getDeviates().iterator().next().getDeviateType()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java index 305723d2e9..120000a3ba 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java @@ -12,12 +12,12 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; -import java.net.URI; import java.util.Collection; import java.util.Optional; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -39,7 +39,7 @@ public class EffectiveModulesAndSubmodulesTest { private static final StatementStreamSource SUBMODULE_TO_SUBMODULE_1 = sourceForResource( "/stmt-test/submodules/submodule-to-submodule-1.yang"); - private static final QNameModule ROOT = QNameModule.create(URI.create("root-module")); + private static final QNameModule ROOT = QNameModule.create(XMLNamespace.of("root-module")); @Test public void modulesAndSubmodulesSimpleReferencesTest() throws ReactorException { @@ -164,8 +164,8 @@ public class EffectiveModulesAndSubmodulesTest { private static void findModulesSubTest(final SchemaContext result, final Module root, final Module imported) { final Module foundRoot = result.findModule("root-module").get(); - final Collection foundRoots = result.findModules(URI.create("root-module")); - final Module foundRoot3 = result.findModule(URI.create("root-module")).get(); + final Collection foundRoots = result.findModules(XMLNamespace.of("root-module")); + final Module foundRoot3 = result.findModule(XMLNamespace.of("root-module")).get(); assertNotNull(foundRoot); assertNotNull(foundRoots); @@ -180,8 +180,8 @@ public class EffectiveModulesAndSubmodulesTest { assertEquals(root, foundRoot3); final Module foundImported = result.findModule("imported-module").get(); - final Collection foundImporteds = result.findModules(URI.create("imported-module")); - final Module foundImported3 = result.findModule(URI.create("imported-module")).get(); + final Collection foundImporteds = result.findModules(XMLNamespace.of("imported-module")); + final Module foundImported3 = result.findModule(XMLNamespace.of("imported-module")).get(); assertNotNull(foundImported); assertNotNull(foundImporteds); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java index 5fdbc7f528..5a15a0a25f 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java @@ -14,7 +14,6 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; import java.util.Collection; @@ -23,6 +22,7 @@ import java.util.Set; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; @@ -72,7 +72,7 @@ public class EffectiveSchemaContextTest { assertNull(schemaContext.dataChildByName(QName.create("foo-namespace", "2016-09-21", "foo-cont"))); assertFalse(schemaContext.findModule("foo", Revision.of("2016-08-21")).isPresent()); - assertFalse(schemaContext.findModule(URI.create("foo-namespace"), Revision.of("2016-08-21")).isPresent()); + assertFalse(schemaContext.findModule(XMLNamespace.of("foo-namespace"), Revision.of("2016-08-21")).isPresent()); assertFalse(schemaContext.isAugmenting()); assertFalse(schemaContext.isAddedByUses()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java index 8bf7494cd5..c3650094f0 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java @@ -15,7 +15,6 @@ import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals; import java.io.IOException; -import java.net.URI; import java.text.ParseException; import java.util.Collection; import java.util.Map; @@ -25,6 +24,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; @@ -422,7 +422,7 @@ public class GroupingTest { assertNotNull(gz); assertNotNull(gzz); - final QNameModule expectedModule = QNameModule.create(URI.create("urn:grouping:cascade-uses"), + final QNameModule expectedModule = QNameModule.create(XMLNamespace.of("urn:grouping:cascade-uses"), Revision.of("2013-07-18")); // grouping-U diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java index e3f9e19827..a9fa293a52 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java @@ -13,13 +13,13 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; -import java.net.URI; import java.util.Collection; import java.util.Optional; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -124,7 +124,7 @@ public class MoreRevisionsTest { } private static void checkContentFullTest(final SchemaContext context) { - URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"); + final XMLNamespace yangTypesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"); final Revision rev20100924 = Revision.of("2010-09-24"); final Revision rev20130516 = Revision.of("2013-05-16"); @@ -187,7 +187,7 @@ public class MoreRevisionsTest { } private static void checkContentSimpleTest(final SchemaContext context) { - URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"); + final XMLNamespace yangTypesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"); final Revision rev20100924 = Revision.of("2010-09-24"); final Revision rev20130516 = Revision.of("2013-05-16"); @@ -214,7 +214,7 @@ public class MoreRevisionsTest { private static void checkInterfacesModuleSimpleTest(final SchemaContext context, final Revision rev20100924, final QName dateTimeTypeDef20100924) { - URI interfacesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-interfaces"); + XMLNamespace interfacesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-interfaces"); Revision rev20121115 = Revision.of("2012-11-15"); final QNameModule interfacesNS20121115 = QNameModule.create(interfacesNS, rev20121115); QName lastChange = QName.create(interfacesNS20121115, "last-change"); @@ -236,7 +236,7 @@ public class MoreRevisionsTest { private static void checkNetconfMonitoringModuleSimpleTest(final SchemaContext context, final Revision rev20130715, final QName dateTimeTypeDef20130715) { - URI monitoringNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"); + final XMLNamespace monitoringNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"); final QNameModule monitoring19700101 = QNameModule.create(monitoringNS); QName lockedTime = QName.create(monitoring19700101, "locked-time"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java index 9ce505bd49..629fdde467 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java @@ -16,7 +16,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.Iterables; import com.google.common.collect.Range; -import java.net.URI; import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -26,6 +25,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -291,7 +291,7 @@ public class TypesResolutionTest { assertEquals(Status.CURRENT, testedType.getStatus()); QName testedTypeQName = testedType.getQName(); - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace()); + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace()); assertEquals(Revision.ofNullable("2012-07-09"), testedTypeQName.getRevision()); assertEquals("iana-timezone", testedTypeQName.getLocalName()); @@ -324,7 +324,7 @@ public class TypesResolutionTest { assertEquals("^(?:\\d*(\\.\\d*){1,127})$", pattern.getJavaPatternString()); QName testedTypeQName = testedType.getQName(); - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace()); + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace()); assertEquals(Revision.ofNullable("2010-09-24"), testedTypeQName.getRevision()); assertEquals("object-identifier-128", testedTypeQName.getLocalName()); @@ -337,7 +337,8 @@ public class TypesResolutionTest { pattern.getJavaPatternString()); QName testedTypeBaseQName = testedTypeBase.getQName(); - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeBaseQName.getNamespace()); + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"), + testedTypeBaseQName.getNamespace()); assertEquals(Revision.ofNullable("2010-09-24"), testedTypeBaseQName.getRevision()); assertEquals("object-identifier", testedTypeBaseQName.getLocalName()); } @@ -349,7 +350,7 @@ public class TypesResolutionTest { TypeDefinition testedType = TestUtils.findTypedef(typedefs, "service-type-ref"); IdentityrefTypeDefinition baseType = (IdentityrefTypeDefinition) testedType.getBaseType(); QName identity = baseType.getIdentities().iterator().next().getQName(); - assertEquals(URI.create("urn:custom.types.demo"), identity.getNamespace()); + assertEquals(XMLNamespace.of("urn:custom.types.demo"), identity.getNamespace()); assertEquals(Revision.ofNullable("2012-04-16"), identity.getRevision()); assertEquals("service-type", identity.getLocalName()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java index 27a28a2b0d..df392794cf 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java @@ -14,7 +14,6 @@ import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayDeque; import java.util.Collection; @@ -24,6 +23,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -43,9 +43,9 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; public class UsesAugmentTest { private static final QNameModule UG = QNameModule.create( - URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping"), Revision.of("2013-07-30")); + XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:uses-grouping"), Revision.of("2013-07-30")); private static final QNameModule GD = QNameModule.create( - URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), Revision.of("2013-09-04")); + XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), Revision.of("2013-09-04")); private SchemaContext context; diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1195Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1195Test.java index 95ee12b471..b17f4545fa 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1195Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1195Test.java @@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ListEffectiveStatement; @@ -22,7 +22,7 @@ public class YT1195Test { @Test public void testKeyStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1195/key.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final ListEffectiveStatement grpFoo = module .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow() diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1208Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1208Test.java index 03a4547bd6..295f3f341b 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1208Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1208Test.java @@ -12,11 +12,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; -import java.net.URI; import java.util.List; import java.util.stream.Collectors; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.CaseEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement; @@ -34,7 +34,7 @@ public class YT1208Test { @Test public void testAugmentStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/augment.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -54,7 +54,7 @@ public class YT1208Test { @Test public void testCaseStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/case.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -74,7 +74,7 @@ public class YT1208Test { @Test public void testChoiceStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/choice.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -92,7 +92,7 @@ public class YT1208Test { @Test public void testGroupingStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/grouping.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -112,7 +112,7 @@ public class YT1208Test { @Test public void testLeafStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/leaf.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); assertNotNull(module); final NotificationEffectiveStatement notif = module @@ -131,7 +131,7 @@ public class YT1208Test { @Test public void testLeafListStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/leaflist.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -149,7 +149,7 @@ public class YT1208Test { @Test public void testListStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/list.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); @@ -167,7 +167,7 @@ public class YT1208Test { @Test public void testTypedefStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/typedef.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final TypedefEffectiveStatement grpBar = module .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow() @@ -183,7 +183,7 @@ public class YT1208Test { @Test public void testUsesStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/uses.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); assertNotNull(module); final List groupings = module .streamEffectiveSubstatements(GroupingEffectiveStatement.class).collect(Collectors.toList()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1209Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1209Test.java index 8518166d13..c22c2d5321 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1209Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1209Test.java @@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; @@ -22,7 +22,7 @@ public class YT1209Test { @Test public void testWhenStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1209/when.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final LeafEffectiveStatement grpFoo = module .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow() diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1212Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1212Test.java index 7da45d5b7d..70c2d67d5e 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1212Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1212Test.java @@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; -import java.net.URI; import java.util.List; import java.util.stream.Collectors; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement; @@ -27,7 +27,7 @@ public class YT1212Test { @Test public void testActiontatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/anyxml.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final AnyxmlEffectiveStatement grpFoo = module .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow() @@ -46,7 +46,7 @@ public class YT1212Test { @Test public void testLeafStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/leaf.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final LeafEffectiveStatement grpFoo = module .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow() @@ -65,7 +65,7 @@ public class YT1212Test { @Test public void testContainerStatementReuse() throws Exception { final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/container.yang") - .getModuleStatement(QNameModule.create(URI.create("foo"))); + .getModuleStatement(QNameModule.create(XMLNamespace.of("foo"))); final NotificationEffectiveStatement notif = module.findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow(); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT841Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT841Test.java index 24662de6d9..b51a60a6b2 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT841Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT841Test.java @@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotNull; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; @@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; public class YT841Test { - private static final QNameModule FOO = QNameModule.create(URI.create("foo"), Revision.of("2018-01-02")); + private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2018-01-02")); @Test public void testFindDataSchemaNode() throws Exception { diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT971Test.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT971Test.java index d25e300cbb..d103d07fe9 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT971Test.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT971Test.java @@ -13,13 +13,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.util.Optional; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -30,7 +30,7 @@ import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; public class YT971Test { - private static final QNameModule NAMESPACE = QNameModule.create(URI.create("test"), Revision.of("2019-03-25")); + private static final QNameModule NAMESPACE = QNameModule.create(XMLNamespace.of("test"), Revision.of("2019-03-25")); @Test public void testEscapeLexer() throws URISyntaxException, IOException, YangSyntaxErrorException, ReactorException { diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java index 58c1d59121..ec06bba087 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java @@ -13,7 +13,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals; -import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -23,6 +22,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UsesNode; public class YangParserSimpleTest { - private static final QNameModule SN = QNameModule.create(URI.create("urn:opendaylight:simple-nodes"), + private static final QNameModule SN = QNameModule.create(XMLNamespace.of("urn:opendaylight:simple-nodes"), Revision.of("2013-07-30")); private static final QName SN_NODES = QName.create(SN, "nodes"); private static final SchemaPath SN_NODES_PATH = SchemaPath.create(true, SN_NODES); @@ -221,7 +221,7 @@ public class YangParserSimpleTest { } - private static final URI NS = URI.create("urn:opendaylight:simple-nodes"); + private static final XMLNamespace NS = XMLNamespace.of("urn:opendaylight:simple-nodes"); private static SchemaPath createPath(final String... names) { final Revision rev = Revision.of("2013-07-30"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java index 78d702cbbf..417a0a5e73 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java @@ -18,7 +18,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.Range; import com.google.common.collect.RangeSet; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; import java.util.ArrayList; @@ -32,6 +31,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; @@ -72,11 +72,11 @@ import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; public class YangParserTest { - private static final QNameModule FOO = QNameModule.create(URI.create("urn:opendaylight.foo"), + private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("urn:opendaylight.foo"), Revision.of("2013-02-27")); - private static final QNameModule BAR = QNameModule.create(URI.create("urn:opendaylight.bar"), + private static final QNameModule BAR = QNameModule.create(XMLNamespace.of("urn:opendaylight.bar"), Revision.of("2013-07-03")); - private static final QNameModule BAZ = QNameModule.create(URI.create("urn:opendaylight.baz"), + private static final QNameModule BAZ = QNameModule.create(XMLNamespace.of("urn:opendaylight.baz"), Revision.of("2013-02-27")); private SchemaContext context; diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java index 883108fb2d..a251296799 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java @@ -15,7 +15,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.Iterables; import com.google.common.collect.Range; -import java.net.URI; import java.util.Collection; import java.util.Map; import java.util.Optional; @@ -24,6 +23,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.Uint8; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -51,9 +51,9 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; public class YangParserWithContextTest { - private static final URI T1_NS = URI.create("urn:simple.demo.test1"); - private static final URI T2_NS = URI.create("urn:simple.demo.test2"); - private static final URI T3_NS = URI.create("urn:simple.demo.test3"); + private static final XMLNamespace T1_NS = XMLNamespace.of("urn:simple.demo.test1"); + private static final XMLNamespace T2_NS = XMLNamespace.of("urn:simple.demo.test2"); + private static final XMLNamespace T3_NS = XMLNamespace.of("urn:simple.demo.test3"); private static final Revision REV = Revision.of("2013-06-18"); private static final StatementStreamSource BAR = sourceForResource("/model/bar.yang"); @@ -85,13 +85,13 @@ public class YangParserWithContextTest { assertTrue(leaf.getType() instanceof Uint16TypeDefinition); final Uint16TypeDefinition leafType = (Uint16TypeDefinition) leaf.getType(); QName qname = leafType.getQName(); - assertEquals(URI.create("urn:simple.demo.test1"), qname.getNamespace()); + assertEquals(XMLNamespace.of("urn:simple.demo.test1"), qname.getNamespace()); assertEquals(Revision.ofNullable("2013-06-18"), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); final Uint16TypeDefinition leafBaseType = leafType.getBaseType(); qname = leafBaseType.getQName(); - assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace()); + assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace()); assertEquals(Revision.ofNullable("2010-09-24"), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); @@ -111,7 +111,7 @@ public class YangParserWithContextTest { .buildEffective(); final Module testModule = context.findModule("test2", Revision.of("2013-06-18")).get(); - final Module contextModule = context.findModules(URI.create("urn:opendaylight.baz")).iterator().next(); + final Module contextModule = context.findModules(XMLNamespace.of("urn:opendaylight.baz")).iterator().next(); assertNotNull(contextModule); final Collection groupings = contextModule.getGroupings(); assertEquals(1, groupings.size()); @@ -210,7 +210,7 @@ public class YangParserWithContextTest { final UsesNode usesNode = usesNodes.iterator().next(); // test grouping path - assertEquals(QName.create(URI.create("urn:opendaylight.baz"), Revision.of("2013-02-27"), "target"), + assertEquals(QName.create(XMLNamespace.of("urn:opendaylight.baz"), Revision.of("2013-02-27"), "target"), usesNode.getSourceGrouping().getQName()); // test refine @@ -276,13 +276,13 @@ public class YangParserWithContextTest { final IdentitySchemaNode identity = identities.iterator().next(); final QName idQName = identity.getQName(); - assertEquals(URI.create("urn:simple.demo.test3"), idQName.getNamespace()); + assertEquals(XMLNamespace.of("urn:simple.demo.test3"), idQName.getNamespace()); assertEquals(Revision.ofNullable("2013-06-18"), idQName.getRevision()); assertEquals("pt", idQName.getLocalName()); final IdentitySchemaNode baseIdentity = Iterables.getOnlyElement(identity.getBaseIdentities()); final QName idBaseQName = baseIdentity.getQName(); - assertEquals(URI.create("urn:custom.types.demo"), idBaseQName.getNamespace()); + assertEquals(XMLNamespace.of("urn:custom.types.demo"), idBaseQName.getNamespace()); assertEquals(Revision.ofNullable("2012-04-16"), idBaseQName.getRevision()); assertEquals("service-type", idBaseQName.getLocalName()); } @@ -304,7 +304,7 @@ public class YangParserWithContextTest { final UnrecognizedStatement un = unknownNodes.iterator().next(); final QName unType = un.statementDefinition().getStatementName(); - assertEquals(URI.create("urn:custom.types.demo"), unType.getNamespace()); + assertEquals(XMLNamespace.of("urn:custom.types.demo"), unType.getNamespace()); assertEquals(Revision.ofNullable("2012-04-16"), unType.getRevision()); assertEquals("mountpoint", unType.getLocalName()); assertEquals("point", un.argument()); @@ -360,7 +360,7 @@ public class YangParserWithContextTest { assertEquals(Optional.of("system/user ref"), dev.getReference()); - final URI expectedNS = URI.create("urn:opendaylight.bar"); + final XMLNamespace expectedNS = XMLNamespace.of("urn:opendaylight.bar"); final Revision expectedRev = Revision.of("2013-07-03"); assertEquals(Absolute.of( diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java index 37cac7aa20..39f70bbdd4 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java @@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition; @@ -33,7 +33,7 @@ public class YangTypes2StmtTest { private static final StatementStreamSource TYPEFILE4 = sourceForResource( "/semantic-statement-parser/identityreftest.yang"); - private static final QNameModule TYPES2_MODULE = QNameModule.create(URI.create("types2")); + private static final QNameModule TYPES2_MODULE = QNameModule.create(XMLNamespace.of("types2")); private static final QName LF_DECIMAL = QName.create(TYPES2_MODULE, "lf-decimal"); private static final QName LF_MY_STRING = QName.create(TYPES2_MODULE, "lf-my-string"); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionBorderCaseTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionBorderCaseTest.java index b9ff232e11..27af91539d 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionBorderCaseTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionBorderCaseTest.java @@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -29,8 +29,9 @@ public class OpenconfigVersionBorderCaseTest { "/openconfig-version/border-case/border-case-valid-major", StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(URI.create("foo")).iterator().next(); - Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -44,8 +45,9 @@ public class OpenconfigVersionBorderCaseTest { "/openconfig-version/border-case/border-case-valid-minor", StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(URI.create("foo")).iterator().next(); - Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -59,8 +61,9 @@ public class OpenconfigVersionBorderCaseTest { "/openconfig-version/border-case/border-case-valid-patch", StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(URI.create("foo")).iterator().next(); - Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionComplexTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionComplexTest.java index 3ebbcb0c88..7278948303 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionComplexTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionComplexTest.java @@ -11,10 +11,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -40,8 +40,8 @@ public class OpenconfigVersionComplexTest { private static void verifySchemaContextTest1(final SchemaContext context) { assertNotNull(context); - final Module foo = context.findModules(URI.create("foo")).iterator().next(); - final Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")) + final Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + final Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) .iterator().next(); // check module versions @@ -90,8 +90,8 @@ public class OpenconfigVersionComplexTest { private static void verifySchemaContextTest2(final SchemaContext context) { assertNotNull(context); - final Module foo = context.findModules(URI.create("foo")).iterator().next(); - final Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")) + final Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + final Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) .iterator().next(); // check module versions diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionDefaultsTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionDefaultsTest.java index 988173f93a..73b824dc1a 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionDefaultsTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionDefaultsTest.java @@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import java.util.Optional; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -30,8 +30,8 @@ public class OpenconfigVersionDefaultsTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); assertEquals(Optional.empty(), foo.getSemanticVersion()); assertEquals(Optional.empty(), bar.getSemanticVersion()); @@ -43,8 +43,8 @@ public class OpenconfigVersionDefaultsTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); assertEquals(Optional.empty(), foo.getSemanticVersion()); assertEquals(SemVer.valueOf("0.99.99"), bar.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionIgnoringRevisionTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionIgnoringRevisionTest.java index 65e75068e4..e67d943189 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionIgnoringRevisionTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionIgnoringRevisionTest.java @@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt.openconfigver; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -26,9 +26,10 @@ public class OpenconfigVersionIgnoringRevisionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -41,8 +42,9 @@ public class OpenconfigVersionIgnoringRevisionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); Module bar = StmtTestUtils.findImportedModule(context, foo, "bar"); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionImportTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionImportTest.java index da4420e245..0a2436f585 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionImportTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionImportTest.java @@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -29,7 +29,8 @@ public class OpenconfigVersionImportTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("1.0.0"), semVer.getSemanticVersion().get()); } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionMultipleImportTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionMultipleImportTest.java index 7359edb52a..2ef16b1172 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionMultipleImportTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionMultipleImportTest.java @@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -54,8 +54,9 @@ public class OpenconfigVersionMultipleImportTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -69,8 +70,9 @@ public class OpenconfigVersionMultipleImportTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionPositionTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionPositionTest.java index 55dc999185..e7f5509f83 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionPositionTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionPositionTest.java @@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt.openconfigver; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -26,9 +26,10 @@ public class OpenconfigVersionPositionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -41,9 +42,10 @@ public class OpenconfigVersionPositionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -56,9 +58,10 @@ public class OpenconfigVersionPositionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionTest.java index 4b1a020a85..b1b9460fb3 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionTest.java @@ -13,10 +13,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.net.URI; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -34,9 +34,10 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -49,9 +50,10 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module bar = context.findModules(new URI("bar")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -64,8 +66,9 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -77,8 +80,9 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -92,8 +96,9 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -131,8 +136,9 @@ public class OpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(new URI("foo")).iterator().next(); - Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("2016.1.1"), foo.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/yin/YinOpenconfigVersionTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/yin/YinOpenconfigVersionTest.java index dc0d1f5d5a..773bf7c1d7 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/yin/YinOpenconfigVersionTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/yin/YinOpenconfigVersionTest.java @@ -14,10 +14,10 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import org.junit.Test; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -26,16 +26,16 @@ import org.opendaylight.yangtools.yang.stmt.StmtTestUtils; import org.xml.sax.SAXException; public class YinOpenconfigVersionTest { - @Test public void basicTest() throws URISyntaxException, SAXException, IOException, ReactorException { SchemaContext context = StmtTestUtils.parseYinSources("/openconfig-version/yin-input/basic", StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(URI.create("foo")).iterator().next(); - Module bar = context.findModules(URI.create("bar")).iterator().next(); - Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); @@ -48,8 +48,9 @@ public class YinOpenconfigVersionTest { StatementParserMode.SEMVER_MODE); assertNotNull(context); - Module foo = context.findModules(URI.create("foo")).iterator().next(); - Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next(); + Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next(); + Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext")) + .iterator().next(); assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get()); assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get()); diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileHeaderStmtsTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileHeaderStmtsTest.java index da1de1cc6c..5e47285d2e 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileHeaderStmtsTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileHeaderStmtsTest.java @@ -9,21 +9,21 @@ package org.opendaylight.yangtools.yang.stmt.yin; import static org.junit.Assert.assertEquals; -import java.net.URI; import java.net.URISyntaxException; import org.junit.Test; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.stmt.TestUtils; public class YinFileHeaderStmtsTest extends AbstractYinModulesTest { - @Test public void testYinFileHeader() throws URISyntaxException { Module testModule = TestUtils.findModule(context, "config").get(); assertEquals(YangVersion.VERSION_1, testModule.getYangVersion()); - assertEquals(new URI("urn:opendaylight:params:xml:ns:yang:controller:config"), testModule.getNamespace()); + assertEquals(XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:controller:config"), + testModule.getNamespace()); assertEquals("config", testModule.getPrefix()); } } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileIncludeStmtTest.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileIncludeStmtTest.java index ccd0d8c192..3638865220 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileIncludeStmtTest.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileIncludeStmtTest.java @@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.IOException; -import java.net.URI; import java.net.URISyntaxException; import java.util.Iterator; import org.junit.Before; import org.junit.Test; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.Submodule; @@ -24,7 +24,6 @@ import org.opendaylight.yangtools.yang.stmt.TestUtils; import org.xml.sax.SAXException; public class YinFileIncludeStmtTest { - private SchemaContext context; @Before @@ -45,6 +44,6 @@ public class YinFileIncludeStmtTest { Submodule childModule = submodulesIterator.next() ; assertNotNull(childModule); assertEquals("child", childModule.getName()); - assertEquals(new URI("urn:opendaylight/parent"), childModule.getNamespace()); + assertEquals(XMLNamespace.of("urn:opendaylight/parent"), childModule.getNamespace()); } } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java index 5e8d660b67..9c811ccd79 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java @@ -7,15 +7,15 @@ */ package org.opendaylight.yangtools.yang.parser.spi.source; -import java.net.URI; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Pre-linkage source-specific mapping of prefixes to module namespaces. */ -public interface ImpPrefixToNamespace extends ParserNamespace { - NamespaceBehaviour BEHAVIOUR = +public interface ImpPrefixToNamespace extends ParserNamespace { + NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.rootStatementLocal(ImpPrefixToNamespace.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java index 0b516a5bc4..4e07bca6f7 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java @@ -7,15 +7,15 @@ */ package org.opendaylight.yangtools.yang.parser.spi.source; -import java.net.URI; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Pre-linkage global mapping of module names to namespaces. */ -public interface ModuleNameToNamespace extends ParserNamespace { - NamespaceBehaviour BEHAVIOUR = +public interface ModuleNameToNamespace extends ParserNamespace { + NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.global(ModuleNameToNamespace.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java index b425a38230..7be6315e3c 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.spi.source; -import java.net.URISyntaxException; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -35,7 +34,7 @@ public interface PrefixToModule extends ParserNamespace { * * @param namespace XML Namespace * @return QNameModule associated with supplied namespace, or null if prefix is not defined. - * @throws URISyntaxException if the input string is not valid URI + * @throws IllegalArgumentException if the input string is not valid URI */ - @Nullable QNameModule getByNamespace(String namespace) throws URISyntaxException; + @Nullable QNameModule getByNamespace(String namespace); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModuleMap.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModuleMap.java index 593da7ba11..009ffbb4a1 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModuleMap.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModuleMap.java @@ -7,18 +7,17 @@ */ package org.opendaylight.yangtools.yang.parser.spi.source; -import java.net.URI; -import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * Map-based {@link PrefixToModule} namespace. This class is NOT thread-safe. */ public class PrefixToModuleMap implements PrefixToModule { private final Map prefixToModuleMap = new HashMap<>(); - private final Map namespaceToModuleMap = new HashMap<>(); + private final Map namespaceToModuleMap = new HashMap<>(); public void put(final String prefix, final QNameModule module) { prefixToModuleMap.put(prefix, module); @@ -31,7 +30,7 @@ public class PrefixToModuleMap implements PrefixToModule { } @Override - public QNameModule getByNamespace(final String namespace) throws URISyntaxException { - return namespaceToModuleMap.get(new URI(namespace)); + public QNameModule getByNamespace(final String namespace) { + return namespaceToModuleMap.get(XMLNamespace.of(namespace)); } } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java index 64a7544b34..7113ecc7b4 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java @@ -7,10 +7,10 @@ */ package org.opendaylight.yangtools.yang.parser.spi.source; -import java.net.URI; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; /** @@ -32,5 +32,6 @@ public interface QNameToStatementDefinition { * @param localName localName of requested statement * @return StatementDefinition */ - @Nullable StatementDefinition getByNamespaceAndLocalName(@NonNull URI namespace, @NonNull String localName); + @Nullable StatementDefinition getByNamespaceAndLocalName(@NonNull XMLNamespace namespace, + @NonNull String localName); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinitionMap.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinitionMap.java index 5ddb7d872d..9d7ac23c74 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinitionMap.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinitionMap.java @@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import static java.util.Objects.requireNonNull; -import java.net.URI; import java.util.HashMap; import java.util.Map; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; @@ -65,7 +65,7 @@ public class QNameToStatementDefinitionMap implements QNameToStatementDefinition } @Override - public StatementDefinition getByNamespaceAndLocalName(final URI namespace, final String localName) { + public StatementDefinition getByNamespaceAndLocalName(final XMLNamespace namespace, final String localName) { return noRevQNameToSupport.get(QName.create(namespace, localName)); } } diff --git a/yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java b/yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java index 2342cd2844..ecd55ddcaa 100644 --- a/yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java +++ b/yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java @@ -12,7 +12,6 @@ import static org.hamcrest.Matchers.isA; import static org.junit.Assert.assertEquals; import com.google.common.collect.ImmutableBiMap; -import java.net.URI; import javax.xml.xpath.XPathExpressionException; import org.eclipse.jdt.annotation.Nullable; import org.junit.Before; @@ -20,6 +19,7 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.BiMapYangNamespaceContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangNamespaceContext; import org.opendaylight.yangtools.yang.xpath.api.YangBinaryExpr; import org.opendaylight.yangtools.yang.xpath.api.YangBinaryOperator; @@ -31,11 +31,11 @@ import org.opendaylight.yangtools.yang.xpath.api.YangXPathMathMode; @SuppressWarnings("null") public class XPathParserTest { - private static final QNameModule DEFNS = QNameModule.create(URI.create("defaultns")); + private static final QNameModule DEFNS = QNameModule.create(XMLNamespace.of("defaultns")); private static final YangNamespaceContext CONTEXT = new BiMapYangNamespaceContext(ImmutableBiMap.of( "def", DEFNS, - "foo", QNameModule.create(URI.create("foo")), - "bar", QNameModule.create(URI.create("bar")))); + "foo", QNameModule.create(XMLNamespace.of("foo")), + "bar", QNameModule.create(XMLNamespace.of("bar")))); private @Nullable AntlrXPathParser parser; -- 2.36.6