From 7c0ec3e4540c1a10a03efcfbae06c4a7915977a6 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Tue, 1 Mar 2022 11:10:58 -0500 Subject: Migrate SLI to OpenDaylight Phosphorus Updated ccsdk/sli to use Phosphorus SR1 version of parent poms and updated Java Reflection code to handle changes in Phosphorus: - use Uint8/Uint16/Uint32/Uint64 classes in place of char/Short/Long/BigInteger, respectively - add code for toMap method to handle change in representation of yang list from java List to java Map - Add new YangUtils class to replace removed ODL yangtools SchemaUtils class - Update restconf-client due to changes in yangtools Issue-ID: CCSDK-3567 Signed-off-by: Dan Timoney Change-Id: Iea581c7f39b1038ce95cc0ca6728fe56dd023f3e --- plugins/restconf-client/installer/pom.xml | 2 +- plugins/restconf-client/pom.xml | 2 +- plugins/restconf-client/provider/pom.xml | 8 ++++++- .../restconfapicall/RestconfApiCallNode.java | 3 ++- .../dfserializer/DfSerializerUtil.java | 10 +++------ .../dfserializer/MdsalSerializerHelper.java | 4 ++-- .../dfserializer/PropertiesNodeXmlListener.java | 3 ++- .../yangserializers/pnserializer/InnerNode.java | 2 +- .../MdsalPropertiesNodeSerializer.java | 4 +++- .../pnserializer/MdsalPropertiesNodeUtils.java | 26 +++++++++++----------- .../yangserializers/pnserializer/Namespace.java | 11 ++++----- .../yangserializers/pnserializer/RootNode.java | 2 +- 12 files changed, 42 insertions(+), 35 deletions(-) (limited to 'plugins/restconf-client') diff --git a/plugins/restconf-client/installer/pom.xml b/plugins/restconf-client/installer/pom.xml index 82448519a..8c594aae1 100755 --- a/plugins/restconf-client/installer/pom.xml +++ b/plugins/restconf-client/installer/pom.xml @@ -5,7 +5,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT org.onap.ccsdk.sli.plugins diff --git a/plugins/restconf-client/pom.xml b/plugins/restconf-client/pom.xml index 9005c84ad..a884bd507 100755 --- a/plugins/restconf-client/pom.xml +++ b/plugins/restconf-client/pom.xml @@ -5,7 +5,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT org.onap.ccsdk.sli.plugins diff --git a/plugins/restconf-client/provider/pom.xml b/plugins/restconf-client/provider/pom.xml index e82690afb..0e40a4958 100755 --- a/plugins/restconf-client/provider/pom.xml +++ b/plugins/restconf-client/provider/pom.xml @@ -5,7 +5,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT org.onap.ccsdk.sli.plugins @@ -58,9 +58,15 @@ properties-node-provider ${project.version} + + org.opendaylight.yangtools + yang-common + provided + org.opendaylight.yangtools yang-data-impl + provided com.fasterxml.jackson.core diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/restconfapicall/RestconfApiCallNode.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/restconfapicall/RestconfApiCallNode.java index b5a9df706..4a2e18198 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/restconfapicall/RestconfApiCallNode.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/restconfapicall/RestconfApiCallNode.java @@ -84,6 +84,7 @@ import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.Namespace; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.PropertiesNodeSerializer; import org.opendaylight.restconf.common.context.InstanceIdentifierContext; import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; @@ -479,7 +480,7 @@ public class RestconfApiCallNode implements SvcLogicJavaPlugin { * @throws SvcLogicException when XML parsing fails */ private String getXmlReqForPutOp(String req, String nodeName, - URI modNs) throws SvcLogicException { + XMLNamespace modNs) throws SvcLogicException { req = getUpdatedXmlReq(req, nodeName, modNs.toString()); Document oldDoc; try { diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DfSerializerUtil.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DfSerializerUtil.java index 0134a5a47..ab554dd45 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DfSerializerUtil.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DfSerializerUtil.java @@ -45,6 +45,7 @@ import org.dom4j.Element; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.Namespace; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.PropertiesNode; +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.TypeDefinition; @@ -190,13 +191,8 @@ public final class DfSerializerUtil { if (mName != null) { it = ctx.findModules(mName).iterator(); } else { - URI modUri = null; - try { - modUri = new URI(mUri); - } catch (URISyntaxException e) { - throw new SvcLogicException(URI_ERR, e); - } - it = ctx.findModules(modUri).iterator(); + + it = ctx.findModules(XMLNamespace.of(mUri)).iterator(); } if (!it.hasNext()) { diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/MdsalSerializerHelper.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/MdsalSerializerHelper.java index 1fd0d2dee..08edacc8a 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/MdsalSerializerHelper.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/MdsalSerializerHelper.java @@ -52,8 +52,8 @@ import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.M import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.MULTI_INSTANCE_NODE; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.SINGLE_INSTANCE_LEAF_NODE; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.SINGLE_INSTANCE_NODE; -import static org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findDataChildSchemaByQName; -import static org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findSchemaForChild; +import static org.onap.ccsdk.sli.core.sli.provider.YangUtils.findDataChildSchemaByQName; +import static org.onap.ccsdk.sli.core.sli.provider.YangUtils.findSchemaForChild; import static org.opendaylight.yangtools.yang.data.util.ParserStreamUtils.findSchemaNodeByNameAndNamespace; /** diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/PropertiesNodeXmlListener.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/PropertiesNodeXmlListener.java index f098195e4..09734b6b6 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/PropertiesNodeXmlListener.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/PropertiesNodeXmlListener.java @@ -30,6 +30,7 @@ import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.Namespace; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.PropertiesNode; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.PropertiesNodeListener; import org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.RootNode; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import java.io.Writer; import java.net.URI; @@ -211,7 +212,7 @@ public class PropertiesNodeXmlListener implements PropertiesNodeListener { */ private void setValueWithNs(Element element, LeafNode node) { Namespace valNs = node.valueNs(); - URI modNs = (valNs == null) ? null : valNs.moduleNs(); + XMLNamespace modNs = (valNs == null) ? null : valNs.moduleNs(); String val = node.value(); if (modNs != null) { element.addNamespace(XML_PREFIX, modNs.toString()); diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/InnerNode.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/InnerNode.java index 1cf99b2d4..a7a2b3735 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/InnerNode.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/InnerNode.java @@ -35,7 +35,7 @@ import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.MdsalPrope import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.MdsalPropertiesNodeUtils.resolveName; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.MULTI_INSTANCE_HOLDER_NODE; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.MULTI_INSTANCE_LEAF_HOLDER_NODE; -import static org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findCorrespondingAugment; +import static org.onap.ccsdk.sli.core.sli.provider.YangUtils.findCorrespondingAugment; /** * Abstraction of an entity that represents an inner node to properties data diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/MdsalPropertiesNodeSerializer.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/MdsalPropertiesNodeSerializer.java index 8fd7a12bc..063e030ac 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/MdsalPropertiesNodeSerializer.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/MdsalPropertiesNodeSerializer.java @@ -40,7 +40,9 @@ import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.S import java.util.HashMap; import java.util.Map; import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.provider.YangUtils; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaNode; @@ -143,7 +145,7 @@ public class MdsalPropertiesNodeSerializer extends PropertiesNodeSerializer schemaNodeDeque = ParserStreamUtils. findSchemaNodeByNameAndNamespace(((DataSchemaNode) - curSchema), name, namespace.moduleNs()); + curSchema), name, XMLNamespace.of(namespace.moduleNs().toString())); if (schemaNodeDeque.isEmpty()) { // could not find schema node return null; @@ -467,10 +465,12 @@ public final class MdsalPropertiesNodeUtils { } // node is child of Choice/case - return SchemaUtils.findSchemaForChild(((ChoiceSchemaNode) schemaNode), + + + return YangUtils.findSchemaForChild(((ChoiceSchemaNode) schemaNode), qname); } else { - return SchemaUtils.findDataChildSchemaByQName(curSchema, qname); + return YangUtils.findDataChildSchemaByQName(curSchema, qname); } } diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/Namespace.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/Namespace.java index 4f27ee1e7..9bb71b5ba 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/Namespace.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/Namespace.java @@ -20,14 +20,15 @@ package org.onap.ccsdk.sli.plugins.yangserializers.pnserializer; -import java.net.URI; + +import org.opendaylight.yangtools.yang.common.XMLNamespace; /** * Representation of YANG namespace. */ public class Namespace { private String moduleName; - private URI moduleNs; + private XMLNamespace moduleNs; private String revision; /** @@ -38,7 +39,7 @@ public class Namespace { * @param moduleNs module namespace * @param revision revision */ - public Namespace(String modulename, URI moduleNs, String revision) { + public Namespace(String modulename, XMLNamespace moduleNs, String revision) { this.moduleName = modulename; this.moduleNs = moduleNs; this.revision = revision; @@ -67,7 +68,7 @@ public class Namespace { * * @return module namespace */ - public URI moduleNs() { + public XMLNamespace moduleNs() { return moduleNs; } @@ -76,7 +77,7 @@ public class Namespace { * * @param moduleNs module namespace */ - public void moduleNs(URI moduleNs) { + public void moduleNs(XMLNamespace moduleNs) { this.moduleNs = moduleNs; } diff --git a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/RootNode.java b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/RootNode.java index c7f7340fd..d7ca885da 100644 --- a/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/RootNode.java +++ b/plugins/restconf-client/provider/src/main/java/org/onap/ccsdk/sli/plugins/yangserializers/pnserializer/RootNode.java @@ -35,7 +35,7 @@ import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.MdsalPrope import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.MdsalPropertiesNodeUtils.resolveName; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.MULTI_INSTANCE_HOLDER_NODE; import static org.onap.ccsdk.sli.plugins.yangserializers.pnserializer.NodeType.MULTI_INSTANCE_LEAF_HOLDER_NODE; -import static org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findCorrespondingAugment; +import static org.onap.ccsdk.sli.core.sli.provider.YangUtils.findCorrespondingAugment; /** * Abstraction of node representing properties data tree. -- cgit 1.2.3-korg