From: Martin Ciglan Date: Tue, 27 Jun 2017 12:00:44 +0000 (+0200) Subject: Binding v2 runtime - write transaction fix X-Git-Tag: release/carbon-sr1~2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=23f7923979b49a8c010a0cfde4a620c130ebe3ed Binding v2 runtime - write transaction fix - don't fiddle with normalizer in runtime - make sure streamWriter method names correspond with yang-data-api naming - JUnit test revealing mentioned issues added Change-Id: Iebf92f43e0d3bd39e4c4c1aa0d38b8128cd7a918 Signed-off-by: Martin Ciglan (cherry picked from commit 6707b4a164734c6f2ea87bfe956a2367766e28a5) --- diff --git a/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BasicLeafValueTest.java b/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BasicLeafValueTest.java new file mode 100644 index 0000000000..d14a89d07d --- /dev/null +++ b/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BasicLeafValueTest.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2017 Pantheon Technologies 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.mdsal.binding.javav2.dom.adapter.test; + +import org.junit.Test; +import org.opendaylight.mdsal.binding.javav2.api.WriteTransaction; +import org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; +import org.opendaylight.mdsal.gen.javav2.urn.test.rev170627.data.MyCont; +import org.opendaylight.mdsal.gen.javav2.urn.test.rev170627.dto.MyContBuilder; + +public class BasicLeafValueTest extends AbstractDataBrokerTest { + + private static final InstanceIdentifier MY_CONT_NODE_PATH + = InstanceIdentifier.create(MyCont.class); + + @Test + public void testMyContLeafNode() throws TransactionCommitFailedException { + final WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); + final MyContBuilder hello = new MyContBuilder().setMyLeaf("hello"); + writeTx.put(LogicalDatastoreType.OPERATIONAL, MY_CONT_NODE_PATH, hello.build()); + writeTx.submit().checkedGet(); + } +} diff --git a/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/BindingToNormalizedStreamWriter.java b/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/BindingToNormalizedStreamWriter.java index 014e9c3a1e..324ee64b8c 100644 --- a/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/BindingToNormalizedStreamWriter.java +++ b/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/BindingToNormalizedStreamWriter.java @@ -144,7 +144,7 @@ public final class BindingToNormalizedStreamWriter } @Override - public void startleafNode(final String localName, final Object value) throws IOException { + public void leafNode(final String localName, final Object value) throws IOException { final Entry dom = serializeLeaf(localName, value); getDelegate().leafNode(dom.getKey(), dom.getValue()); } @@ -156,7 +156,7 @@ public final class BindingToNormalizedStreamWriter } @Override - public void startleafSetEntryNode(final Object value) throws IOException { + public void leafSetEntryNode(final Object value) throws IOException { final LeafNodeCodecContext ctx = (LeafNodeCodecContext) current(); getDelegate().leafSetEntryNode(ctx.getSchema().getQName(), ctx.getValueCodec().serialize(value)); } diff --git a/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/ForwardingBindingStreamEventWriter.java b/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/ForwardingBindingStreamEventWriter.java index bf11805acd..4820c7eea5 100644 --- a/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/ForwardingBindingStreamEventWriter.java +++ b/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/ForwardingBindingStreamEventWriter.java @@ -24,8 +24,8 @@ abstract class ForwardingBindingStreamEventWriter implements BindingStreamEventW protected abstract BindingStreamEventWriter delegate(); @Override - public void startleafNode(final String localName, final Object value) throws IOException { - delegate().startleafNode(localName, value); + public void leafNode(final String localName, final Object value) throws IOException { + delegate().leafNode(localName, value); } @Override @@ -39,8 +39,8 @@ abstract class ForwardingBindingStreamEventWriter implements BindingStreamEventW } @Override - public void startleafSetEntryNode(final Object value) throws IOException { - delegate().startleafSetEntryNode(value); + public void leafSetEntryNode(final Object value) throws IOException { + delegate().leafSetEntryNode(value); } @Override diff --git a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java index d4a98d92ce..11a1646fe5 100644 --- a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java +++ b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java @@ -287,12 +287,13 @@ public class BindingRuntimeContext implements Immutable { } private static Type referencedType(final Class type) { - return new ReferencedTypeImpl(type.getPackage().getName(), type.getSimpleName()); + return new ReferencedTypeImpl(type.getPackage().getName(), type.getSimpleName(), true); } static Type referencedType(final String type) { final int packageClassSeparator = type.lastIndexOf(DOT); - return new ReferencedTypeImpl(type.substring(0, packageClassSeparator), type.substring(packageClassSeparator + 1)); + return new ReferencedTypeImpl(type.substring(0, packageClassSeparator), + type.substring(packageClassSeparator + 1), true); } /** diff --git a/binding2/mdsal-binding2-spec/src/main/java/org/opendaylight/mdsal/binding/javav2/spec/runtime/BindingStreamEventWriter.java b/binding2/mdsal-binding2-spec/src/main/java/org/opendaylight/mdsal/binding/javav2/spec/runtime/BindingStreamEventWriter.java index 6ae9123fc5..a6fa33f5d5 100644 --- a/binding2/mdsal-binding2-spec/src/main/java/org/opendaylight/mdsal/binding/javav2/spec/runtime/BindingStreamEventWriter.java +++ b/binding2/mdsal-binding2-spec/src/main/java/org/opendaylight/mdsal/binding/javav2/spec/runtime/BindingStreamEventWriter.java @@ -14,8 +14,8 @@ import java.io.Flushable; import java.io.IOException; import org.opendaylight.mdsal.binding.javav2.spec.base.IdentifiableItem; import org.opendaylight.mdsal.binding.javav2.spec.base.Item; -import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentation; import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode; +import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentation; /** * Event Stream Writer for Binding version 2 Representation @@ -46,13 +46,13 @@ import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode; * * *
  • leaf - Leaf node event is emitted using - * {@link #startleafNode(String, Object)}. {@link #endNode()} MUST NOT be emitted for + * {@link #leafNode(String, Object)}. {@link #endNode()} MUST NOT be emitted for * leaf node.
  • * *
  • leaf-list - Leaf list start is emitted using * {@link #startLeafSet(String, int)}. Leaf list end is emitted using * {@link #endNode()}. Leaf list entries are emitted using - * {@link #startleafSetEntryNode(Object)}. + * {@link #leafSetEntryNode(Object)}. * *
  • anyxml - Anyxml node event is emitted using * {@link #startAnyxmlNode(String, Object)}. {@link #endNode()} MUST NOT be emitted @@ -132,14 +132,14 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { * choice unkeyed list node. * @throws IOException if an underlying IO error occurs */ - void startleafNode(String localName, Object value) throws IOException; + void leafNode(String localName, Object value) throws IOException; /** * * Emits a start of leaf set (leaf-list). *

    * Emits start of leaf set, during writing leaf set event, only - * {@link #startleafSetEntryNode(Object)} calls are valid. Leaf set event is + * {@link #leafSetEntryNode(Object)} calls are valid. Leaf set event is * finished by calling {@link #endNode()}. * * @param localName @@ -165,7 +165,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { * Emits a start of leaf set (leaf-list). *

    * Emits start of leaf set, during writing leaf set event, only - * {@link #startleafSetEntryNode(Object)} calls are valid. Leaf set event is + * {@link #leafSetEntryNode(Object)} calls are valid. Leaf set event is * finished by calling {@link #endNode()}. * * @param localName @@ -197,7 +197,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { * If node was emitted outside leaf set node. * @throws IOException if an underlying IO error occurs */ - void startleafSetEntryNode(Object value) throws IOException; + void leafSetEntryNode(Object value) throws IOException; /** * @@ -209,7 +209,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { *

    * Valid sub-events are: *

      - *
    • {@link #startleafNode(String, Object)}
    • + *
    • {@link #leafNode(String, Object)}
    • *
    • {@link #startContainerNode(Class, int)}
    • *
    • {@link #startChoiceNode(Item, int)}
    • *
    • {@link #startLeafSet(String, int)}
    • @@ -272,7 +272,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { * Valid sub-events are: * *
        - *
      • {@link #startleafNode(String, Object)}
      • + *
      • {@link #leafNode(String, Object)}
      • *
      • {@link #startContainerNode(Class, int)}
      • *
      • {@link #startChoiceNode(Item, int)}
      • *
      • {@link #startLeafSet(String, int)}
      • @@ -353,7 +353,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { *

        * Valid sub-events are: *

          - *
        • {@link #startleafNode(String, Object)}
        • + *
        • {@link #leafNode(String, Object)}
        • *
        • {@link #startContainerNode(Class, int)}
        • *
        • {@link #startChoiceNode(Item, int)}
        • *
        • {@link #startLeafSet(String, int)}
        • @@ -407,7 +407,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { *

          * Valid sub-events are: *

            - *
          • {@link #startleafNode(String, Object)}
          • + *
          • {@link #leafNode(String, Object)}
          • *
          • {@link #startContainerNode(Class, int)}
          • *
          • {@link #startChoiceNode(Item, int)}
          • *
          • {@link #startLeafSet(String, int)}
          • @@ -432,7 +432,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable { * Valid sub-events are: * *
              - *
            • {@link #startleafNode(String, Object)}
            • + *
            • {@link #leafNode(String, Object)}
            • *
            • {@link #startContainerNode(Class, int)}
            • *
            • {@link #startChoiceNode(Item, int)}
            • *
            • {@link #startLeafSet(String, int)}
            • diff --git a/binding2/mdsal-binding2-test-model/src/main/yang/test.yang b/binding2/mdsal-binding2-test-model/src/main/yang/test.yang new file mode 100644 index 0000000000..3f31fe95cf --- /dev/null +++ b/binding2/mdsal-binding2-test-model/src/main/yang/test.yang @@ -0,0 +1,18 @@ +module test { + namespace "urn:test"; + prefix tst; + + revision 2017-06-27; + + typedef id { + type uint16 { + range "1..4094"; + } + } + + container my-cont { + leaf my-leaf { + type string; + } + } +} \ No newline at end of file