From: Ed Warnicke Date: Tue, 2 Sep 2014 11:52:33 +0000 (+0000) Subject: Merge "Bug 1569 - [DEV] Too small variable for OF-Port-Number" X-Git-Tag: release/helium~168 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=287b1d1ecec3264c192b1007019bfcadf6cb4311;hp=d2a21873f85921bece6baa237442e4eadea8835d Merge "Bug 1569 - [DEV] Too small variable for OF-Port-Number" --- diff --git a/features/mdsal/pom.xml b/features/mdsal/pom.xml index 3a9de7abcd..41f1eab488 100644 --- a/features/mdsal/pom.xml +++ b/features/mdsal/pom.xml @@ -60,6 +60,10 @@ org.opendaylight.controller sal-dom-xsql + + org.opendaylight.controller + sal-dom-xsql-config + org.opendaylight.controller sal-binding-api @@ -184,6 +188,42 @@ xml config + + org.opendaylight.controller + sal-rest-docgen + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.datatype + jackson-datatype-json-org + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + + + org.json + json + org.opendaylight.yangtools diff --git a/features/mdsal/src/main/resources/features.xml b/features/mdsal/src/main/resources/features.xml index 9e29fc84f8..0176a0388c 100644 --- a/features/mdsal/src/main/resources/features.xml +++ b/features/mdsal/src/main/resources/features.xml @@ -71,4 +71,19 @@ mvn:org.opendaylight.controller/sal-dom-xsql/${project.version} mvn:org.opendaylight.controller/sal-dom-xsql-config/${project.version}/xml/config + + odl-restconf + mvn:org.opendaylight.controller/sal-rest-docgen/${project.version} + mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.version} + mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version} + mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version} + mvn:com.fasterxml.jackson.datatype/jackson-datatype-json-org/${jackson.version} + mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson.version} + mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson.version} + mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson.version} + mvn:com.sun.jersey/jersey-core/${jersey.version} + mvn:com.sun.jersey/jersey-server/${jersey.version} + mvn:com.sun.jersey/jersey-servlet/${jersey.version} + wrap:mvn:org.json/json/${org.json.version} + diff --git a/opendaylight/commons/opendaylight/pom.xml b/opendaylight/commons/opendaylight/pom.xml index 425e968cf7..1fc32b37d8 100644 --- a/opendaylight/commons/opendaylight/pom.xml +++ b/opendaylight/commons/opendaylight/pom.xml @@ -39,6 +39,7 @@ 0.4.2-SNAPSHOT 0.4.2-SNAPSHOT + 3.0.1 7.0.32.v201211201336 7.0.32.v201211201952 7.0.32.v201211201952 @@ -253,6 +254,16 @@ logback-core ${logback.version} + + com.codahale.metrics + metrics-core + ${codahale.metrics.version} + + + com.codahale.metrics + metrics-graphite + ${codahale.metrics.version} + com.fasterxml.jackson.core jackson-annotations @@ -1292,6 +1303,11 @@ sal-dom-xsql ${mdsal.version} + + org.opendaylight.controller + sal-dom-xsql-config + ${mdsal.version} + org.opendaylight.controller sal-core-api @@ -1754,6 +1770,11 @@ yang-data-composite-node ${yangtools.version} + + org.opendaylight.yangtools + yang-data-codec-gson + ${yangtools.version} + diff --git a/opendaylight/distribution/opendaylight/pom.xml b/opendaylight/distribution/opendaylight/pom.xml index fc8b4453ea..4ae35c905f 100644 --- a/opendaylight/distribution/opendaylight/pom.xml +++ b/opendaylight/distribution/opendaylight/pom.xml @@ -1259,6 +1259,10 @@ org.opendaylight.yangtools yang-parser-impl + + org.opendaylight.yangtools + yang-data-codec-gson + org.opendaylight.yangtools yang-data-composite-node diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index c184c44d7d..ce830eaa62 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -77,13 +77,13 @@ sal-dom-xsql + sal-dom-xsql-config sal-test-model sal-remoterpc-connector - sal-dom-xsql-config diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 084ef16f57..325005b239 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -11,9 +11,9 @@ - com.google.protobuf - protobuf-java - 2.5.0 + org.opendaylight.controller + sal-clustering-commons + 1.1-SNAPSHOT com.google.guava diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValue.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValue.java index 560d5fc194..db3e683130 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValue.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValue.java @@ -9,9 +9,9 @@ package org.opendaylight.controller.cluster.example.messages; import com.google.protobuf.GeneratedMessage; -import org.opendaylight.controller.cluster.example.protobuff.messages.KeyValueMessages; +import org.opendaylight.controller.protobuff.messages.cluster.example.KeyValueMessages; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import java.io.Serializable; import java.util.HashMap; diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java index 94366efd5e..6665d7549b 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java @@ -12,7 +12,7 @@ import com.google.protobuf.GeneratedMessage; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.ReplicatedLogImplEntry; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import java.util.ArrayList; import java.util.Iterator; diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/client/messages/Payload.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/client/messages/Payload.java index 9a251cd645..502c338f22 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/client/messages/Payload.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/client/messages/Payload.java @@ -10,7 +10,7 @@ package org.opendaylight.controller.cluster.raft.protobuff.client.messages; import com.google.protobuf.GeneratedMessage; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import java.util.Map; diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/VotingMessages.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/VotingMessages.java deleted file mode 100644 index 5b3bd2b3a9..0000000000 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/VotingMessages.java +++ /dev/null @@ -1,767 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: VotingMessages.proto - -package org.opendaylight.controller.cluster.raft.protobuff.messages; - -public final class VotingMessages { - private VotingMessages() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface RequestVoteOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional int64 term = 1; - /** - * optional int64 term = 1; - */ - boolean hasTerm(); - /** - * optional int64 term = 1; - */ - long getTerm(); - - // optional string candidateId = 2; - /** - * optional string candidateId = 2; - */ - boolean hasCandidateId(); - /** - * optional string candidateId = 2; - */ - java.lang.String getCandidateId(); - /** - * optional string candidateId = 2; - */ - com.google.protobuf.ByteString - getCandidateIdBytes(); - - // optional int64 lastLongIndex = 3; - /** - * optional int64 lastLongIndex = 3; - */ - boolean hasLastLongIndex(); - /** - * optional int64 lastLongIndex = 3; - */ - long getLastLongIndex(); - - // optional int64 lastLongTerm = 4; - /** - * optional int64 lastLongTerm = 4; - */ - boolean hasLastLongTerm(); - /** - * optional int64 lastLongTerm = 4; - */ - long getLastLongTerm(); - } - /** - * Protobuf type {@code org.opendaylight.controller.cluster.raft.RequestVote} - */ - public static final class RequestVote extends - com.google.protobuf.GeneratedMessage - implements RequestVoteOrBuilder { - // Use RequestVote.newBuilder() to construct. - private RequestVote(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private RequestVote(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final RequestVote defaultInstance; - public static RequestVote getDefaultInstance() { - return defaultInstance; - } - - public RequestVote getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private RequestVote( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - initFields(); - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFields, - extensionRegistry, tag)) { - done = true; - } - break; - } - case 8: { - bitField0_ |= 0x00000001; - term_ = input.readInt64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - candidateId_ = input.readBytes(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - lastLongIndex_ = input.readInt64(); - break; - } - case 32: { - bitField0_ |= 0x00000008; - lastLongTerm_ = input.readInt64(); - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.internal_static_org_opendaylight_controller_cluster_raft_RequestVote_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.class, org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public RequestVote parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new RequestVote(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional int64 term = 1; - public static final int TERM_FIELD_NUMBER = 1; - private long term_; - /** - * optional int64 term = 1; - */ - public boolean hasTerm() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional int64 term = 1; - */ - public long getTerm() { - return term_; - } - - // optional string candidateId = 2; - public static final int CANDIDATEID_FIELD_NUMBER = 2; - private java.lang.Object candidateId_; - /** - * optional string candidateId = 2; - */ - public boolean hasCandidateId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string candidateId = 2; - */ - public java.lang.String getCandidateId() { - java.lang.Object ref = candidateId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - candidateId_ = s; - } - return s; - } - } - /** - * optional string candidateId = 2; - */ - public com.google.protobuf.ByteString - getCandidateIdBytes() { - java.lang.Object ref = candidateId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - candidateId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional int64 lastLongIndex = 3; - public static final int LASTLONGINDEX_FIELD_NUMBER = 3; - private long lastLongIndex_; - /** - * optional int64 lastLongIndex = 3; - */ - public boolean hasLastLongIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional int64 lastLongIndex = 3; - */ - public long getLastLongIndex() { - return lastLongIndex_; - } - - // optional int64 lastLongTerm = 4; - public static final int LASTLONGTERM_FIELD_NUMBER = 4; - private long lastLongTerm_; - /** - * optional int64 lastLongTerm = 4; - */ - public boolean hasLastLongTerm() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional int64 lastLongTerm = 4; - */ - public long getLastLongTerm() { - return lastLongTerm_; - } - - private void initFields() { - term_ = 0L; - candidateId_ = ""; - lastLongIndex_ = 0L; - lastLongTerm_ = 0L; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeInt64(1, term_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getCandidateIdBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeInt64(3, lastLongIndex_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeInt64(4, lastLongTerm_); - } - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, term_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getCandidateIdBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, lastLongIndex_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(4, lastLongTerm_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code org.opendaylight.controller.cluster.raft.RequestVote} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVoteOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.internal_static_org_opendaylight_controller_cluster_raft_RequestVote_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.class, org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.Builder.class); - } - - // Construct using org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - term_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - candidateId_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - lastLongIndex_ = 0L; - bitField0_ = (bitField0_ & ~0x00000004); - lastLongTerm_ = 0L; - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor; - } - - public org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote getDefaultInstanceForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.getDefaultInstance(); - } - - public org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote build() { - org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote buildPartial() { - org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote result = new org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.term_ = term_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.candidateId_ = candidateId_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.lastLongIndex_ = lastLongIndex_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.lastLongTerm_ = lastLongTerm_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote) { - return mergeFrom((org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote other) { - if (other == org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote.getDefaultInstance()) return this; - if (other.hasTerm()) { - setTerm(other.getTerm()); - } - if (other.hasCandidateId()) { - bitField0_ |= 0x00000002; - candidateId_ = other.candidateId_; - onChanged(); - } - if (other.hasLastLongIndex()) { - setLastLongIndex(other.getLastLongIndex()); - } - if (other.hasLastLongTerm()) { - setLastLongTerm(other.getLastLongTerm()); - } - this.mergeUnknownFields(other.getUnknownFields()); - return this; - } - - public final boolean isInitialized() { - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opendaylight.controller.cluster.raft.protobuff.messages.VotingMessages.RequestVote) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional int64 term = 1; - private long term_ ; - /** - * optional int64 term = 1; - */ - public boolean hasTerm() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional int64 term = 1; - */ - public long getTerm() { - return term_; - } - /** - * optional int64 term = 1; - */ - public Builder setTerm(long value) { - bitField0_ |= 0x00000001; - term_ = value; - onChanged(); - return this; - } - /** - * optional int64 term = 1; - */ - public Builder clearTerm() { - bitField0_ = (bitField0_ & ~0x00000001); - term_ = 0L; - onChanged(); - return this; - } - - // optional string candidateId = 2; - private java.lang.Object candidateId_ = ""; - /** - * optional string candidateId = 2; - */ - public boolean hasCandidateId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string candidateId = 2; - */ - public java.lang.String getCandidateId() { - java.lang.Object ref = candidateId_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - candidateId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string candidateId = 2; - */ - public com.google.protobuf.ByteString - getCandidateIdBytes() { - java.lang.Object ref = candidateId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - candidateId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string candidateId = 2; - */ - public Builder setCandidateId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - candidateId_ = value; - onChanged(); - return this; - } - /** - * optional string candidateId = 2; - */ - public Builder clearCandidateId() { - bitField0_ = (bitField0_ & ~0x00000002); - candidateId_ = getDefaultInstance().getCandidateId(); - onChanged(); - return this; - } - /** - * optional string candidateId = 2; - */ - public Builder setCandidateIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - candidateId_ = value; - onChanged(); - return this; - } - - // optional int64 lastLongIndex = 3; - private long lastLongIndex_ ; - /** - * optional int64 lastLongIndex = 3; - */ - public boolean hasLastLongIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional int64 lastLongIndex = 3; - */ - public long getLastLongIndex() { - return lastLongIndex_; - } - /** - * optional int64 lastLongIndex = 3; - */ - public Builder setLastLongIndex(long value) { - bitField0_ |= 0x00000004; - lastLongIndex_ = value; - onChanged(); - return this; - } - /** - * optional int64 lastLongIndex = 3; - */ - public Builder clearLastLongIndex() { - bitField0_ = (bitField0_ & ~0x00000004); - lastLongIndex_ = 0L; - onChanged(); - return this; - } - - // optional int64 lastLongTerm = 4; - private long lastLongTerm_ ; - /** - * optional int64 lastLongTerm = 4; - */ - public boolean hasLastLongTerm() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional int64 lastLongTerm = 4; - */ - public long getLastLongTerm() { - return lastLongTerm_; - } - /** - * optional int64 lastLongTerm = 4; - */ - public Builder setLastLongTerm(long value) { - bitField0_ |= 0x00000008; - lastLongTerm_ = value; - onChanged(); - return this; - } - /** - * optional int64 lastLongTerm = 4; - */ - public Builder clearLastLongTerm() { - bitField0_ = (bitField0_ & ~0x00000008); - lastLongTerm_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:org.opendaylight.controller.cluster.raft.RequestVote) - } - - static { - defaultInstance = new RequestVote(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:org.opendaylight.controller.cluster.raft.RequestVote) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_org_opendaylight_controller_cluster_raft_RequestVote_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024VotingMessages.proto\022(org.opendaylight" + - ".controller.cluster.raft\"]\n\013RequestVote\022" + - "\014\n\004term\030\001 \001(\003\022\023\n\013candidateId\030\002 \001(\t\022\025\n\rla" + - "stLongIndex\030\003 \001(\003\022\024\n\014lastLongTerm\030\004 \001(\003B" + - "O\n;org.opendaylight.controller.cluster.r" + - "aft.protobuff.messagesB\016VotingMessagesH\001" - }; - com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = - new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { - public com.google.protobuf.ExtensionRegistry assignDescriptors( - com.google.protobuf.Descriptors.FileDescriptor root) { - descriptor = root; - internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_org_opendaylight_controller_cluster_raft_RequestVote_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_org_opendaylight_controller_cluster_raft_RequestVote_descriptor, - new java.lang.String[] { "Term", "CandidateId", "LastLongIndex", "LastLongTerm", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/resources/VotingMessages.proto b/opendaylight/md-sal/sal-akka-raft/src/main/resources/VotingMessages.proto deleted file mode 100644 index 6a45a2bfc9..0000000000 --- a/opendaylight/md-sal/sal-akka-raft/src/main/resources/VotingMessages.proto +++ /dev/null @@ -1,13 +0,0 @@ -package org.opendaylight.controller.cluster.raft; - -option java_package = "org.opendaylight.controller.cluster.raft.protobuff.messages"; -option java_outer_classname = "VotingMessages"; -option optimize_for = SPEED; - -message RequestVote { - optional int64 term = 1; - optional string candidateId = 2; - optional int64 lastLongIndex = 3; - optional int64 lastLongTerm = 4; - -} diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java index 70671a6a21..ea3c9e759d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java @@ -16,8 +16,8 @@ import akka.event.Logging; import akka.event.LoggingAdapter; import com.google.protobuf.GeneratedMessage; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; -import org.opendaylight.controller.cluster.raft.protobuff.messages.MockPayloadMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.test.MockPayloadMessages; import com.google.common.base.Preconditions; import java.io.Serializable; diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java index ab6d56c15a..6be5f2d481 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java @@ -3,6 +3,12 @@ package org.opendaylight.controller.sal.binding.impl.connect.dom; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; +import com.google.common.base.Function; +import com.google.common.collect.FluentIterable; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + import java.lang.ref.WeakReference; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -21,13 +27,13 @@ import org.opendaylight.controller.sal.core.api.RpcImplementation; import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; import org.opendaylight.yangtools.concepts.CompositeObjectRegistration; import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.BaseIdentity; import org.opendaylight.yangtools.yang.binding.BindingMapping; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.RpcService; import org.opendaylight.yangtools.yang.binding.util.BindingReflections; -import org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; @@ -35,12 +41,6 @@ import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMapping import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Function; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { private final Logger LOG = LoggerFactory.getLogger(DomToBindingRpcForwarder.class); @@ -65,8 +65,8 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { static { try { EQUALS_METHOD = Object.class.getMethod("equals", Object.class); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (NoSuchMethodException | SecurityException e) { + throw new ExceptionInInitializerError(e); } } @@ -94,7 +94,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { } /** - * Constructor for Routed RPC Forwareder. + * Constructor for Routed RPC Forwarder. * * @param service * @param context diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 4419d19f52..b8980cd0be 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -12,7 +12,46 @@ bundle - + + + + com.typesafe.akka + akka-actor_${scala.version} + + + + com.typesafe.akka + akka-cluster_${scala.version} + + + + com.typesafe.akka + akka-persistence-experimental_${scala.version} + + + + com.typesafe.akka + akka-remote_${scala.version} + + + + com.typesafe.akka + akka-testkit_${scala.version} + + + + + org.scala-lang + scala-library + + + + + com.typesafe.akka + akka-slf4j_${scala.version} + + + com.google.code.findbugs jsr305 @@ -84,6 +123,11 @@ junit test + + org.mockito + mockito-all + test + org.slf4j slf4j-simple @@ -119,11 +163,6 @@ yang-binding - - org.opendaylight.controller - sal-akka-raft - 1.1-SNAPSHOT - com.google.guava @@ -160,12 +199,46 @@ jsr305 2.0.1 - com.codahale.metrics metrics-core - 3.0.1 + + + com.codahale.metrics + metrics-graphite + + + + org.jacoco + jacoco-maven-plugin + + + org.opendaylight.controller.* + + + org.opendaylight.controller.protobuff.* + + false + + + + pre-test + + prepare-agent + + + + post-test + + report + + test + + + + + diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodec.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodec.java index d1ae264c3b..4e76e37fa2 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodec.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodec.java @@ -10,9 +10,9 @@ package org.opendaylight.controller.cluster.datastore.node; -import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; import org.opendaylight.controller.cluster.datastore.node.utils.PathUtils; -import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeSerializer; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -29,45 +29,27 @@ public class NormalizedNodeToNodeCodec { } public NormalizedNodeMessages.Container encode(YangInstanceIdentifier id, NormalizedNode node){ + + NormalizedNodeMessages.Container.Builder builder = NormalizedNodeMessages.Container.newBuilder(); String parentPath = ""; if(id != null){ parentPath = PathUtils.getParentPath(PathUtils.toString(id)); } + builder.setParentPath(parentPath); + if(node != null) { + builder.setNormalizedNode(NormalizedNodeSerializer.serialize(node)); + } - NormalizedNodeToProtocolBufferNode encoder = new NormalizedNodeToProtocolBufferNode(); - encoder.encode(parentPath, node); - - return encoder.getContainer(); - - + return builder.build(); } public NormalizedNode decode(YangInstanceIdentifier id, NormalizedNodeMessages.Node node){ - NodeToNormalizedNodeBuilder currentOp = NodeToNormalizedNodeBuilder.from(ctx); - - for(YangInstanceIdentifier.PathArgument pathArgument : id.getPathArguments()){ - currentOp = currentOp.getChild(pathArgument); - } - - QName nodeType = null; - - if(id.getPath().size() < 1){ - nodeType = null; - } else { - final YangInstanceIdentifier.PathArgument pathArgument = id.getPath().get(id.getPath().size() - 1); - if(pathArgument instanceof YangInstanceIdentifier.AugmentationIdentifier){ - nodeType = null; - } else { - nodeType = pathArgument.getNodeType(); - } - } - if((node != null)&& (!node.getType().isEmpty())){ - return currentOp.normalize(nodeType, node); - } else{ - return null; - } + if(node.getIntType() < 0 || node.getSerializedSize() == 0){ + return null; + } + return NormalizedNodeSerializer.deSerialize(node); } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeDeSerializationContext.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeDeSerializationContext.java new file mode 100644 index 0000000000..0ed1317997 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeDeSerializationContext.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +/** + * NormalizedNodeDeSerializationContext provides methods which help in decoding + * certain components of a NormalizedNode properly + */ + +public interface NormalizedNodeDeSerializationContext { + String getNamespace(int namespace); + String getRevision(int revision); + String getLocalName(int localName); +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializationContext.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializationContext.java new file mode 100644 index 0000000000..660bc28e62 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializationContext.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import java.net.URI; +import java.util.Date; + +/** + * NormalizedNodeSerializationContext provides methods which help in encoding + * certain components of a NormalizedNode properly + */ +public interface NormalizedNodeSerializationContext { + int addNamespace(URI namespace); + int addRevision(Date revision); + int addLocalName(String localName); +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializer.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializer.java new file mode 100644 index 0000000000..3e1bd35632 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializer.java @@ -0,0 +1,551 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.data.api.Node; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode; +import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; +import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.ListNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeAttrBuilder; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.ANY_XML_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.AUGMENTATION_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.CHOICE_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.CONTAINER_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.LEAF_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.LEAF_SET_ENTRY_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.LEAF_SET_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.MAP_ENTRY_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.MAP_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.ORDERED_LEAF_SET_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.ORDERED_MAP_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.UNKEYED_LIST_ENTRY_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.UNKEYED_LIST_NODE_TYPE; +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeType.getSerializableNodeType; + +/** + * NormalizedNodeSerializer can be used to convert a Normalized node to and and + * from a protocol buffer message. + * + * + */ +public class NormalizedNodeSerializer { + + /** + * Serialize a NormalizedNode into a protocol buffer message + *

+ * The significant things to be aware of the Serialization process are + *

    + *
  • Repeated strings like namespaces, revisions and localNames are + * compressed to codes and stored in the top level of the normalized + * node protocol buffer message + *
  • + *
  • All value types are encoded for each leaf value. This is so that + * the deSerialization process does not need to use the schema context to + * figure out how to decode values + *
  • + *
+ * + * One question which may arise is why not use something like gzip to + * compress the protocol buffer message instead of rolling our own + * encoding scheme. This has to be explored further as it is a more + * general solution. + * + * @param node + * @return + */ + public static NormalizedNodeMessages.Node serialize(NormalizedNode node){ + Preconditions.checkNotNull(node, "node should not be null"); + return new Serializer(node).serialize(); + } + + + /** + * DeSerialize a protocol buffer message back into a NormalizedNode + * + * @param node + * @return + */ + public static NormalizedNode deSerialize(NormalizedNodeMessages.Node node){ + return new DeSerializer(node).deSerialize(); + } + + /** + * DeSerialize a PathArgument which is in the protocol buffer format into + * a yang PathArgument. The protocol buffer path argument is specially + * encoded and can only be interpreted in the context of a top level + * serialized NormalizedNode protocol buffer message. The reason for this + * is that during the NormalizedNode serialization process certain repeated + * strings are encoded into a "codes" list and the actual strings are + * replaced by an integer which is an index into that list. + * + * @param node + * @param pathArgument + * @return + */ + public static YangInstanceIdentifier.PathArgument deSerialize(NormalizedNodeMessages.Node node, NormalizedNodeMessages.PathArgument pathArgument){ + Preconditions.checkNotNull(node, "node should not be null"); + Preconditions.checkNotNull(pathArgument, "pathArgument should not be null"); + return new DeSerializer(node).deSerialize(pathArgument); + } + + private static class Serializer implements NormalizedNodeSerializationContext { + + private final NormalizedNode node; + + private final Map codeMap = new HashMap<>(); + private final List codes = new ArrayList<>(); + + private Serializer(NormalizedNode node) { + this.node = node; + } + + private NormalizedNodeMessages.Node serialize() { + return this.serialize(node).addAllCode(codes).build(); + } + + private NormalizedNodeMessages.Node.Builder serialize( + NormalizedNode node) { + NormalizedNodeMessages.Node.Builder builder = + NormalizedNodeMessages.Node.newBuilder(); + + builder.setPathArgument(PathArgumentSerializer.serialize(this, node.getIdentifier())); + Integer nodeType = getSerializableNodeType(node).ordinal(); + builder.setIntType(nodeType); + Object value = node.getValue(); + + // We need to do a specific check of the type of the node here + // because if we looked at the value type alone we will not be + // able to distinguish if the value was supposed to be added + // as a child or whether the value should be added as a value of the + // node. + // One use case where this check is necessary when you have a node + // with a bits value. In that case the value of the node is a Set + // which is also a Collection. Without the following check being + // done first the code would flow into the Collection if condition + // and the Set would be added as child nodes + if(nodeType == NormalizedNodeType.LEAF_NODE_TYPE.ordinal() || + nodeType == NormalizedNodeType.LEAF_SET_ENTRY_NODE_TYPE.ordinal()){ + + ValueSerializer.serialize(builder, this, value); + + } else if (value instanceof Iterable) { + Iterable iterable = (Iterable) value; + + for (Object o : iterable) { + if (o instanceof NormalizedNode) { + builder.addChild(serialize((NormalizedNode) o)); + } + } + + } else if (value instanceof NormalizedNode) { + + builder.addChild(serialize((NormalizedNode) value)); + + } else { + + ValueSerializer.serialize(builder, this, value); + } + + return builder; + } + + + @Override public int addNamespace(URI namespace) { + int namespaceInt = getCode(namespace); + + if(namespaceInt == -1) { + namespaceInt = addCode(namespace, namespace.toString()); + } + return namespaceInt; + } + + @Override public int addRevision(Date revision) { + if(revision == null){ + return -1; + } + + int revisionInt = getCode(revision); + if(revisionInt == -1) { + String formattedRevision = + SimpleDateFormatUtil.getRevisionFormat().format(revision); + revisionInt = addCode(revision, formattedRevision); + } + return revisionInt; + } + + @Override public int addLocalName(String localName) { + int localNameInt = getCode(localName); + if(localNameInt == -1) { + localNameInt = addCode(localName, localName.toString()); + } + return localNameInt; + + } + + public int addCode(Object code, String codeStr){ + int count = codes.size(); + codes.add(codeStr); + codeMap.put(code, Integer.valueOf(count)); + return count; + } + + public int getCode(Object code){ + if(codeMap.containsKey(code)){ + return codeMap.get(code); + } + return -1; + } + } + + private static class DeSerializer implements NormalizedNodeDeSerializationContext { + private static Map + deSerializationFunctions = new HashMap<>(); + + static { + deSerializationFunctions.put(CONTAINER_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + DataContainerNodeAttrBuilder + builder = Builders.containerBuilder(); + + builder + .withNodeIdentifier(deSerializer.toNodeIdentifier( + node.getPathArgument())); + + return deSerializer.buildDataContainer(builder, node); + + } + + }); + + deSerializationFunctions.put(LEAF_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + NormalizedNodeAttrBuilder> + builder = Builders.leafBuilder(); + + builder + .withNodeIdentifier(deSerializer.toNodeIdentifier( + node.getPathArgument())); + + return deSerializer.buildNormalizedNode(builder, node); + + } + }); + + deSerializationFunctions.put(MAP_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + CollectionNodeBuilder + builder = Builders.mapBuilder(); + + return deSerializer.buildCollectionNode(builder, node); + } + }); + + deSerializationFunctions.put(MAP_ENTRY_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + DataContainerNodeAttrBuilder + builder = Builders.mapEntryBuilder(); + + builder.withNodeIdentifier(deSerializer.toNodeIdentifierWithPredicates( + node.getPathArgument())); + + return deSerializer.buildDataContainer(builder, node); + } + }); + + deSerializationFunctions.put(AUGMENTATION_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + DataContainerNodeBuilder + builder = Builders.augmentationBuilder(); + + builder.withNodeIdentifier( + deSerializer.toAugmentationIdentifier( + node.getPathArgument())); + + return deSerializer.buildDataContainer(builder, node); + } + }); + + deSerializationFunctions.put(LEAF_SET_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + ListNodeBuilder> + builder = Builders.leafSetBuilder(); + + return deSerializer.buildListNode(builder, node); + } + }); + + deSerializationFunctions.put(LEAF_SET_ENTRY_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + NormalizedNodeAttrBuilder> + builder = Builders.leafSetEntryBuilder(); + + builder.withNodeIdentifier(deSerializer.toNodeWithValue( + node.getPathArgument())); + + return deSerializer.buildNormalizedNode(builder, node); + } + }); + + deSerializationFunctions.put(CHOICE_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + DataContainerNodeBuilder + builder = + Builders.choiceBuilder(); + + builder + .withNodeIdentifier(deSerializer.toNodeIdentifier( + node.getPathArgument())); + + return deSerializer.buildDataContainer(builder, node); + } + }); + + deSerializationFunctions.put(ORDERED_LEAF_SET_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + ListNodeBuilder> + builder = + Builders.orderedLeafSetBuilder(); + + return deSerializer.buildListNode(builder, node); + + + } + }); + + deSerializationFunctions.put(ORDERED_MAP_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + CollectionNodeBuilder + builder = + Builders.orderedMapBuilder(); + + return deSerializer.buildCollectionNode(builder, node); + } + }); + + deSerializationFunctions.put(UNKEYED_LIST_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + CollectionNodeBuilder + builder = + Builders.unkeyedListBuilder(); + + return deSerializer.buildCollectionNode(builder, node); + } + }); + + deSerializationFunctions.put(UNKEYED_LIST_ENTRY_NODE_TYPE, + new DeSerializationFunction() { + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + DataContainerNodeAttrBuilder + builder = + Builders.unkeyedListEntryBuilder(); + + builder + .withNodeIdentifier(deSerializer.toNodeIdentifier( + node.getPathArgument())); + + return deSerializer.buildDataContainer(builder, node); + } + }); + + deSerializationFunctions.put(ANY_XML_NODE_TYPE, + new DeSerializationFunction() { + + @Override public NormalizedNode apply( + DeSerializer deSerializer, + NormalizedNodeMessages.Node node) { + NormalizedNodeAttrBuilder, AnyXmlNode> + builder = + Builders.anyXmlBuilder(); + + builder + .withNodeIdentifier(deSerializer.toNodeIdentifier( + node.getPathArgument())); + + return deSerializer.buildNormalizedNode(builder, node); + } + }); + + } + + private final NormalizedNodeMessages.Node node; + + public DeSerializer(NormalizedNodeMessages.Node node){ + this.node = node; + } + + public NormalizedNode deSerialize(){ + return deSerialize(node); + } + + private NormalizedNode deSerialize(NormalizedNodeMessages.Node node){ + Preconditions.checkNotNull(node, "node should not be null"); + DeSerializationFunction deSerializationFunction = + Preconditions.checkNotNull(deSerializationFunctions.get(NormalizedNodeType.values()[node.getIntType()]), "Unknown type " + node); + + return deSerializationFunction.apply(this, node); + } + + + private NormalizedNode buildCollectionNode( + CollectionNodeBuilder builder, + NormalizedNodeMessages.Node node) { + + builder.withNodeIdentifier(toNodeIdentifier(node.getPathArgument())); + + for(NormalizedNodeMessages.Node child : node.getChildList()){ + builder.withChild(deSerialize(child)); + } + + return builder.build(); + } + + + private NormalizedNode buildListNode( + ListNodeBuilder> builder, + NormalizedNodeMessages.Node node) { + builder.withNodeIdentifier(toNodeIdentifier(node.getPathArgument())); + + for(NormalizedNodeMessages.Node child : node.getChildList()){ + builder.withChild((LeafSetEntryNode) deSerialize(child)); + } + + return builder.build(); + } + + private NormalizedNode buildDataContainer(DataContainerNodeBuilder builder, NormalizedNodeMessages.Node node){ + + for(NormalizedNodeMessages.Node child : node.getChildList()){ + builder.withChild((DataContainerChild) deSerialize(child)); + } + + //TODO : Also handle attributes + + return builder.build(); + } + + private NormalizedNode buildNormalizedNode(NormalizedNodeAttrBuilder builder, NormalizedNodeMessages.Node node){ + + builder.withValue(ValueSerializer.deSerialize(this, node)); + + //TODO : Also handle attributes + + return builder.build(); + + } + + + private YangInstanceIdentifier.NodeIdentifierWithPredicates toNodeIdentifierWithPredicates( + NormalizedNodeMessages.PathArgument path) { + return (YangInstanceIdentifier.NodeIdentifierWithPredicates) PathArgumentSerializer.deSerialize(this, path); + } + + private YangInstanceIdentifier.AugmentationIdentifier toAugmentationIdentifier( + NormalizedNodeMessages.PathArgument path) { + return (YangInstanceIdentifier.AugmentationIdentifier) PathArgumentSerializer.deSerialize(this, path); + } + + private YangInstanceIdentifier.NodeWithValue toNodeWithValue( + NormalizedNodeMessages.PathArgument path) { + return (YangInstanceIdentifier.NodeWithValue) PathArgumentSerializer.deSerialize( + this, path); + } + + private YangInstanceIdentifier.NodeIdentifier toNodeIdentifier(NormalizedNodeMessages.PathArgument path){ + return (YangInstanceIdentifier.NodeIdentifier) PathArgumentSerializer.deSerialize( + this, path); + } + + @Override public String getNamespace(int namespace) { + return node.getCode(namespace); + } + + @Override public String getRevision(int revision) { + return node.getCode(revision); + } + + @Override public String getLocalName(int localName) { + return node.getCode(localName); + } + + public YangInstanceIdentifier.PathArgument deSerialize( + NormalizedNodeMessages.PathArgument pathArgument) { + return PathArgumentSerializer.deSerialize(this, pathArgument); + } + + private static interface DeSerializationFunction { + NormalizedNode apply(DeSerializer deserializer, NormalizedNodeMessages.Node node); + } + } + + + + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeType.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeType.java new file mode 100644 index 0000000000..eebd58013a --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeType.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode; +import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; +import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.OrderedLeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; + +public enum NormalizedNodeType { + CONTAINER_NODE_TYPE, + LEAF_NODE_TYPE, + MAP_NODE_TYPE, + MAP_ENTRY_NODE_TYPE, + AUGMENTATION_NODE_TYPE, + LEAF_SET_NODE_TYPE, + LEAF_SET_ENTRY_NODE_TYPE, + CHOICE_NODE_TYPE, + ORDERED_LEAF_SET_NODE_TYPE, + ORDERED_MAP_NODE_TYPE, + UNKEYED_LIST_NODE_TYPE, + UNKEYED_LIST_ENTRY_NODE_TYPE, + ANY_XML_NODE_TYPE; + + public static NormalizedNodeType getSerializableNodeType(NormalizedNode node){ + Preconditions.checkNotNull(node, "node should not be null"); + + if(node instanceof ContainerNode){ + return CONTAINER_NODE_TYPE; + } else if(node instanceof LeafNode){ + return LEAF_NODE_TYPE; + } else if(node instanceof MapNode){ + return MAP_NODE_TYPE; + } else if(node instanceof MapEntryNode){ + return MAP_ENTRY_NODE_TYPE; + } else if(node instanceof AugmentationNode){ + return AUGMENTATION_NODE_TYPE; + } else if(node instanceof LeafSetNode){ + return LEAF_SET_NODE_TYPE; + } else if(node instanceof LeafSetEntryNode){ + return LEAF_SET_ENTRY_NODE_TYPE; + } else if(node instanceof ChoiceNode){ + return CHOICE_NODE_TYPE; + } else if(node instanceof OrderedLeafSetNode){ + return ORDERED_LEAF_SET_NODE_TYPE; + } else if(node instanceof OrderedMapNode){ + return ORDERED_MAP_NODE_TYPE; + } else if(node instanceof UnkeyedListNode){ + return UNKEYED_LIST_NODE_TYPE; + } else if(node instanceof UnkeyedListEntryNode){ + return UNKEYED_LIST_ENTRY_NODE_TYPE; + } else if(node instanceof AnyXmlNode){ + return ANY_XML_NODE_TYPE; + } + throw new IllegalArgumentException("Node type unknown : " + node.getClass().getSimpleName()); + } + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializer.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializer.java new file mode 100644 index 0000000000..d7627c008e --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializer.java @@ -0,0 +1,291 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.controller.cluster.datastore.node.utils.NodeIdentifierFactory; +import org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.opendaylight.controller.cluster.datastore.node.utils.serialization.PathArgumentType.getSerializablePathArgumentType; + +public class PathArgumentSerializer { + private static final Map pathArgumentAttributesGetters = new HashMap<>(); + + public static NormalizedNodeMessages.PathArgument serialize(NormalizedNodeSerializationContext context, YangInstanceIdentifier.PathArgument pathArgument){ + Preconditions.checkNotNull(context, "context should not be null"); + Preconditions.checkNotNull(pathArgument, "pathArgument should not be null"); + + QName nodeType = null; + if (!(pathArgument instanceof YangInstanceIdentifier.AugmentationIdentifier)) { + nodeType = pathArgument.getNodeType(); + } + + NormalizedNodeMessages.PathArgument.Builder builder = + NormalizedNodeMessages.PathArgument.newBuilder(); + + NormalizedNodeMessages.PathArgument serializablePathArgument = + builder + .setIntType(getSerializablePathArgumentType(pathArgument)) + .setNodeType(encodeQName(context, nodeType)) + .addAllAttribute(getPathArgumentAttributes(context, pathArgument)) + .build(); + + return serializablePathArgument; + } + + + public static YangInstanceIdentifier.PathArgument deSerialize(NormalizedNodeDeSerializationContext context, NormalizedNodeMessages.PathArgument pathArgument){ + Preconditions.checkNotNull(context, "context should not be null"); + Preconditions.checkNotNull(pathArgument, "pathArgument should not be null"); + + return parsePathArgument(context, pathArgument); + } + + + private static interface PathArgumentAttributesGetter { + Iterable get(NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument); + } + + static { + pathArgumentAttributesGetters.put(YangInstanceIdentifier.NodeWithValue.class, new PathArgumentAttributesGetter() { + @Override + public Iterable get( + NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument) { + List attributes = + new ArrayList<>(); + + YangInstanceIdentifier.NodeWithValue identifier + = (YangInstanceIdentifier.NodeWithValue) pathArgument; + + NormalizedNodeMessages.PathArgumentAttribute attribute = + buildAttribute(context, null, identifier.getValue()); + + attributes.add(attribute); + + return attributes; + + } + }); + + pathArgumentAttributesGetters.put(YangInstanceIdentifier.NodeIdentifierWithPredicates.class, new PathArgumentAttributesGetter() { + @Override + public Iterable get( + NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument) { + + List attributes = + new ArrayList<>(); + + YangInstanceIdentifier.NodeIdentifierWithPredicates identifier + = (YangInstanceIdentifier.NodeIdentifierWithPredicates) pathArgument; + + for (QName key : identifier.getKeyValues().keySet()) { + Object value = identifier.getKeyValues().get(key); + NormalizedNodeMessages.PathArgumentAttribute attribute = + buildAttribute(context, key, value); + + attributes.add(attribute); + + } + + return attributes; + + } + }); + + pathArgumentAttributesGetters.put(YangInstanceIdentifier.AugmentationIdentifier.class, new PathArgumentAttributesGetter() { + @Override + public Iterable get( + NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument) { + + List attributes = + new ArrayList<>(); + + YangInstanceIdentifier.AugmentationIdentifier identifier + = (YangInstanceIdentifier.AugmentationIdentifier) pathArgument; + + for (QName key : identifier.getPossibleChildNames()) { + Object value = key; + NormalizedNodeMessages.PathArgumentAttribute attribute = + buildAttribute(context, key, value); + + attributes.add(attribute); + + } + + return attributes; + + } + }); + + + pathArgumentAttributesGetters.put(YangInstanceIdentifier.NodeIdentifier.class, new PathArgumentAttributesGetter() { + @Override + public Iterable get( + NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument) { + return Collections.emptyList(); + } + }); + } + + private static NormalizedNodeMessages.PathArgumentAttribute buildAttribute(NormalizedNodeSerializationContext context,QName name, Object value){ + NormalizedNodeMessages.PathArgumentAttribute.Builder builder = + NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + builder.setName(encodeQName(context, name)); + ValueSerializer.serialize(builder, context, value); + + return builder.build(); + + } + + private static NormalizedNodeMessages.QName.Builder encodeQName(NormalizedNodeSerializationContext context, QName qName){ + if(qName == null){ + return NormalizedNodeMessages.QName.getDefaultInstance().toBuilder(); + } + NormalizedNodeMessages.QName.Builder qNameBuilder = + NormalizedNodeMessages.QName.newBuilder(); + + qNameBuilder.setNamespace(context.addNamespace(qName.getNamespace())); + + qNameBuilder.setRevision(context.addRevision(qName.getRevision())); + + qNameBuilder.setLocalName(context.addLocalName(qName.getLocalName())); + + return qNameBuilder; + } + + private static Iterable getPathArgumentAttributes( + NormalizedNodeSerializationContext context, + YangInstanceIdentifier.PathArgument pathArgument) { + + return pathArgumentAttributesGetters.get(pathArgument.getClass()).get(context, pathArgument); + + } + + + private static String qNameToString(NormalizedNodeDeSerializationContext context, + NormalizedNodeMessages.QName qName){ + // If this serializer is used qName cannot be null (see encodeQName) + // adding null check only in case someone tried to deSerialize a protocol buffer node + // that was not serialized using the PathArgumentSerializer + Preconditions.checkNotNull(qName, "qName should not be null"); + Preconditions.checkArgument(!"".equals(qName.getLocalName()), + "qName.localName cannot be empty qName = " + qName.toString()); + Preconditions.checkArgument(qName.getNamespace() != -1, "qName.namespace should be valid"); + + StringBuilder sb = new StringBuilder(); + String namespace = context.getNamespace(qName.getNamespace()); + String revision = ""; + String localName = context.getLocalName(qName.getLocalName()); + if(qName.getRevision() != -1){ + revision = context.getRevision(qName.getRevision()); + sb.append("(").append(namespace).append("?revision=").append( + revision).append(")").append( + localName); + } else { + sb.append("(").append(namespace).append(")").append( + localName); + } + + return sb.toString(); + + } + + /** + * Parse a protocol buffer PathArgument and return an MD-SAL PathArgument + * + * @param pathArgument protocol buffer PathArgument + * @return MD-SAL PathArgument + */ + private static YangInstanceIdentifier.PathArgument parsePathArgument( + NormalizedNodeDeSerializationContext context, + NormalizedNodeMessages.PathArgument pathArgument) { + + Preconditions.checkArgument(pathArgument.getIntType() >= 0 + && pathArgument.getIntType() < PathArgumentType.values().length, + "Illegal PathArgumentType " + pathArgument.getIntType()); + + switch(PathArgumentType.values()[pathArgument.getIntType()]){ + case NODE_IDENTIFIER_WITH_VALUE : { + + YangInstanceIdentifier.NodeWithValue nodeWithValue = + new YangInstanceIdentifier.NodeWithValue( + QNameFactory.create(qNameToString(context, pathArgument.getNodeType())), + parseAttribute(context, pathArgument.getAttribute(0))); + + return nodeWithValue; + } + + case NODE_IDENTIFIER_WITH_PREDICATES : { + + YangInstanceIdentifier.NodeIdentifierWithPredicates + nodeIdentifierWithPredicates = + new YangInstanceIdentifier.NodeIdentifierWithPredicates( + QNameFactory.create(qNameToString(context, pathArgument.getNodeType())), + toAttributesMap(context, pathArgument.getAttributeList())); + + return nodeIdentifierWithPredicates; + } + + case AUGMENTATION_IDENTIFIER: { + + Set qNameSet = new HashSet<>(); + + for(NormalizedNodeMessages.PathArgumentAttribute attribute : pathArgument.getAttributeList()){ + qNameSet.add(QNameFactory.create(qNameToString(context, attribute.getName()))); + } + + return new YangInstanceIdentifier.AugmentationIdentifier(qNameSet); + + } + default: { + return NodeIdentifierFactory.getArgument(qNameToString(context, + pathArgument.getNodeType())); + } + + } + } + + private static Map toAttributesMap( + NormalizedNodeDeSerializationContext context, + List attributesList) { + + Map map = new HashMap<>(); + + for(NormalizedNodeMessages.PathArgumentAttribute attribute : attributesList){ + NormalizedNodeMessages.QName name = attribute.getName(); + Object value = parseAttribute(context, attribute); + + map.put(QNameFactory.create(qNameToString(context, name)), value); + } + + return map; + } + + private static Object parseAttribute(NormalizedNodeDeSerializationContext context, NormalizedNodeMessages.PathArgumentAttribute attribute){ + return ValueSerializer.deSerialize(context, attribute); + } + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentType.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentType.java new file mode 100644 index 0000000000..20009d8347 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentType.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +public enum PathArgumentType { + AUGMENTATION_IDENTIFIER, + NODE_IDENTIFIER, + NODE_IDENTIFIER_WITH_VALUE, + NODE_IDENTIFIER_WITH_PREDICATES; + + public static int getSerializablePathArgumentType(YangInstanceIdentifier.PathArgument pathArgument){ + Preconditions.checkNotNull(pathArgument, "pathArgument should not be null"); + + if(pathArgument instanceof YangInstanceIdentifier.AugmentationIdentifier){ + return AUGMENTATION_IDENTIFIER.ordinal(); + } else if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifier){ + return NODE_IDENTIFIER.ordinal(); + } else if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates){ + return NODE_IDENTIFIER_WITH_PREDICATES.ordinal(); + } else if(pathArgument instanceof YangInstanceIdentifier.NodeWithValue){ + return NODE_IDENTIFIER_WITH_VALUE.ordinal(); + } + throw new IllegalArgumentException("Unknown type of PathArgument = " + pathArgument.toString()); + } + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java new file mode 100644 index 0000000000..04c95d61ce --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory; +import org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.HashSet; +import java.util.Set; + +public class ValueSerializer { + public static void serialize(NormalizedNodeMessages.Node.Builder builder, + NormalizedNodeSerializationContext context, Object value){ + builder.setIntValueType(ValueType.getSerializableType(value).ordinal()); + + if(value instanceof YangInstanceIdentifier) { + builder.setInstanceIdentifierValue( + InstanceIdentifierUtils.toSerializable((YangInstanceIdentifier) value)); + } else if(value instanceof Set) { + Set set = (Set) value; + if(!set.isEmpty()){ + for(Object o : set){ + if(o instanceof String){ + builder.addBitsValue(o.toString()); + } else { + throw new IllegalArgumentException("Expected value type to be Bits but was : " + + value.toString()); + } + } + } + } else { + builder.setValue(value.toString()); + } + } + + public static void serialize(NormalizedNodeMessages.PathArgumentAttribute.Builder builder, + NormalizedNodeSerializationContext context, Object value){ + + builder.setType(ValueType.getSerializableType(value).ordinal()); + builder.setValue(value.toString()); + } + + public static Object deSerialize( + NormalizedNodeDeSerializationContext context, NormalizedNodeMessages.Node node) { + if(node.getIntValueType() == ValueType.YANG_IDENTIFIER_TYPE.ordinal()){ + return InstanceIdentifierUtils.fromSerializable( + node.getInstanceIdentifierValue()); + } else if(node.getIntValueType() == ValueType.BITS_TYPE.ordinal()){ + return new HashSet(node.getBitsValueList()); + } + return deSerializeBasicTypes(node.getIntValueType(), node.getValue()); + } + + public static Object deSerialize( + NormalizedNodeDeSerializationContext context, + NormalizedNodeMessages.PathArgumentAttribute attribute) { + return deSerializeBasicTypes(attribute.getType(), attribute.getValue()); + } + + + private static Object deSerializeBasicTypes(int valueType, String value) { + Preconditions.checkArgument(valueType >= 0 && valueType < ValueType.values().length, + "Illegal value type " + valueType ); + + switch(ValueType.values()[valueType]){ + case SHORT_TYPE: { + return Short.valueOf(value); + } + case BOOL_TYPE: { + return Boolean.valueOf(value); + } + case BYTE_TYPE: { + return Byte.valueOf(value); + } + case INT_TYPE : { + return Integer.valueOf(value); + } + case LONG_TYPE: { + return Long.valueOf(value); + } + case QNAME_TYPE: { + return QNameFactory.create(value); + } + case BIG_INTEGER_TYPE: { + return new BigInteger(value); + } + case BIG_DECIMAL_TYPE: { + return new BigDecimal(value); + } + default: { + return value; + } + } + } + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueType.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueType.java new file mode 100644 index 0000000000..8724dfe43a --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueType.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +public enum ValueType { + SHORT_TYPE, + BYTE_TYPE, + INT_TYPE, + LONG_TYPE, + BOOL_TYPE, + QNAME_TYPE, + BITS_TYPE, + YANG_IDENTIFIER_TYPE, + STRING_TYPE, + BIG_INTEGER_TYPE, + BIG_DECIMAL_TYPE; + + private static Map types = new HashMap<>(); + + static { + types.put(String.class, STRING_TYPE); + types.put(Byte.class, BYTE_TYPE); + types.put(Integer.class, INT_TYPE); + types.put(Long.class, LONG_TYPE); + types.put(Boolean.class, BOOL_TYPE); + types.put(QName.class, QNAME_TYPE); + types.put(Set.class, BITS_TYPE); + types.put(YangInstanceIdentifier.class, YANG_IDENTIFIER_TYPE); + types.put(Short.class,SHORT_TYPE); + types.put(BigInteger.class, BIG_INTEGER_TYPE); + types.put(BigDecimal.class, BIG_DECIMAL_TYPE); + } + + public static final ValueType getSerializableType(Object node){ + Preconditions.checkNotNull(node, "node should not be null"); + + if(types.containsKey(node.getClass())) { + return types.get(node.getClass()); + } else if(node instanceof Set){ + return BITS_TYPE; + } + + throw new IllegalArgumentException("Unknown value type " + node.getClass().getSimpleName()); + } +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/common/actor/MeteredBoundedMailbox.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/common/actor/MeteredBoundedMailbox.java index 646431522e..c6d3625ac3 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/common/actor/MeteredBoundedMailbox.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/common/actor/MeteredBoundedMailbox.java @@ -11,9 +11,8 @@ package org.opendaylight.controller.common.actor; import akka.actor.ActorPath; import akka.actor.ActorRef; import akka.actor.ActorSystem; -import akka.dispatch.BoundedMailbox; +import akka.dispatch.BoundedDequeBasedMailbox; import akka.dispatch.MailboxType; -import akka.dispatch.MessageQueue; import akka.dispatch.ProducesMessageQueue; import com.codahale.metrics.Gauge; import com.codahale.metrics.MetricRegistry; @@ -24,7 +23,7 @@ import scala.concurrent.duration.FiniteDuration; import java.util.concurrent.TimeUnit; -public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue { +public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue { private MeteredMessageQueue queue; private Integer capacity; @@ -33,16 +32,18 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue< private MetricsReporter reporter; private final String QUEUE_SIZE = "queue-size"; + private final String CAPACITY = "mailbox-capacity"; + private final String TIMEOUT = "mailbox-push-timeout-time"; private final Long DEFAULT_TIMEOUT = 10L; public MeteredBoundedMailbox(ActorSystem.Settings settings, Config config) { Preconditions.checkArgument( config.hasPath("mailbox-capacity"), "Missing configuration [mailbox-capacity]" ); - this.capacity = config.getInt("mailbox-capacity"); + this.capacity = config.getInt(CAPACITY); Preconditions.checkArgument( this.capacity > 0, "mailbox-capacity must be > 0"); Long timeout = -1L; - if ( config.hasPath("mailbox-push-timeout-time") ){ - timeout = config.getDuration("mailbox-push-timeout-time", TimeUnit.NANOSECONDS); + if ( config.hasPath(TIMEOUT) ){ + timeout = config.getDuration(TIMEOUT, TimeUnit.NANOSECONDS); } else { timeout = DEFAULT_TIMEOUT; } @@ -54,7 +55,7 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue< @Override - public MessageQueue create(final scala.Option owner, scala.Option system) { + public MeteredMessageQueue create(final scala.Option owner, scala.Option system) { this.queue = new MeteredMessageQueue(this.capacity, this.pushTimeOut); monitorQueueSize(owner, this.queue); return this.queue; @@ -65,14 +66,15 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue< return; //there's no actor to monitor } actorPath = owner.get().path(); - MetricRegistry registry = reporter.getMetricsRegistry(); + String actorInstanceId = Integer.toString(owner.get().hashCode()); - String actorName = registry.name(actorPath.toString(), QUEUE_SIZE); + MetricRegistry registry = reporter.getMetricsRegistry(); + String actorName = registry.name(actorPath.toString(), actorInstanceId, QUEUE_SIZE); if (registry.getMetrics().containsKey(actorName)) return; //already registered - reporter.getMetricsRegistry().register(actorName, + registry.register(actorName, new Gauge() { @Override public Integer getValue() { @@ -82,7 +84,7 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue< } - public static class MeteredMessageQueue extends BoundedMailbox.MessageQueue { + public static class MeteredMessageQueue extends BoundedDequeBasedMailbox.MessageQueue { public MeteredMessageQueue(int capacity, FiniteDuration pushTimeOut) { super(capacity, pushTimeOut); diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/protobuff/messages/KeyValueMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/example/KeyValueMessages.java similarity index 78% rename from opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/protobuff/messages/KeyValueMessages.java rename to opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/example/KeyValueMessages.java index c3d4bbfd2b..5410840741 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/protobuff/messages/KeyValueMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/example/KeyValueMessages.java @@ -1,14 +1,14 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: KeyValueMessages.proto -package org.opendaylight.controller.cluster.example.protobuff.messages; +package org.opendaylight.controller.protobuff.messages.cluster.example; public final class KeyValueMessages { private KeyValueMessages() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { - registry.add(org.opendaylight.controller.cluster.example.protobuff.messages.KeyValueMessages.key); - registry.add(org.opendaylight.controller.cluster.example.protobuff.messages.KeyValueMessages.value); + registry.add(org.opendaylight.controller.protobuff.messages.cluster.example.KeyValueMessages.key); + registry.add(org.opendaylight.controller.protobuff.messages.cluster.example.KeyValueMessages.value); } public static final int KEY_FIELD_NUMBER = 2; /** @@ -16,7 +16,7 @@ public final class KeyValueMessages { */ public static final com.google.protobuf.GeneratedMessage.GeneratedExtension< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, java.lang.String> key = com.google.protobuf.GeneratedMessage .newFileScopedGeneratedExtension( java.lang.String.class, @@ -27,7 +27,7 @@ public final class KeyValueMessages { */ public static final com.google.protobuf.GeneratedMessage.GeneratedExtension< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, java.lang.String> value = com.google.protobuf.GeneratedMessage .newFileScopedGeneratedExtension( java.lang.String.class, @@ -49,7 +49,7 @@ public final class KeyValueMessages { "e\022R.org.opendaylight.controller.cluster." + "raft.AppendEntries.ReplicatedLogEntry.Pa" + "yload\030\003 \001(\tBT\n>org.opendaylight.controll" + - "er.cluster.example.protobuff.messagesB\020K" + + "er.protobuff.messages.cluster.exampleB\020K" + "eyValueMessagesH\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = @@ -65,7 +65,7 @@ public final class KeyValueMessages { com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.getDescriptor(), + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.getDescriptor(), }, assigner); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/AppendEntriesMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/AppendEntriesMessages.java similarity index 79% rename from opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/AppendEntriesMessages.java rename to opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/AppendEntriesMessages.java index 00aeaf2c88..215c2657c5 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/messages/AppendEntriesMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/AppendEntriesMessages.java @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: AppendEntriesMessages.proto -package org.opendaylight.controller.cluster.raft.protobuff.messages; +package org.opendaylight.controller.protobuff.messages.cluster.raft; public final class AppendEntriesMessages { private AppendEntriesMessages() {} @@ -60,12 +60,12 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - java.util.List + java.util.List getLogEntriesList(); /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index); /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ @@ -73,12 +73,12 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - java.util.List + java.util.List getLogEntriesOrBuilderList(); /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( int index); // optional int64 leaderCommit = 6; @@ -164,10 +164,10 @@ public final class AppendEntriesMessages { } case 42: { if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - logEntries_ = new java.util.ArrayList(); + logEntries_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000010; } - logEntries_.add(input.readMessage(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PARSER, extensionRegistry)); + logEntries_.add(input.readMessage(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PARSER, extensionRegistry)); break; } case 48: { @@ -192,14 +192,14 @@ public final class AppendEntriesMessages { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.Builder.class); } public static com.google.protobuf.Parser PARSER = @@ -248,11 +248,11 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData(); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData(); /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder(); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder(); } /** * Protobuf type {@code org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry} @@ -316,11 +316,11 @@ public final class AppendEntriesMessages { break; } case 26: { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder subBuilder = null; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder subBuilder = null; if (((bitField0_ & 0x00000004) == 0x00000004)) { subBuilder = data_.toBuilder(); } - data_ = input.readMessage(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.PARSER, extensionRegistry); + data_ = input.readMessage(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.PARSER, extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(data_); data_ = subBuilder.buildPartial(); @@ -342,14 +342,14 @@ public final class AppendEntriesMessages { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder.class); } public static com.google.protobuf.Parser PARSER = @@ -393,7 +393,7 @@ public final class AppendEntriesMessages { com.google.protobuf.GeneratedMessage.ExtendableMessage< Payload> implements PayloadOrBuilder { // Use Payload.newBuilder() to construct. - private Payload(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { + private Payload(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -456,14 +456,14 @@ public final class AppendEntriesMessages { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder.class); } public static com.google.protobuf.Parser PARSER = @@ -499,7 +499,7 @@ public final class AppendEntriesMessages { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { @@ -515,7 +515,7 @@ public final class AppendEntriesMessages { getClientPayloadClassNameBytes() { java.lang.Object ref = clientPayloadClassName_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); clientPayloadClassName_ = b; @@ -545,7 +545,7 @@ public final class AppendEntriesMessages { throws java.io.IOException { getSerializedSize(); com.google.protobuf.GeneratedMessage - .ExtendableMessage.ExtensionWriter extensionWriter = + .ExtendableMessage.ExtensionWriter extensionWriter = newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeBytes(1, getClientPayloadClassNameBytes()); @@ -577,53 +577,53 @@ public final class AppendEntriesMessages { return super.writeReplace(); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom(byte[] data) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseDelimitedFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseDelimitedFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseDelimitedFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseDelimitedFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -632,7 +632,7 @@ public final class AppendEntriesMessages { public static Builder newBuilder() { return Builder.create(); } public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload prototype) { + public static Builder newBuilder(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); } @@ -648,20 +648,20 @@ public final class AppendEntriesMessages { */ public static final class Builder extends com.google.protobuf.GeneratedMessage.ExtendableBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, Builder> implements org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, Builder> implements org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder.class); } - // Construct using org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.newBuilder() + // Construct using org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -692,23 +692,23 @@ public final class AppendEntriesMessages { public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_Payload_descriptor; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getDefaultInstanceForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getDefaultInstanceForType() { + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload build() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload result = buildPartial(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload build() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload buildPartial() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload result = new org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload(this); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload buildPartial() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload result = new org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { @@ -721,16 +721,16 @@ public final class AppendEntriesMessages { } public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload) { - return mergeFrom((org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload)other); + if (other instanceof org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload) { + return mergeFrom((org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload other) { - if (other == org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance()) return this; + public Builder mergeFrom(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload other) { + if (other == org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance()) return this; if (other.hasClientPayloadClassName()) { bitField0_ |= 0x00000001; clientPayloadClassName_ = other.clientPayloadClassName_; @@ -743,7 +743,7 @@ public final class AppendEntriesMessages { public final boolean isInitialized() { if (!extensionsAreInitialized()) { - + return false; } return true; @@ -753,11 +753,11 @@ public final class AppendEntriesMessages { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parsedMessage = null; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload) e.getUnfinishedMessage(); + parsedMessage = (org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload) e.getUnfinishedMessage(); throw e; } finally { if (parsedMessage != null) { @@ -797,7 +797,7 @@ public final class AppendEntriesMessages { getClientPayloadClassNameBytes() { java.lang.Object ref = clientPayloadClassName_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); clientPayloadClassName_ = b; @@ -888,7 +888,7 @@ public final class AppendEntriesMessages { // optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; public static final int DATA_FIELD_NUMBER = 3; - private org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload data_; + private org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload data_; /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ @@ -898,20 +898,20 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData() { return data_; } /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder() { return data_; } private void initFields() { term_ = 0L; index_ = 0L; - data_ = org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); + data_ = org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -973,53 +973,53 @@ public final class AppendEntriesMessages { return super.writeReplace(); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom(byte[] data) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseDelimitedFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseDelimitedFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseDelimitedFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseDelimitedFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1028,7 +1028,7 @@ public final class AppendEntriesMessages { public static Builder newBuilder() { return Builder.create(); } public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry prototype) { + public static Builder newBuilder(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); } @@ -1044,20 +1044,20 @@ public final class AppendEntriesMessages { */ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder { + implements org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder.class); } - // Construct using org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.newBuilder() + // Construct using org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -1083,7 +1083,7 @@ public final class AppendEntriesMessages { index_ = 0L; bitField0_ = (bitField0_ & ~0x00000002); if (dataBuilder_ == null) { - data_ = org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); + data_ = org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); } else { dataBuilder_.clear(); } @@ -1097,23 +1097,23 @@ public final class AppendEntriesMessages { public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_ReplicatedLogEntry_descriptor; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getDefaultInstanceForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getDefaultInstanceForType() { + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance(); } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry build() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry result = buildPartial(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry build() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry buildPartial() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry result = new org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry(this); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry buildPartial() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry result = new org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { @@ -1138,16 +1138,16 @@ public final class AppendEntriesMessages { } public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry) { - return mergeFrom((org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry)other); + if (other instanceof org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry) { + return mergeFrom((org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry other) { - if (other == org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()) return this; + public Builder mergeFrom(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry other) { + if (other == org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()) return this; if (other.hasTerm()) { setTerm(other.getTerm()); } @@ -1164,7 +1164,7 @@ public final class AppendEntriesMessages { public final boolean isInitialized() { if (hasData()) { if (!getData().isInitialized()) { - + return false; } } @@ -1175,11 +1175,11 @@ public final class AppendEntriesMessages { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parsedMessage = null; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry) e.getUnfinishedMessage(); + parsedMessage = (org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry) e.getUnfinishedMessage(); throw e; } finally { if (parsedMessage != null) { @@ -1257,9 +1257,9 @@ public final class AppendEntriesMessages { } // optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; - private org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload data_ = org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); + private org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload data_ = org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder> dataBuilder_; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder> dataBuilder_; /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ @@ -1269,7 +1269,7 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload getData() { if (dataBuilder_ == null) { return data_; } else { @@ -1279,7 +1279,7 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public Builder setData(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload value) { + public Builder setData(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload value) { if (dataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -1296,7 +1296,7 @@ public final class AppendEntriesMessages { * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ public Builder setData( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder builderForValue) { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder builderForValue) { if (dataBuilder_ == null) { data_ = builderForValue.build(); onChanged(); @@ -1309,12 +1309,12 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public Builder mergeData(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload value) { + public Builder mergeData(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload value) { if (dataBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004) && - data_ != org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance()) { + data_ != org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance()) { data_ = - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.newBuilder(data_).mergeFrom(value).buildPartial(); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.newBuilder(data_).mergeFrom(value).buildPartial(); } else { data_ = value; } @@ -1330,7 +1330,7 @@ public final class AppendEntriesMessages { */ public Builder clearData() { if (dataBuilder_ == null) { - data_ = org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); + data_ = org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.getDefaultInstance(); onChanged(); } else { dataBuilder_.clear(); @@ -1341,7 +1341,7 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder getDataBuilder() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder getDataBuilder() { bitField0_ |= 0x00000004; onChanged(); return getDataFieldBuilder().getBuilder(); @@ -1349,7 +1349,7 @@ public final class AppendEntriesMessages { /** * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder getDataOrBuilder() { if (dataBuilder_ != null) { return dataBuilder_.getMessageOrBuilder(); } else { @@ -1360,11 +1360,11 @@ public final class AppendEntriesMessages { * optional .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry.Payload data = 3; */ private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder> + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder> getDataFieldBuilder() { if (dataBuilder_ == null) { dataBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder>( + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.PayloadOrBuilder>( data_, getParentForChildren(), isClean()); @@ -1418,7 +1418,7 @@ public final class AppendEntriesMessages { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { @@ -1434,7 +1434,7 @@ public final class AppendEntriesMessages { getLeaderIdBytes() { java.lang.Object ref = leaderId_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); leaderId_ = b; @@ -1478,17 +1478,17 @@ public final class AppendEntriesMessages { // repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; public static final int LOGENTRIES_FIELD_NUMBER = 5; - private java.util.List logEntries_; + private java.util.List logEntries_; /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public java.util.List getLogEntriesList() { + public java.util.List getLogEntriesList() { return logEntries_; } /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public java.util.List + public java.util.List getLogEntriesOrBuilderList() { return logEntries_; } @@ -1501,13 +1501,13 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index) { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index) { return logEntries_.get(index); } /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( int index) { return logEntries_.get(index); } @@ -1617,53 +1617,53 @@ public final class AppendEntriesMessages { return super.writeReplace(); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom(byte[] data) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseDelimitedFrom(java.io.InputStream input) + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseDelimitedFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseDelimitedFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseDelimitedFrom(input, extensionRegistry); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parseFrom( + public static org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1672,7 +1672,7 @@ public final class AppendEntriesMessages { public static Builder newBuilder() { return Builder.create(); } public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries prototype) { + public static Builder newBuilder(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); } @@ -1688,20 +1688,20 @@ public final class AppendEntriesMessages { */ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntriesOrBuilder { + implements org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntriesOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; } protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_fieldAccessorTable + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.class, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.Builder.class); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.class, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.Builder.class); } - // Construct using org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.newBuilder() + // Construct using org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -1747,23 +1747,23 @@ public final class AppendEntriesMessages { public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.internal_static_org_opendaylight_controller_cluster_raft_AppendEntries_descriptor; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries getDefaultInstanceForType() { - return org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.getDefaultInstance(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries getDefaultInstanceForType() { + return org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.getDefaultInstance(); } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries build() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries result = buildPartial(); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries build() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries buildPartial() { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries result = new org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries(this); + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries buildPartial() { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries result = new org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { @@ -1801,16 +1801,16 @@ public final class AppendEntriesMessages { } public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries) { - return mergeFrom((org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries)other); + if (other instanceof org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries) { + return mergeFrom((org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries other) { - if (other == org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.getDefaultInstance()) return this; + public Builder mergeFrom(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries other) { + if (other == org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.getDefaultInstance()) return this; if (other.hasTerm()) { setTerm(other.getTerm()); } @@ -1843,7 +1843,7 @@ public final class AppendEntriesMessages { logEntriesBuilder_ = null; logEntries_ = other.logEntries_; bitField0_ = (bitField0_ & ~0x00000010); - logEntriesBuilder_ = + logEntriesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getLogEntriesFieldBuilder() : null; } else { @@ -1861,7 +1861,7 @@ public final class AppendEntriesMessages { public final boolean isInitialized() { for (int i = 0; i < getLogEntriesCount(); i++) { if (!getLogEntries(i).isInitialized()) { - + return false; } } @@ -1872,11 +1872,11 @@ public final class AppendEntriesMessages { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries parsedMessage = null; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries) e.getUnfinishedMessage(); + parsedMessage = (org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries) e.getUnfinishedMessage(); throw e; } finally { if (parsedMessage != null) { @@ -1949,7 +1949,7 @@ public final class AppendEntriesMessages { getLeaderIdBytes() { java.lang.Object ref = leaderId_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); leaderId_ = b; @@ -2061,22 +2061,22 @@ public final class AppendEntriesMessages { } // repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; - private java.util.List logEntries_ = + private java.util.List logEntries_ = java.util.Collections.emptyList(); private void ensureLogEntriesIsMutable() { if (!((bitField0_ & 0x00000010) == 0x00000010)) { - logEntries_ = new java.util.ArrayList(logEntries_); + logEntries_ = new java.util.ArrayList(logEntries_); bitField0_ |= 0x00000010; } } private com.google.protobuf.RepeatedFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder> logEntriesBuilder_; + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder> logEntriesBuilder_; /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public java.util.List getLogEntriesList() { + public java.util.List getLogEntriesList() { if (logEntriesBuilder_ == null) { return java.util.Collections.unmodifiableList(logEntries_); } else { @@ -2096,7 +2096,7 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index) { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry getLogEntries(int index) { if (logEntriesBuilder_ == null) { return logEntries_.get(index); } else { @@ -2107,7 +2107,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder setLogEntries( - int index, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { + int index, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { if (logEntriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2124,7 +2124,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder setLogEntries( - int index, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { + int index, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { if (logEntriesBuilder_ == null) { ensureLogEntriesIsMutable(); logEntries_.set(index, builderForValue.build()); @@ -2137,7 +2137,7 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public Builder addLogEntries(org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { + public Builder addLogEntries(org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { if (logEntriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2154,7 +2154,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder addLogEntries( - int index, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { + int index, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry value) { if (logEntriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2171,7 +2171,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder addLogEntries( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { if (logEntriesBuilder_ == null) { ensureLogEntriesIsMutable(); logEntries_.add(builderForValue.build()); @@ -2185,7 +2185,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder addLogEntries( - int index, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { + int index, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder builderForValue) { if (logEntriesBuilder_ == null) { ensureLogEntriesIsMutable(); logEntries_.add(index, builderForValue.build()); @@ -2199,7 +2199,7 @@ public final class AppendEntriesMessages { * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ public Builder addAllLogEntries( - java.lang.Iterable values) { + java.lang.Iterable values) { if (logEntriesBuilder_ == null) { ensureLogEntriesIsMutable(); super.addAll(values, logEntries_); @@ -2238,14 +2238,14 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder getLogEntriesBuilder( + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder getLogEntriesBuilder( int index) { return getLogEntriesFieldBuilder().getBuilder(index); } /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder getLogEntriesOrBuilder( int index) { if (logEntriesBuilder_ == null) { return logEntries_.get(index); } else { @@ -2255,7 +2255,7 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public java.util.List + public java.util.List getLogEntriesOrBuilderList() { if (logEntriesBuilder_ != null) { return logEntriesBuilder_.getMessageOrBuilderList(); @@ -2266,31 +2266,31 @@ public final class AppendEntriesMessages { /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder addLogEntriesBuilder() { + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder addLogEntriesBuilder() { return getLogEntriesFieldBuilder().addBuilder( - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()); + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()); } /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder addLogEntriesBuilder( + public org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder addLogEntriesBuilder( int index) { return getLogEntriesFieldBuilder().addBuilder( - index, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()); + index, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.getDefaultInstance()); } /** * repeated .org.opendaylight.controller.cluster.raft.AppendEntries.ReplicatedLogEntry logEntries = 5; */ - public java.util.List + public java.util.List getLogEntriesBuilderList() { return getLogEntriesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder> + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder> getLogEntriesFieldBuilder() { if (logEntriesBuilder_ == null) { logEntriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder>( + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Builder, org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntryOrBuilder>( logEntries_, ((bitField0_ & 0x00000010) == 0x00000010), getParentForChildren(), @@ -2380,8 +2380,8 @@ public final class AppendEntriesMessages { "aylight.controller.cluster.raft.AppendEn", "tries.ReplicatedLogEntry.Payload\032/\n\007Payl" + "oad\022\036\n\026clientPayloadClassName\030\001 \001(\t*\004\010\002\020" + - "eBV\n;org.opendaylight.controller.cluster" + - ".raft.protobuff.messagesB\025AppendEntriesM" + + "eBV\n;org.opendaylight.controller.protobu" + + "ff.messages.cluster.raftB\025AppendEntriesM" + "essagesH\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/protobuff/messages/MockPayloadMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/test/MockPayloadMessages.java similarity index 66% rename from opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/protobuff/messages/MockPayloadMessages.java rename to opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/test/MockPayloadMessages.java index 1f618a390c..76ae4a85aa 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/protobuff/messages/MockPayloadMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/cluster/raft/test/MockPayloadMessages.java @@ -1,13 +1,13 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: MockPayload.proto -package org.opendaylight.controller.cluster.raft.protobuff.messages; +package org.opendaylight.controller.protobuff.messages.cluster.raft.test; public final class MockPayloadMessages { private MockPayloadMessages() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { - registry.add(org.opendaylight.controller.cluster.raft.protobuff.messages.MockPayloadMessages.value); + registry.add(org.opendaylight.controller.protobuff.messages.cluster.raft.test.MockPayloadMessages.value); } public static final int VALUE_FIELD_NUMBER = 2; /** @@ -15,7 +15,7 @@ public final class MockPayloadMessages { */ public static final com.google.protobuf.GeneratedMessage.GeneratedExtension< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, java.lang.String> value = com.google.protobuf.GeneratedMessage .newFileScopedGeneratedExtension( java.lang.String.class, @@ -29,13 +29,14 @@ public final class MockPayloadMessages { descriptor; static { java.lang.String[] descriptorData = { - "\n\021MockPayload.proto\022(org.opendaylight.co" + - "ntroller.cluster.raft\032\033AppendEntriesMess" + - "ages.proto:a\n\005value\022R.org.opendaylight.c" + - "ontroller.cluster.raft.AppendEntries.Rep" + - "licatedLogEntry.Payload\030\002 \001(\tBR\n;org.ope" + - "ndaylight.controller.cluster.raft.protob" + - "uff.messagesB\023MockPayloadMessages" + "\n\021MockPayload.proto\022-org.opendaylight.co" + + "ntroller.cluster.raft.test\032\033AppendEntrie" + + "sMessages.proto:a\n\005value\022R.org.opendayli" + + "ght.controller.cluster.raft.AppendEntrie" + + "s.ReplicatedLogEntry.Payload\030\002 \001(\tBW\n@or" + + "g.opendaylight.controller.protobuff.mess" + + "ages.cluster.raft.testB\023MockPayloadMessa" + + "ges" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -49,7 +50,7 @@ public final class MockPayloadMessages { com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.getDescriptor(), + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.getDescriptor(), }, assigner); } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/common/NormalizedNodeMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/common/NormalizedNodeMessages.java index 35c2940be3..3926bc7dc3 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/common/NormalizedNodeMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/common/NormalizedNodeMessages.java @@ -799,23 +799,809 @@ public final class NormalizedNodeMessages { // @@protoc_insertion_point(class_scope:org.opendaylight.controller.mdsal.Attribute) } + public interface PathArgumentAttributeOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional .org.opendaylight.controller.mdsal.QName name = 1; + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + boolean hasName(); + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName getName(); + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNameOrBuilder(); + + // optional string value = 2; + /** + * optional string value = 2; + */ + boolean hasValue(); + /** + * optional string value = 2; + */ + java.lang.String getValue(); + /** + * optional string value = 2; + */ + com.google.protobuf.ByteString + getValueBytes(); + + // optional int32 type = 3; + /** + * optional int32 type = 3; + */ + boolean hasType(); + /** + * optional int32 type = 3; + */ + int getType(); + } + /** + * Protobuf type {@code org.opendaylight.controller.mdsal.PathArgumentAttribute} + */ + public static final class PathArgumentAttribute extends + com.google.protobuf.GeneratedMessage + implements PathArgumentAttributeOrBuilder { + // Use PathArgumentAttribute.newBuilder() to construct. + private PathArgumentAttribute(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private PathArgumentAttribute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final PathArgumentAttribute defaultInstance; + public static PathArgumentAttribute getDefaultInstance() { + return defaultInstance; + } + + public PathArgumentAttribute getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PathArgumentAttribute( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + bitField0_ |= 0x00000002; + value_ = input.readBytes(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + type_ = input.readInt32(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.class, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public PathArgumentAttribute parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PathArgumentAttribute(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .org.opendaylight.controller.mdsal.QName name = 1; + public static final int NAME_FIELD_NUMBER = 1; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName name_; + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName getName() { + return name_; + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNameOrBuilder() { + return name_; + } + + // optional string value = 2; + public static final int VALUE_FIELD_NUMBER = 2; + private java.lang.Object value_; + /** + * optional string value = 2; + */ + public boolean hasValue() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string value = 2; + */ + public java.lang.String getValue() { + java.lang.Object ref = value_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + value_ = s; + } + return s; + } + } + /** + * optional string value = 2; + */ + public com.google.protobuf.ByteString + getValueBytes() { + java.lang.Object ref = value_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + value_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // optional int32 type = 3; + public static final int TYPE_FIELD_NUMBER = 3; + private int type_; + /** + * optional int32 type = 3; + */ + public boolean hasType() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional int32 type = 3; + */ + public int getType() { + return type_; + } + + private void initFields() { + name_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + value_ = ""; + type_ = 0; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, name_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getValueBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, type_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, name_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, getValueBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, type_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.opendaylight.controller.mdsal.PathArgumentAttribute} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.class, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder.class); + } + + // Construct using org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getNameFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (nameBuilder_ == null) { + name_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + } else { + nameBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + value_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + type_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor; + } + + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute getDefaultInstanceForType() { + return org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.getDefaultInstance(); + } + + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute build() { + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute buildPartial() { + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute result = new org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (nameBuilder_ == null) { + result.name_ = name_; + } else { + result.name_ = nameBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.value_ = value_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.type_ = type_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute) { + return mergeFrom((org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute other) { + if (other == org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.getDefaultInstance()) return this; + if (other.hasName()) { + mergeName(other.getName()); + } + if (other.hasValue()) { + bitField0_ |= 0x00000002; + value_ = other.value_; + onChanged(); + } + if (other.hasType()) { + setType(other.getType()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .org.opendaylight.controller.mdsal.QName name = 1; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName name_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder> nameBuilder_; + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName getName() { + if (nameBuilder_ == null) { + return name_; + } else { + return nameBuilder_.getMessage(); + } + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public Builder setName(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName value) { + if (nameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + onChanged(); + } else { + nameBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public Builder setName( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder builderForValue) { + if (nameBuilder_ == null) { + name_ = builderForValue.build(); + onChanged(); + } else { + nameBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public Builder mergeName(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName value) { + if (nameBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance()) { + name_ = + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + onChanged(); + } else { + nameBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public Builder clearName() { + if (nameBuilder_ == null) { + name_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + onChanged(); + } else { + nameBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder getNameBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getNameFieldBuilder().getBuilder(); + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNameOrBuilder() { + if (nameBuilder_ != null) { + return nameBuilder_.getMessageOrBuilder(); + } else { + return name_; + } + } + /** + * optional .org.opendaylight.controller.mdsal.QName name = 1; + */ + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder> + getNameFieldBuilder() { + if (nameBuilder_ == null) { + nameBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder>( + name_, + getParentForChildren(), + isClean()); + name_ = null; + } + return nameBuilder_; + } + + // optional string value = 2; + private java.lang.Object value_ = ""; + /** + * optional string value = 2; + */ + public boolean hasValue() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional string value = 2; + */ + public java.lang.String getValue() { + java.lang.Object ref = value_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + value_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string value = 2; + */ + public com.google.protobuf.ByteString + getValueBytes() { + java.lang.Object ref = value_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + value_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string value = 2; + */ + public Builder setValue( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + value_ = value; + onChanged(); + return this; + } + /** + * optional string value = 2; + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000002); + value_ = getDefaultInstance().getValue(); + onChanged(); + return this; + } + /** + * optional string value = 2; + */ + public Builder setValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + value_ = value; + onChanged(); + return this; + } + + // optional int32 type = 3; + private int type_ ; + /** + * optional int32 type = 3; + */ + public boolean hasType() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional int32 type = 3; + */ + public int getType() { + return type_; + } + /** + * optional int32 type = 3; + */ + public Builder setType(int value) { + bitField0_ |= 0x00000004; + type_ = value; + onChanged(); + return this; + } + /** + * optional int32 type = 3; + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000004); + type_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:org.opendaylight.controller.mdsal.PathArgumentAttribute) + } + + static { + defaultInstance = new PathArgumentAttribute(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.opendaylight.controller.mdsal.PathArgumentAttribute) + } + public interface QNameOrBuilder extends com.google.protobuf.MessageOrBuilder { - // required string value = 1; + // optional string value = 1; + /** + * optional string value = 1; + * + *
+     * @deprecated
+     * 
+ */ + boolean hasValue(); + /** + * optional string value = 1; + * + *
+     * @deprecated
+     * 
+ */ + java.lang.String getValue(); + /** + * optional string value = 1; + * + *
+     * @deprecated
+     * 
+ */ + com.google.protobuf.ByteString + getValueBytes(); + + // optional int32 namespace = 2; /** - * required string value = 1; + * optional int32 namespace = 2; */ - boolean hasValue(); + boolean hasNamespace(); /** - * required string value = 1; + * optional int32 namespace = 2; */ - java.lang.String getValue(); + int getNamespace(); + + // optional int32 revision = 3; /** - * required string value = 1; + * optional int32 revision = 3; */ - com.google.protobuf.ByteString - getValueBytes(); + boolean hasRevision(); + /** + * optional int32 revision = 3; + */ + int getRevision(); + + // optional int32 localName = 4; + /** + * optional int32 localName = 4; + */ + boolean hasLocalName(); + /** + * optional int32 localName = 4; + */ + int getLocalName(); } /** * Protobuf type {@code org.opendaylight.controller.mdsal.QName} @@ -873,6 +1659,21 @@ public final class NormalizedNodeMessages { value_ = input.readBytes(); break; } + case 16: { + bitField0_ |= 0x00000002; + namespace_ = input.readInt32(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + revision_ = input.readInt32(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + localName_ = input.readInt32(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -913,17 +1714,25 @@ public final class NormalizedNodeMessages { } private int bitField0_; - // required string value = 1; + // optional string value = 1; public static final int VALUE_FIELD_NUMBER = 1; private java.lang.Object value_; /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public boolean hasValue() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -940,7 +1749,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public com.google.protobuf.ByteString getValueBytes() { @@ -956,18 +1769,65 @@ public final class NormalizedNodeMessages { } } + // optional int32 namespace = 2; + public static final int NAMESPACE_FIELD_NUMBER = 2; + private int namespace_; + /** + * optional int32 namespace = 2; + */ + public boolean hasNamespace() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional int32 namespace = 2; + */ + public int getNamespace() { + return namespace_; + } + + // optional int32 revision = 3; + public static final int REVISION_FIELD_NUMBER = 3; + private int revision_; + /** + * optional int32 revision = 3; + */ + public boolean hasRevision() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional int32 revision = 3; + */ + public int getRevision() { + return revision_; + } + + // optional int32 localName = 4; + public static final int LOCALNAME_FIELD_NUMBER = 4; + private int localName_; + /** + * optional int32 localName = 4; + */ + public boolean hasLocalName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 localName = 4; + */ + public int getLocalName() { + return localName_; + } + private void initFields() { value_ = ""; + namespace_ = 0; + revision_ = 0; + localName_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; - if (!hasValue()) { - memoizedIsInitialized = 0; - return false; - } memoizedIsInitialized = 1; return true; } @@ -978,6 +1838,15 @@ public final class NormalizedNodeMessages { if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeBytes(1, getValueBytes()); } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, namespace_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, revision_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(4, localName_); + } getUnknownFields().writeTo(output); } @@ -991,6 +1860,18 @@ public final class NormalizedNodeMessages { size += com.google.protobuf.CodedOutputStream .computeBytesSize(1, getValueBytes()); } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, namespace_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, revision_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, localName_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -1109,6 +1990,12 @@ public final class NormalizedNodeMessages { super.clear(); value_ = ""; bitField0_ = (bitField0_ & ~0x00000001); + namespace_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + revision_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + localName_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -1141,6 +2028,18 @@ public final class NormalizedNodeMessages { to_bitField0_ |= 0x00000001; } result.value_ = value_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.namespace_ = namespace_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.revision_ = revision_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.localName_ = localName_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -1162,15 +2061,20 @@ public final class NormalizedNodeMessages { value_ = other.value_; onChanged(); } + if (other.hasNamespace()) { + setNamespace(other.getNamespace()); + } + if (other.hasRevision()) { + setRevision(other.getRevision()); + } + if (other.hasLocalName()) { + setLocalName(other.getLocalName()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } public final boolean isInitialized() { - if (!hasValue()) { - - return false; - } return true; } @@ -1193,16 +2097,24 @@ public final class NormalizedNodeMessages { } private int bitField0_; - // required string value = 1; + // optional string value = 1; private java.lang.Object value_ = ""; /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public boolean hasValue() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -1216,7 +2128,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public com.google.protobuf.ByteString getValueBytes() { @@ -1232,7 +2148,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder setValue( java.lang.String value) { @@ -1245,7 +2165,11 @@ public final class NormalizedNodeMessages { return this; } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder clearValue() { bitField0_ = (bitField0_ & ~0x00000001); @@ -1254,7 +2178,11 @@ public final class NormalizedNodeMessages { return this; } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder setValueBytes( com.google.protobuf.ByteString value) { @@ -1267,6 +2195,105 @@ public final class NormalizedNodeMessages { return this; } + // optional int32 namespace = 2; + private int namespace_ ; + /** + * optional int32 namespace = 2; + */ + public boolean hasNamespace() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional int32 namespace = 2; + */ + public int getNamespace() { + return namespace_; + } + /** + * optional int32 namespace = 2; + */ + public Builder setNamespace(int value) { + bitField0_ |= 0x00000002; + namespace_ = value; + onChanged(); + return this; + } + /** + * optional int32 namespace = 2; + */ + public Builder clearNamespace() { + bitField0_ = (bitField0_ & ~0x00000002); + namespace_ = 0; + onChanged(); + return this; + } + + // optional int32 revision = 3; + private int revision_ ; + /** + * optional int32 revision = 3; + */ + public boolean hasRevision() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional int32 revision = 3; + */ + public int getRevision() { + return revision_; + } + /** + * optional int32 revision = 3; + */ + public Builder setRevision(int value) { + bitField0_ |= 0x00000004; + revision_ = value; + onChanged(); + return this; + } + /** + * optional int32 revision = 3; + */ + public Builder clearRevision() { + bitField0_ = (bitField0_ & ~0x00000004); + revision_ = 0; + onChanged(); + return this; + } + + // optional int32 localName = 4; + private int localName_ ; + /** + * optional int32 localName = 4; + */ + public boolean hasLocalName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 localName = 4; + */ + public int getLocalName() { + return localName_; + } + /** + * optional int32 localName = 4; + */ + public Builder setLocalName(int value) { + bitField0_ |= 0x00000008; + localName_ = value; + onChanged(); + return this; + } + /** + * optional int32 localName = 4; + */ + public Builder clearLocalName() { + bitField0_ = (bitField0_ & ~0x00000008); + localName_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:org.opendaylight.controller.mdsal.QName) } @@ -1281,17 +2308,29 @@ public final class NormalizedNodeMessages { public interface PathArgumentOrBuilder extends com.google.protobuf.MessageOrBuilder { - // required string value = 1; + // optional string value = 1; /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ boolean hasValue(); /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ java.lang.String getValue(); /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ com.google.protobuf.ByteString getValueBytes(); @@ -1301,7 +2340,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ boolean hasType(); @@ -1309,7 +2348,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ java.lang.String getType(); @@ -1317,7 +2356,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ com.google.protobuf.ByteString @@ -1337,30 +2376,85 @@ public final class NormalizedNodeMessages { */ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNodeTypeOrBuilder(); - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + // repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + java.util.List + getAttributeList(); + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute getAttribute(int index); + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + int getAttributeCount(); + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + java.util.List + getAttributeOrBuilderList(); + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder getAttributeOrBuilder( + int index); + + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ java.util.List getAttributesList(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ int getAttributesCount(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ java.util.List getAttributesOrBuilderList(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index); + + // optional int32 intType = 6; + /** + * optional int32 intType = 6; + */ + boolean hasIntType(); + /** + * optional int32 intType = 6; + */ + int getIntType(); } /** * Protobuf type {@code org.opendaylight.controller.mdsal.PathArgument} @@ -1438,12 +2532,25 @@ public final class NormalizedNodeMessages { } case 34: { if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - attributes_ = new java.util.ArrayList(); + attribute_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000008; } + attribute_.add(input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.PARSER, extensionRegistry)); + break; + } + case 42: { + if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { + attributes_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000010; + } attributes_.add(input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.PARSER, extensionRegistry)); break; } + case 48: { + bitField0_ |= 0x00000008; + intType_ = input.readInt32(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -1453,6 +2560,9 @@ public final class NormalizedNodeMessages { e.getMessage()).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + attribute_ = java.util.Collections.unmodifiableList(attribute_); + } + if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); } this.unknownFields = unknownFields.build(); @@ -1487,17 +2597,25 @@ public final class NormalizedNodeMessages { } private int bitField0_; - // required string value = 1; + // optional string value = 1; public static final int VALUE_FIELD_NUMBER = 1; private java.lang.Object value_; /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public boolean hasValue() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -1514,7 +2632,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+     * @deprecated
+     * 
*/ public com.google.protobuf.ByteString getValueBytes() { @@ -1537,7 +2659,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ public boolean hasType() { @@ -1547,7 +2669,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ public java.lang.String getType() { @@ -1568,7 +2690,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-     *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+     * @deprecated
      * 
*/ public com.google.protobuf.ByteString @@ -1584,86 +2706,150 @@ public final class NormalizedNodeMessages { return (com.google.protobuf.ByteString) ref; } } - - // optional .org.opendaylight.controller.mdsal.QName nodeType = 3; - public static final int NODETYPE_FIELD_NUMBER = 3; - private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName nodeType_; + + // optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + public static final int NODETYPE_FIELD_NUMBER = 3; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName nodeType_; + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public boolean hasNodeType() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName getNodeType() { + return nodeType_; + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNodeTypeOrBuilder() { + return nodeType_; + } + + // repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + public static final int ATTRIBUTE_FIELD_NUMBER = 4; + private java.util.List attribute_; + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public java.util.List getAttributeList() { + return attribute_; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public java.util.List + getAttributeOrBuilderList() { + return attribute_; + } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public boolean hasNodeType() { - return ((bitField0_ & 0x00000004) == 0x00000004); + public int getAttributeCount() { + return attribute_.size(); } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName getNodeType() { - return nodeType_; + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute getAttribute(int index) { + return attribute_.get(index); } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNodeTypeOrBuilder() { - return nodeType_; + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder getAttributeOrBuilder( + int index) { + return attribute_.get(index); } - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; - public static final int ATTRIBUTES_FIELD_NUMBER = 4; + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + public static final int ATTRIBUTES_FIELD_NUMBER = 5; private java.util.List attributes_; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ public java.util.List getAttributesList() { return attributes_; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ public java.util.List getAttributesOrBuilderList() { return attributes_; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ public int getAttributesCount() { return attributes_.size(); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index) { return attributes_.get(index); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+     * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+     * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index) { return attributes_.get(index); } + // optional int32 intType = 6; + public static final int INTTYPE_FIELD_NUMBER = 6; + private int intType_; + /** + * optional int32 intType = 6; + */ + public boolean hasIntType() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 intType = 6; + */ + public int getIntType() { + return intType_; + } + private void initFields() { value_ = ""; type_ = ""; nodeType_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + attribute_ = java.util.Collections.emptyList(); attributes_ = java.util.Collections.emptyList(); + intType_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; - if (!hasValue()) { - memoizedIsInitialized = 0; - return false; - } - if (hasNodeType()) { - if (!getNodeType().isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } for (int i = 0; i < getAttributesCount(); i++) { if (!getAttributes(i).isInitialized()) { memoizedIsInitialized = 0; @@ -1686,8 +2872,14 @@ public final class NormalizedNodeMessages { if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeMessage(3, nodeType_); } + for (int i = 0; i < attribute_.size(); i++) { + output.writeMessage(4, attribute_.get(i)); + } for (int i = 0; i < attributes_.size(); i++) { - output.writeMessage(4, attributes_.get(i)); + output.writeMessage(5, attributes_.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(6, intType_); } getUnknownFields().writeTo(output); } @@ -1710,9 +2902,17 @@ public final class NormalizedNodeMessages { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, nodeType_); } + for (int i = 0; i < attribute_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, attribute_.get(i)); + } for (int i = 0; i < attributes_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, attributes_.get(i)); + .computeMessageSize(5, attributes_.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, intType_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -1823,6 +3023,7 @@ public final class NormalizedNodeMessages { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { getNodeTypeFieldBuilder(); + getAttributeFieldBuilder(); getAttributesFieldBuilder(); } } @@ -1842,12 +3043,20 @@ public final class NormalizedNodeMessages { nodeTypeBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); + if (attributeBuilder_ == null) { + attribute_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + attributeBuilder_.clear(); + } if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); } else { attributesBuilder_.clear(); } + intType_ = 0; + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -1892,15 +3101,28 @@ public final class NormalizedNodeMessages { } else { result.nodeType_ = nodeTypeBuilder_.build(); } - if (attributesBuilder_ == null) { + if (attributeBuilder_ == null) { if (((bitField0_ & 0x00000008) == 0x00000008)) { - attributes_ = java.util.Collections.unmodifiableList(attributes_); + attribute_ = java.util.Collections.unmodifiableList(attribute_); bitField0_ = (bitField0_ & ~0x00000008); } + result.attribute_ = attribute_; + } else { + result.attribute_ = attributeBuilder_.build(); + } + if (attributesBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010)) { + attributes_ = java.util.Collections.unmodifiableList(attributes_); + bitField0_ = (bitField0_ & ~0x00000010); + } result.attributes_ = attributes_; } else { result.attributes_ = attributesBuilder_.build(); } + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000008; + } + result.intType_ = intType_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -1930,11 +3152,37 @@ public final class NormalizedNodeMessages { if (other.hasNodeType()) { mergeNodeType(other.getNodeType()); } + if (attributeBuilder_ == null) { + if (!other.attribute_.isEmpty()) { + if (attribute_.isEmpty()) { + attribute_ = other.attribute_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureAttributeIsMutable(); + attribute_.addAll(other.attribute_); + } + onChanged(); + } + } else { + if (!other.attribute_.isEmpty()) { + if (attributeBuilder_.isEmpty()) { + attributeBuilder_.dispose(); + attributeBuilder_ = null; + attribute_ = other.attribute_; + bitField0_ = (bitField0_ & ~0x00000008); + attributeBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getAttributeFieldBuilder() : null; + } else { + attributeBuilder_.addAllMessages(other.attribute_); + } + } + } if (attributesBuilder_ == null) { if (!other.attributes_.isEmpty()) { if (attributes_.isEmpty()) { attributes_ = other.attributes_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureAttributesIsMutable(); attributes_.addAll(other.attributes_); @@ -1947,7 +3195,7 @@ public final class NormalizedNodeMessages { attributesBuilder_.dispose(); attributesBuilder_ = null; attributes_ = other.attributes_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); attributesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getAttributesFieldBuilder() : null; @@ -1956,21 +3204,14 @@ public final class NormalizedNodeMessages { } } } + if (other.hasIntType()) { + setIntType(other.getIntType()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } public final boolean isInitialized() { - if (!hasValue()) { - - return false; - } - if (hasNodeType()) { - if (!getNodeType().isInitialized()) { - - return false; - } - } for (int i = 0; i < getAttributesCount(); i++) { if (!getAttributes(i).isInitialized()) { @@ -1999,16 +3240,24 @@ public final class NormalizedNodeMessages { } private int bitField0_; - // required string value = 1; + // optional string value = 1; private java.lang.Object value_ = ""; /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public boolean hasValue() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -2022,7 +3271,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public com.google.protobuf.ByteString getValueBytes() { @@ -2038,7 +3291,11 @@ public final class NormalizedNodeMessages { } } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder setValue( java.lang.String value) { @@ -2051,7 +3308,11 @@ public final class NormalizedNodeMessages { return this; } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder clearValue() { bitField0_ = (bitField0_ & ~0x00000001); @@ -2060,7 +3321,11 @@ public final class NormalizedNodeMessages { return this; } /** - * required string value = 1; + * optional string value = 1; + * + *
+       * @deprecated
+       * 
*/ public Builder setValueBytes( com.google.protobuf.ByteString value) { @@ -2079,7 +3344,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public boolean hasType() { @@ -2089,7 +3354,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public java.lang.String getType() { @@ -2107,7 +3372,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public com.google.protobuf.ByteString @@ -2127,7 +3392,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public Builder setType( @@ -2144,7 +3409,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public Builder clearType() { @@ -2157,7 +3422,7 @@ public final class NormalizedNodeMessages { * optional string type = 2; * *
-       *NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates
+       * @deprecated
        * 
*/ public Builder setTypeBytes( @@ -2216,85 +3481,325 @@ public final class NormalizedNodeMessages { nodeType_ = builderForValue.build(); onChanged(); } else { - nodeTypeBuilder_.setMessage(builderForValue.build()); + nodeTypeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public Builder mergeNodeType(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName value) { + if (nodeTypeBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + nodeType_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance()) { + nodeType_ = + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.newBuilder(nodeType_).mergeFrom(value).buildPartial(); + } else { + nodeType_ = value; + } + onChanged(); + } else { + nodeTypeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public Builder clearNodeType() { + if (nodeTypeBuilder_ == null) { + nodeType_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + onChanged(); + } else { + nodeTypeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder getNodeTypeBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getNodeTypeFieldBuilder().getBuilder(); + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNodeTypeOrBuilder() { + if (nodeTypeBuilder_ != null) { + return nodeTypeBuilder_.getMessageOrBuilder(); + } else { + return nodeType_; + } + } + /** + * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder> + getNodeTypeFieldBuilder() { + if (nodeTypeBuilder_ == null) { + nodeTypeBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder>( + nodeType_, + getParentForChildren(), + isClean()); + nodeType_ = null; + } + return nodeTypeBuilder_; + } + + // repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + private java.util.List attribute_ = + java.util.Collections.emptyList(); + private void ensureAttributeIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + attribute_ = new java.util.ArrayList(attribute_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder> attributeBuilder_; + + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public java.util.List getAttributeList() { + if (attributeBuilder_ == null) { + return java.util.Collections.unmodifiableList(attribute_); + } else { + return attributeBuilder_.getMessageList(); + } + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public int getAttributeCount() { + if (attributeBuilder_ == null) { + return attribute_.size(); + } else { + return attributeBuilder_.getCount(); + } + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute getAttribute(int index) { + if (attributeBuilder_ == null) { + return attribute_.get(index); + } else { + return attributeBuilder_.getMessage(index); + } + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder setAttribute( + int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute value) { + if (attributeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAttributeIsMutable(); + attribute_.set(index, value); + onChanged(); + } else { + attributeBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder setAttribute( + int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder builderForValue) { + if (attributeBuilder_ == null) { + ensureAttributeIsMutable(); + attribute_.set(index, builderForValue.build()); + onChanged(); + } else { + attributeBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder addAttribute(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute value) { + if (attributeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAttributeIsMutable(); + attribute_.add(value); + onChanged(); + } else { + attributeBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder addAttribute( + int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute value) { + if (attributeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAttributeIsMutable(); + attribute_.add(index, value); + onChanged(); + } else { + attributeBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder addAttribute( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder builderForValue) { + if (attributeBuilder_ == null) { + ensureAttributeIsMutable(); + attribute_.add(builderForValue.build()); + onChanged(); + } else { + attributeBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder addAttribute( + int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder builderForValue) { + if (attributeBuilder_ == null) { + ensureAttributeIsMutable(); + attribute_.add(index, builderForValue.build()); + onChanged(); + } else { + attributeBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public Builder addAllAttribute( + java.lang.Iterable values) { + if (attributeBuilder_ == null) { + ensureAttributeIsMutable(); + super.addAll(values, attribute_); + onChanged(); + } else { + attributeBuilder_.addAllMessages(values); } - bitField0_ |= 0x00000004; return this; } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public Builder mergeNodeType(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName value) { - if (nodeTypeBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - nodeType_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance()) { - nodeType_ = - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.newBuilder(nodeType_).mergeFrom(value).buildPartial(); - } else { - nodeType_ = value; - } + public Builder clearAttribute() { + if (attributeBuilder_ == null) { + attribute_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { - nodeTypeBuilder_.mergeFrom(value); + attributeBuilder_.clear(); } - bitField0_ |= 0x00000004; return this; } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public Builder clearNodeType() { - if (nodeTypeBuilder_ == null) { - nodeType_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.getDefaultInstance(); + public Builder removeAttribute(int index) { + if (attributeBuilder_ == null) { + ensureAttributeIsMutable(); + attribute_.remove(index); onChanged(); } else { - nodeTypeBuilder_.clear(); + attributeBuilder_.remove(index); } - bitField0_ = (bitField0_ & ~0x00000004); return this; } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder getNodeTypeBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getNodeTypeFieldBuilder().getBuilder(); + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder getAttributeBuilder( + int index) { + return getAttributeFieldBuilder().getBuilder(index); } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder getNodeTypeOrBuilder() { - if (nodeTypeBuilder_ != null) { - return nodeTypeBuilder_.getMessageOrBuilder(); + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder getAttributeOrBuilder( + int index) { + if (attributeBuilder_ == null) { + return attribute_.get(index); } else { + return attributeBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public java.util.List + getAttributeOrBuilderList() { + if (attributeBuilder_ != null) { + return attributeBuilder_.getMessageOrBuilderList(); } else { - return nodeType_; + return java.util.Collections.unmodifiableList(attribute_); } } /** - * optional .org.opendaylight.controller.mdsal.QName nodeType = 3; + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; */ - private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder> - getNodeTypeFieldBuilder() { - if (nodeTypeBuilder_ == null) { - nodeTypeBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QName.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.QNameOrBuilder>( - nodeType_, + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder addAttributeBuilder() { + return getAttributeFieldBuilder().addBuilder( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.getDefaultInstance()); + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder addAttributeBuilder( + int index) { + return getAttributeFieldBuilder().addBuilder( + index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.getDefaultInstance()); + } + /** + * repeated .org.opendaylight.controller.mdsal.PathArgumentAttribute attribute = 4; + */ + public java.util.List + getAttributeBuilderList() { + return getAttributeFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder> + getAttributeFieldBuilder() { + if (attributeBuilder_ == null) { + attributeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentAttributeOrBuilder>( + attribute_, + ((bitField0_ & 0x00000008) == 0x00000008), getParentForChildren(), isClean()); - nodeType_ = null; + attribute_ = null; } - return nodeTypeBuilder_; + return attributeBuilder_; } - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; private java.util.List attributes_ = java.util.Collections.emptyList(); private void ensureAttributesIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { + if (!((bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = new java.util.ArrayList(attributes_); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; } } @@ -2302,7 +3807,11 @@ public final class NormalizedNodeMessages { org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder> attributesBuilder_; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public java.util.List getAttributesList() { if (attributesBuilder_ == null) { @@ -2312,7 +3821,11 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public int getAttributesCount() { if (attributesBuilder_ == null) { @@ -2322,7 +3835,11 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index) { if (attributesBuilder_ == null) { @@ -2332,7 +3849,11 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder setAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { @@ -2349,7 +3870,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder setAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -2363,7 +3888,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder addAttributes(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { if (attributesBuilder_ == null) { @@ -2379,7 +3908,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder addAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { @@ -2396,7 +3929,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder addAttributes( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -2410,7 +3947,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder addAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -2424,7 +3965,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder addAllAttributes( java.lang.Iterable values) { @@ -2438,12 +3983,16 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder clearAttributes() { if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { attributesBuilder_.clear(); @@ -2451,7 +4000,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public Builder removeAttributes(int index) { if (attributesBuilder_ == null) { @@ -2464,14 +4017,22 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder getAttributesBuilder( int index) { return getAttributesFieldBuilder().getBuilder(index); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index) { @@ -2481,7 +4042,11 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public java.util.List getAttributesOrBuilderList() { @@ -2492,14 +4057,22 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder addAttributesBuilder() { return getAttributesFieldBuilder().addBuilder( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder addAttributesBuilder( int index) { @@ -2507,7 +4080,11 @@ public final class NormalizedNodeMessages { index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 4; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + * + *
+       * @deprecated For backward compatibility (see InstanceIdentifierUtils)
+       * 
*/ public java.util.List getAttributesBuilderList() { @@ -2520,7 +4097,7 @@ public final class NormalizedNodeMessages { attributesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder>( attributes_, - ((bitField0_ & 0x00000008) == 0x00000008), + ((bitField0_ & 0x00000010) == 0x00000010), getParentForChildren(), isClean()); attributes_ = null; @@ -2528,6 +4105,39 @@ public final class NormalizedNodeMessages { return attributesBuilder_; } + // optional int32 intType = 6; + private int intType_ ; + /** + * optional int32 intType = 6; + */ + public boolean hasIntType() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional int32 intType = 6; + */ + public int getIntType() { + return intType_; + } + /** + * optional int32 intType = 6; + */ + public Builder setIntType(int value) { + bitField0_ |= 0x00000020; + intType_ = value; + onChanged(); + return this; + } + /** + * optional int32 intType = 6; + */ + public Builder clearIntType() { + bitField0_ = (bitField0_ & ~0x00000020); + intType_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:org.opendaylight.controller.mdsal.PathArgument) } @@ -3231,14 +4841,26 @@ public final class NormalizedNodeMessages { // optional string path = 1; /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ boolean hasPath(); /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ java.lang.String getPath(); /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ com.google.protobuf.ByteString getPathBytes(); @@ -3246,131 +4868,261 @@ public final class NormalizedNodeMessages { // optional string type = 2; /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ boolean hasType(); /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ java.lang.String getType(); /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ com.google.protobuf.ByteString getTypeBytes(); - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + // optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + boolean hasPathArgument(); + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument getPathArgument(); + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder getPathArgumentOrBuilder(); + + // optional int32 intType = 4; + /** + * optional int32 intType = 4; + */ + boolean hasIntType(); + /** + * optional int32 intType = 4; + */ + int getIntType(); + + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ java.util.List getAttributesList(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ int getAttributesCount(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ java.util.List getAttributesOrBuilderList(); /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index); - // repeated .org.opendaylight.controller.mdsal.Node child = 4; + // repeated .org.opendaylight.controller.mdsal.Node child = 6; /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ java.util.List getChildList(); /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node getChild(int index); /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ int getChildCount(); /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ java.util.List getChildOrBuilderList(); /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.NodeOrBuilder getChildOrBuilder( int index); - // optional string value = 5; + // optional string value = 7; /** - * optional string value = 5; + * optional string value = 7; */ boolean hasValue(); /** - * optional string value = 5; + * optional string value = 7; */ java.lang.String getValue(); /** - * optional string value = 5; + * optional string value = 7; */ com.google.protobuf.ByteString getValueBytes(); - // optional string valueType = 6; + // optional string valueType = 8; /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ boolean hasValueType(); /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ java.lang.String getValueType(); /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ com.google.protobuf.ByteString getValueTypeBytes(); - // repeated string bitsValue = 7; + // optional int32 intValueType = 9; + /** + * optional int32 intValueType = 9; + * + *
+     * instead of valueType
+     * 
+ */ + boolean hasIntValueType(); + /** + * optional int32 intValueType = 9; + * + *
+     * instead of valueType
+     * 
+ */ + int getIntValueType(); + + // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + boolean hasInstanceIdentifierValue(); + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue(); + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder(); + + // repeated string bitsValue = 11; /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ java.util.List getBitsValueList(); /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ int getBitsValueCount(); /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ java.lang.String getBitsValue(int index); /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ com.google.protobuf.ByteString getBitsValueBytes(int index); - // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + // repeated string code = 12; /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - boolean hasInstanceIdentifierValue(); + java.util.List + getCodeList(); /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue(); + int getCodeCount(); /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder(); + java.lang.String getCode(int index); + /** + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
+ */ + com.google.protobuf.ByteString + getCodeBytes(int index); } /** * Protobuf type {@code org.opendaylight.controller.mdsal.Node} @@ -3434,42 +5186,57 @@ public final class NormalizedNodeMessages { break; } case 26: { - if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = pathArgument_.toBuilder(); + } + pathArgument_ = input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(pathArgument_); + pathArgument_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + case 32: { + bitField0_ |= 0x00000008; + intType_ = input.readInt32(); + break; + } + case 42: { + if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; + mutable_bitField0_ |= 0x00000010; } attributes_.add(input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.PARSER, extensionRegistry)); break; } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + case 50: { + if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { child_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000008; + mutable_bitField0_ |= 0x00000020; } child_.add(input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.PARSER, extensionRegistry)); break; } - case 42: { - bitField0_ |= 0x00000004; + case 58: { + bitField0_ |= 0x00000010; value_ = input.readBytes(); break; } - case 50: { - bitField0_ |= 0x00000008; + case 66: { + bitField0_ |= 0x00000020; valueType_ = input.readBytes(); break; } - case 58: { - if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) { - bitsValue_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000040; - } - bitsValue_.add(input.readBytes()); + case 72: { + bitField0_ |= 0x00000040; + intValueType_ = input.readInt32(); break; } - case 66: { + case 82: { org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { subBuilder = instanceIdentifierValue_.toBuilder(); } instanceIdentifierValue_ = input.readMessage(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.PARSER, extensionRegistry); @@ -3477,7 +5244,23 @@ public final class NormalizedNodeMessages { subBuilder.mergeFrom(instanceIdentifierValue_); instanceIdentifierValue_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000080; + break; + } + case 90: { + if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) { + bitsValue_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000400; + } + bitsValue_.add(input.readBytes()); + break; + } + case 98: { + if (!((mutable_bitField0_ & 0x00000800) == 0x00000800)) { + code_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000800; + } + code_.add(input.readBytes()); break; } } @@ -3488,15 +5271,18 @@ public final class NormalizedNodeMessages { throw new com.google.protobuf.InvalidProtocolBufferException( e.getMessage()).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); } - if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { child_ = java.util.Collections.unmodifiableList(child_); } - if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) { + if (((mutable_bitField0_ & 0x00000400) == 0x00000400)) { bitsValue_ = new com.google.protobuf.UnmodifiableLazyStringList(bitsValue_); } + if (((mutable_bitField0_ & 0x00000800) == 0x00000800)) { + code_ = new com.google.protobuf.UnmodifiableLazyStringList(code_); + } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -3534,12 +5320,20 @@ public final class NormalizedNodeMessages { private java.lang.Object path_; /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ public boolean hasPath() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ public java.lang.String getPath() { java.lang.Object ref = path_; @@ -3557,6 +5351,10 @@ public final class NormalizedNodeMessages { } /** * optional string path = 1; + * + *
+     * @deprecated(use pathArgument)
+     * 
*/ public com.google.protobuf.ByteString getPathBytes() { @@ -3577,12 +5375,20 @@ public final class NormalizedNodeMessages { private java.lang.Object type_; /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ public boolean hasType() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ public java.lang.String getType() { java.lang.Object ref = type_; @@ -3600,6 +5406,10 @@ public final class NormalizedNodeMessages { } /** * optional string type = 2; + * + *
+     * @deprecated(use intType)
+     * 
*/ public com.google.protobuf.ByteString getTypeBytes() { @@ -3615,89 +5425,127 @@ public final class NormalizedNodeMessages { } } - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; - public static final int ATTRIBUTES_FIELD_NUMBER = 3; + // optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + public static final int PATHARGUMENT_FIELD_NUMBER = 3; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument pathArgument_; + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public boolean hasPathArgument() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument getPathArgument() { + return pathArgument_; + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder getPathArgumentOrBuilder() { + return pathArgument_; + } + + // optional int32 intType = 4; + public static final int INTTYPE_FIELD_NUMBER = 4; + private int intType_; + /** + * optional int32 intType = 4; + */ + public boolean hasIntType() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 intType = 4; + */ + public int getIntType() { + return intType_; + } + + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; + public static final int ATTRIBUTES_FIELD_NUMBER = 5; private java.util.List attributes_; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public java.util.List getAttributesList() { return attributes_; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public java.util.List getAttributesOrBuilderList() { return attributes_; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public int getAttributesCount() { return attributes_.size(); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index) { return attributes_.get(index); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index) { return attributes_.get(index); } - // repeated .org.opendaylight.controller.mdsal.Node child = 4; - public static final int CHILD_FIELD_NUMBER = 4; + // repeated .org.opendaylight.controller.mdsal.Node child = 6; + public static final int CHILD_FIELD_NUMBER = 6; private java.util.List child_; /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public java.util.List getChildList() { return child_; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public java.util.List getChildOrBuilderList() { return child_; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public int getChildCount() { return child_.size(); } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node getChild(int index) { return child_.get(index); } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.NodeOrBuilder getChildOrBuilder( int index) { return child_.get(index); } - // optional string value = 5; - public static final int VALUE_FIELD_NUMBER = 5; + // optional string value = 7; + public static final int VALUE_FIELD_NUMBER = 7; private java.lang.Object value_; /** - * optional string value = 5; + * optional string value = 7; */ public boolean hasValue() { - return ((bitField0_ & 0x00000004) == 0x00000004); + return ((bitField0_ & 0x00000010) == 0x00000010); } /** - * optional string value = 5; + * optional string value = 7; */ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -3714,7 +5562,7 @@ public final class NormalizedNodeMessages { } } /** - * optional string value = 5; + * optional string value = 7; */ public com.google.protobuf.ByteString getValueBytes() { @@ -3730,17 +5578,25 @@ public final class NormalizedNodeMessages { } } - // optional string valueType = 6; - public static final int VALUETYPE_FIELD_NUMBER = 6; + // optional string valueType = 8; + public static final int VALUETYPE_FIELD_NUMBER = 8; private java.lang.Object valueType_; /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ public boolean hasValueType() { - return ((bitField0_ & 0x00000008) == 0x00000008); + return ((bitField0_ & 0x00000020) == 0x00000020); } /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ public java.lang.String getValueType() { java.lang.Object ref = valueType_; @@ -3757,7 +5613,11 @@ public final class NormalizedNodeMessages { } } /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+     * @deprecated(use intValueType)
+     * 
*/ public com.google.protobuf.ByteString getValueTypeBytes() { @@ -3773,73 +5633,181 @@ public final class NormalizedNodeMessages { } } - // repeated string bitsValue = 7; - public static final int BITSVALUE_FIELD_NUMBER = 7; + // optional int32 intValueType = 9; + public static final int INTVALUETYPE_FIELD_NUMBER = 9; + private int intValueType_; + /** + * optional int32 intValueType = 9; + * + *
+     * instead of valueType
+     * 
+ */ + public boolean hasIntValueType() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * optional int32 intValueType = 9; + * + *
+     * instead of valueType
+     * 
+ */ + public int getIntValueType() { + return intValueType_; + } + + // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + public static final int INSTANCEIDENTIFIERVALUE_FIELD_NUMBER = 10; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier instanceIdentifierValue_; + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + public boolean hasInstanceIdentifierValue() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue() { + return instanceIdentifierValue_; + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+     * Specific values
+     * 
+ */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder() { + return instanceIdentifierValue_; + } + + // repeated string bitsValue = 11; + public static final int BITSVALUE_FIELD_NUMBER = 11; private com.google.protobuf.LazyStringList bitsValue_; /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ public java.util.List getBitsValueList() { return bitsValue_; } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ public int getBitsValueCount() { return bitsValue_.size(); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ public java.lang.String getBitsValue(int index) { return bitsValue_.get(index); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+     * intValueType = Bits
+     * 
*/ public com.google.protobuf.ByteString getBitsValueBytes(int index) { return bitsValue_.getByteString(index); } - // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; - public static final int INSTANCEIDENTIFIERVALUE_FIELD_NUMBER = 8; - private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier instanceIdentifierValue_; + // repeated string code = 12; + public static final int CODE_FIELD_NUMBER = 12; + private com.google.protobuf.LazyStringList code_; /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - public boolean hasInstanceIdentifierValue() { - return ((bitField0_ & 0x00000010) == 0x00000010); + public java.util.List + getCodeList() { + return code_; + } + /** + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
+ */ + public int getCodeCount() { + return code_.size(); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue() { - return instanceIdentifierValue_; + public java.lang.String getCode(int index) { + return code_.get(index); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+     * A list of string codes which can be used for any repeated strings in the NormalizedNode
+     * 
*/ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder() { - return instanceIdentifierValue_; + public com.google.protobuf.ByteString + getCodeBytes(int index) { + return code_.getByteString(index); } private void initFields() { path_ = ""; type_ = ""; + pathArgument_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.getDefaultInstance(); + intType_ = 0; attributes_ = java.util.Collections.emptyList(); child_ = java.util.Collections.emptyList(); value_ = ""; valueType_ = ""; - bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; + intValueType_ = 0; instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); + bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; + code_ = com.google.protobuf.LazyStringArrayList.EMPTY; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; + if (hasPathArgument()) { + if (!getPathArgument().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } for (int i = 0; i < getAttributesCount(); i++) { if (!getAttributes(i).isInitialized()) { memoizedIsInitialized = 0; @@ -3871,23 +5839,35 @@ public final class NormalizedNodeMessages { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeBytes(2, getTypeBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(3, pathArgument_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(4, intType_); + } for (int i = 0; i < attributes_.size(); i++) { - output.writeMessage(3, attributes_.get(i)); + output.writeMessage(5, attributes_.get(i)); } for (int i = 0; i < child_.size(); i++) { - output.writeMessage(4, child_.get(i)); + output.writeMessage(6, child_.get(i)); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(5, getValueBytes()); + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeBytes(7, getValueBytes()); } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(6, getValueTypeBytes()); + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeBytes(8, getValueTypeBytes()); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeInt32(9, intValueType_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeMessage(10, instanceIdentifierValue_); } for (int i = 0; i < bitsValue_.size(); i++) { - output.writeBytes(7, bitsValue_.getByteString(i)); + output.writeBytes(11, bitsValue_.getByteString(i)); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeMessage(8, instanceIdentifierValue_); + for (int i = 0; i < code_.size(); i++) { + output.writeBytes(12, code_.getByteString(i)); } getUnknownFields().writeTo(output); } @@ -3906,21 +5886,37 @@ public final class NormalizedNodeMessages { size += com.google.protobuf.CodedOutputStream .computeBytesSize(2, getTypeBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, pathArgument_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, intType_); + } for (int i = 0; i < attributes_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, attributes_.get(i)); + .computeMessageSize(5, attributes_.get(i)); } for (int i = 0; i < child_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, child_.get(i)); + .computeMessageSize(6, child_.get(i)); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { + if (((bitField0_ & 0x00000010) == 0x00000010)) { size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, getValueBytes()); + .computeBytesSize(7, getValueBytes()); } - if (((bitField0_ & 0x00000008) == 0x00000008)) { + if (((bitField0_ & 0x00000020) == 0x00000020)) { size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, getValueTypeBytes()); + .computeBytesSize(8, getValueTypeBytes()); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(9, intValueType_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, instanceIdentifierValue_); } { int dataSize = 0; @@ -3931,9 +5927,14 @@ public final class NormalizedNodeMessages { size += dataSize; size += 1 * getBitsValueList().size(); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, instanceIdentifierValue_); + { + int dataSize = 0; + for (int i = 0; i < code_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(code_.getByteString(i)); + } + size += dataSize; + size += 1 * getCodeList().size(); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -4043,6 +6044,7 @@ public final class NormalizedNodeMessages { } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getPathArgumentFieldBuilder(); getAttributesFieldBuilder(); getChildFieldBuilder(); getInstanceIdentifierValueFieldBuilder(); @@ -4058,30 +6060,42 @@ public final class NormalizedNodeMessages { bitField0_ = (bitField0_ & ~0x00000001); type_ = ""; bitField0_ = (bitField0_ & ~0x00000002); + if (pathArgumentBuilder_ == null) { + pathArgument_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.getDefaultInstance(); + } else { + pathArgumentBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + intType_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } else { attributesBuilder_.clear(); } if (childBuilder_ == null) { child_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); } else { childBuilder_.clear(); } value_ = ""; - bitField0_ = (bitField0_ & ~0x00000010); - valueType_ = ""; - bitField0_ = (bitField0_ & ~0x00000020); - bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000040); + valueType_ = ""; + bitField0_ = (bitField0_ & ~0x00000080); + intValueType_ = 0; + bitField0_ = (bitField0_ & ~0x00000100); if (instanceIdentifierValueBuilder_ == null) { instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); } else { instanceIdentifierValueBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000200); + bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000400); + code_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000800); return this; } @@ -4118,46 +6132,68 @@ public final class NormalizedNodeMessages { to_bitField0_ |= 0x00000002; } result.type_ = type_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + if (pathArgumentBuilder_ == null) { + result.pathArgument_ = pathArgument_; + } else { + result.pathArgument_ = pathArgumentBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.intType_ = intType_; if (attributesBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004)) { + if (((bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } result.attributes_ = attributes_; } else { result.attributes_ = attributesBuilder_.build(); } if (childBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { + if (((bitField0_ & 0x00000020) == 0x00000020)) { child_ = java.util.Collections.unmodifiableList(child_); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); } result.child_ = child_; } else { result.child_ = childBuilder_.build(); } - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000004; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000010; } result.value_ = value_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000008; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000020; } result.valueType_ = valueType_; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - bitsValue_ = new com.google.protobuf.UnmodifiableLazyStringList( - bitsValue_); - bitField0_ = (bitField0_ & ~0x00000040); + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000040; } - result.bitsValue_ = bitsValue_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000010; + result.intValueType_ = intValueType_; + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000080; } if (instanceIdentifierValueBuilder_ == null) { result.instanceIdentifierValue_ = instanceIdentifierValue_; } else { result.instanceIdentifierValue_ = instanceIdentifierValueBuilder_.build(); } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + bitsValue_ = new com.google.protobuf.UnmodifiableLazyStringList( + bitsValue_); + bitField0_ = (bitField0_ & ~0x00000400); + } + result.bitsValue_ = bitsValue_; + if (((bitField0_ & 0x00000800) == 0x00000800)) { + code_ = new com.google.protobuf.UnmodifiableLazyStringList( + code_); + bitField0_ = (bitField0_ & ~0x00000800); + } + result.code_ = code_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -4184,11 +6220,17 @@ public final class NormalizedNodeMessages { type_ = other.type_; onChanged(); } + if (other.hasPathArgument()) { + mergePathArgument(other.getPathArgument()); + } + if (other.hasIntType()) { + setIntType(other.getIntType()); + } if (attributesBuilder_ == null) { if (!other.attributes_.isEmpty()) { if (attributes_.isEmpty()) { attributes_ = other.attributes_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureAttributesIsMutable(); attributes_.addAll(other.attributes_); @@ -4201,7 +6243,7 @@ public final class NormalizedNodeMessages { attributesBuilder_.dispose(); attributesBuilder_ = null; attributes_ = other.attributes_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); attributesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getAttributesFieldBuilder() : null; @@ -4214,7 +6256,7 @@ public final class NormalizedNodeMessages { if (!other.child_.isEmpty()) { if (child_.isEmpty()) { child_ = other.child_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); } else { ensureChildIsMutable(); child_.addAll(other.child_); @@ -4227,7 +6269,7 @@ public final class NormalizedNodeMessages { childBuilder_.dispose(); childBuilder_ = null; child_ = other.child_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); childBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getChildFieldBuilder() : null; @@ -4237,33 +6279,52 @@ public final class NormalizedNodeMessages { } } if (other.hasValue()) { - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000040; value_ = other.value_; onChanged(); } if (other.hasValueType()) { - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000080; valueType_ = other.valueType_; onChanged(); } + if (other.hasIntValueType()) { + setIntValueType(other.getIntValueType()); + } + if (other.hasInstanceIdentifierValue()) { + mergeInstanceIdentifierValue(other.getInstanceIdentifierValue()); + } if (!other.bitsValue_.isEmpty()) { if (bitsValue_.isEmpty()) { bitsValue_ = other.bitsValue_; - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000400); } else { ensureBitsValueIsMutable(); bitsValue_.addAll(other.bitsValue_); } onChanged(); } - if (other.hasInstanceIdentifierValue()) { - mergeInstanceIdentifierValue(other.getInstanceIdentifierValue()); + if (!other.code_.isEmpty()) { + if (code_.isEmpty()) { + code_ = other.code_; + bitField0_ = (bitField0_ & ~0x00000800); + } else { + ensureCodeIsMutable(); + code_.addAll(other.code_); + } + onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); return this; } public final boolean isInitialized() { + if (hasPathArgument()) { + if (!getPathArgument().isInitialized()) { + + return false; + } + } for (int i = 0; i < getAttributesCount(); i++) { if (!getAttributes(i).isInitialized()) { @@ -4308,12 +6369,20 @@ public final class NormalizedNodeMessages { private java.lang.Object path_ = ""; /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public boolean hasPath() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public java.lang.String getPath() { java.lang.Object ref = path_; @@ -4328,6 +6397,10 @@ public final class NormalizedNodeMessages { } /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public com.google.protobuf.ByteString getPathBytes() { @@ -4344,6 +6417,10 @@ public final class NormalizedNodeMessages { } /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public Builder setPath( java.lang.String value) { @@ -4357,6 +6434,10 @@ public final class NormalizedNodeMessages { } /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public Builder clearPath() { bitField0_ = (bitField0_ & ~0x00000001); @@ -4366,6 +6447,10 @@ public final class NormalizedNodeMessages { } /** * optional string path = 1; + * + *
+       * @deprecated(use pathArgument)
+       * 
*/ public Builder setPathBytes( com.google.protobuf.ByteString value) { @@ -4382,12 +6467,20 @@ public final class NormalizedNodeMessages { private java.lang.Object type_ = ""; /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public boolean hasType() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public java.lang.String getType() { java.lang.Object ref = type_; @@ -4402,6 +6495,10 @@ public final class NormalizedNodeMessages { } /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public com.google.protobuf.ByteString getTypeBytes() { @@ -4418,6 +6515,10 @@ public final class NormalizedNodeMessages { } /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public Builder setType( java.lang.String value) { @@ -4431,6 +6532,10 @@ public final class NormalizedNodeMessages { } /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public Builder clearType() { bitField0_ = (bitField0_ & ~0x00000002); @@ -4440,6 +6545,10 @@ public final class NormalizedNodeMessages { } /** * optional string type = 2; + * + *
+       * @deprecated(use intType)
+       * 
*/ public Builder setTypeBytes( com.google.protobuf.ByteString value) { @@ -4452,13 +6561,163 @@ public final class NormalizedNodeMessages { return this; } - // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + // optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument pathArgument_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder> pathArgumentBuilder_; + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public boolean hasPathArgument() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument getPathArgument() { + if (pathArgumentBuilder_ == null) { + return pathArgument_; + } else { + return pathArgumentBuilder_.getMessage(); + } + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public Builder setPathArgument(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument value) { + if (pathArgumentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + pathArgument_ = value; + onChanged(); + } else { + pathArgumentBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public Builder setPathArgument( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder builderForValue) { + if (pathArgumentBuilder_ == null) { + pathArgument_ = builderForValue.build(); + onChanged(); + } else { + pathArgumentBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public Builder mergePathArgument(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument value) { + if (pathArgumentBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + pathArgument_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.getDefaultInstance()) { + pathArgument_ = + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.newBuilder(pathArgument_).mergeFrom(value).buildPartial(); + } else { + pathArgument_ = value; + } + onChanged(); + } else { + pathArgumentBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public Builder clearPathArgument() { + if (pathArgumentBuilder_ == null) { + pathArgument_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.getDefaultInstance(); + onChanged(); + } else { + pathArgumentBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder getPathArgumentBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getPathArgumentFieldBuilder().getBuilder(); + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder getPathArgumentOrBuilder() { + if (pathArgumentBuilder_ != null) { + return pathArgumentBuilder_.getMessageOrBuilder(); + } else { + return pathArgument_; + } + } + /** + * optional .org.opendaylight.controller.mdsal.PathArgument pathArgument = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder> + getPathArgumentFieldBuilder() { + if (pathArgumentBuilder_ == null) { + pathArgumentBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgument.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.PathArgumentOrBuilder>( + pathArgument_, + getParentForChildren(), + isClean()); + pathArgument_ = null; + } + return pathArgumentBuilder_; + } + + // optional int32 intType = 4; + private int intType_ ; + /** + * optional int32 intType = 4; + */ + public boolean hasIntType() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 intType = 4; + */ + public int getIntType() { + return intType_; + } + /** + * optional int32 intType = 4; + */ + public Builder setIntType(int value) { + bitField0_ |= 0x00000008; + intType_ = value; + onChanged(); + return this; + } + /** + * optional int32 intType = 4; + */ + public Builder clearIntType() { + bitField0_ = (bitField0_ & ~0x00000008); + intType_ = 0; + onChanged(); + return this; + } + + // repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; private java.util.List attributes_ = java.util.Collections.emptyList(); private void ensureAttributesIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { + if (!((bitField0_ & 0x00000010) == 0x00000010)) { attributes_ = new java.util.ArrayList(attributes_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; } } @@ -4466,7 +6725,7 @@ public final class NormalizedNodeMessages { org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder> attributesBuilder_; /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public java.util.List getAttributesList() { if (attributesBuilder_ == null) { @@ -4476,7 +6735,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public int getAttributesCount() { if (attributesBuilder_ == null) { @@ -4486,7 +6745,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute getAttributes(int index) { if (attributesBuilder_ == null) { @@ -4496,7 +6755,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder setAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { @@ -4513,7 +6772,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder setAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -4527,7 +6786,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder addAttributes(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { if (attributesBuilder_ == null) { @@ -4543,7 +6802,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder addAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute value) { @@ -4560,7 +6819,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder addAttributes( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -4574,7 +6833,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder addAttributes( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder builderForValue) { @@ -4588,7 +6847,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder addAllAttributes( java.lang.Iterable values) { @@ -4602,12 +6861,12 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder clearAttributes() { if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { attributesBuilder_.clear(); @@ -4615,7 +6874,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public Builder removeAttributes(int index) { if (attributesBuilder_ == null) { @@ -4628,14 +6887,14 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder getAttributesBuilder( int index) { return getAttributesFieldBuilder().getBuilder(index); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder getAttributesOrBuilder( int index) { @@ -4645,7 +6904,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public java.util.List getAttributesOrBuilderList() { @@ -4656,14 +6915,14 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder addAttributesBuilder() { return getAttributesFieldBuilder().addBuilder( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder addAttributesBuilder( int index) { @@ -4671,7 +6930,7 @@ public final class NormalizedNodeMessages { index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 3; + * repeated .org.opendaylight.controller.mdsal.Attribute attributes = 5; */ public java.util.List getAttributesBuilderList() { @@ -4684,7 +6943,7 @@ public final class NormalizedNodeMessages { attributesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Attribute.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.AttributeOrBuilder>( attributes_, - ((bitField0_ & 0x00000004) == 0x00000004), + ((bitField0_ & 0x00000010) == 0x00000010), getParentForChildren(), isClean()); attributes_ = null; @@ -4692,13 +6951,13 @@ public final class NormalizedNodeMessages { return attributesBuilder_; } - // repeated .org.opendaylight.controller.mdsal.Node child = 4; + // repeated .org.opendaylight.controller.mdsal.Node child = 6; private java.util.List child_ = java.util.Collections.emptyList(); private void ensureChildIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { + if (!((bitField0_ & 0x00000020) == 0x00000020)) { child_ = new java.util.ArrayList(child_); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000020; } } @@ -4706,7 +6965,7 @@ public final class NormalizedNodeMessages { org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.NodeOrBuilder> childBuilder_; /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public java.util.List getChildList() { if (childBuilder_ == null) { @@ -4716,7 +6975,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public int getChildCount() { if (childBuilder_ == null) { @@ -4726,7 +6985,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node getChild(int index) { if (childBuilder_ == null) { @@ -4736,7 +6995,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder setChild( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node value) { @@ -4753,7 +7012,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder setChild( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder builderForValue) { @@ -4767,7 +7026,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder addChild(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node value) { if (childBuilder_ == null) { @@ -4783,7 +7042,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder addChild( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node value) { @@ -4800,7 +7059,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder addChild( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder builderForValue) { @@ -4814,7 +7073,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder addChild( int index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder builderForValue) { @@ -4828,7 +7087,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder addAllChild( java.lang.Iterable values) { @@ -4842,12 +7101,12 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder clearChild() { if (childBuilder_ == null) { child_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); onChanged(); } else { childBuilder_.clear(); @@ -4855,7 +7114,7 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public Builder removeChild(int index) { if (childBuilder_ == null) { @@ -4868,14 +7127,14 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder getChildBuilder( int index) { return getChildFieldBuilder().getBuilder(index); } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.NodeOrBuilder getChildOrBuilder( int index) { @@ -4885,7 +7144,7 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public java.util.List getChildOrBuilderList() { @@ -4896,14 +7155,14 @@ public final class NormalizedNodeMessages { } } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder addChildBuilder() { return getChildFieldBuilder().addBuilder( org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder addChildBuilder( int index) { @@ -4911,7 +7170,7 @@ public final class NormalizedNodeMessages { index, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.getDefaultInstance()); } /** - * repeated .org.opendaylight.controller.mdsal.Node child = 4; + * repeated .org.opendaylight.controller.mdsal.Node child = 6; */ public java.util.List getChildBuilderList() { @@ -4924,7 +7183,7 @@ public final class NormalizedNodeMessages { childBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.NodeOrBuilder>( child_, - ((bitField0_ & 0x00000008) == 0x00000008), + ((bitField0_ & 0x00000020) == 0x00000020), getParentForChildren(), isClean()); child_ = null; @@ -4932,16 +7191,16 @@ public final class NormalizedNodeMessages { return childBuilder_; } - // optional string value = 5; + // optional string value = 7; private java.lang.Object value_ = ""; /** - * optional string value = 5; + * optional string value = 7; */ public boolean hasValue() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000040) == 0x00000040); } /** - * optional string value = 5; + * optional string value = 7; */ public java.lang.String getValue() { java.lang.Object ref = value_; @@ -4955,7 +7214,7 @@ public final class NormalizedNodeMessages { } } /** - * optional string value = 5; + * optional string value = 7; */ public com.google.protobuf.ByteString getValueBytes() { @@ -4971,51 +7230,59 @@ public final class NormalizedNodeMessages { } } /** - * optional string value = 5; + * optional string value = 7; */ public Builder setValue( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000040; value_ = value; onChanged(); return this; } /** - * optional string value = 5; + * optional string value = 7; */ public Builder clearValue() { - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000040); value_ = getDefaultInstance().getValue(); onChanged(); return this; } /** - * optional string value = 5; + * optional string value = 7; */ public Builder setValueBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000040; value_ = value; onChanged(); return this; } - // optional string valueType = 6; + // optional string valueType = 8; private java.lang.Object valueType_ = ""; /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
*/ public boolean hasValueType() { - return ((bitField0_ & 0x00000020) == 0x00000020); + return ((bitField0_ & 0x00000080) == 0x00000080); } /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
*/ public java.lang.String getValueType() { java.lang.Object ref = valueType_; @@ -5029,93 +7296,331 @@ public final class NormalizedNodeMessages { } } /** - * optional string valueType = 6; + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
+ */ + public com.google.protobuf.ByteString + getValueTypeBytes() { + java.lang.Object ref = valueType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + valueType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
+ */ + public Builder setValueType( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + valueType_ = value; + onChanged(); + return this; + } + /** + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
+ */ + public Builder clearValueType() { + bitField0_ = (bitField0_ & ~0x00000080); + valueType_ = getDefaultInstance().getValueType(); + onChanged(); + return this; + } + /** + * optional string valueType = 8; + * + *
+       * @deprecated(use intValueType)
+       * 
+ */ + public Builder setValueTypeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + valueType_ = value; + onChanged(); + return this; + } + + // optional int32 intValueType = 9; + private int intValueType_ ; + /** + * optional int32 intValueType = 9; + * + *
+       * instead of valueType
+       * 
+ */ + public boolean hasIntValueType() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional int32 intValueType = 9; + * + *
+       * instead of valueType
+       * 
+ */ + public int getIntValueType() { + return intValueType_; + } + /** + * optional int32 intValueType = 9; + * + *
+       * instead of valueType
+       * 
+ */ + public Builder setIntValueType(int value) { + bitField0_ |= 0x00000100; + intValueType_ = value; + onChanged(); + return this; + } + /** + * optional int32 intValueType = 9; + * + *
+       * instead of valueType
+       * 
+ */ + public Builder clearIntValueType() { + bitField0_ = (bitField0_ & ~0x00000100); + intValueType_ = 0; + onChanged(); + return this; + } + + // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> instanceIdentifierValueBuilder_; + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
+ */ + public boolean hasInstanceIdentifierValue() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
+ */ + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue() { + if (instanceIdentifierValueBuilder_ == null) { + return instanceIdentifierValue_; + } else { + return instanceIdentifierValueBuilder_.getMessage(); + } + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
+ */ + public Builder setInstanceIdentifierValue(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier value) { + if (instanceIdentifierValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + instanceIdentifierValue_ = value; + onChanged(); + } else { + instanceIdentifierValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
+ */ + public Builder setInstanceIdentifierValue( + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder builderForValue) { + if (instanceIdentifierValueBuilder_ == null) { + instanceIdentifierValue_ = builderForValue.build(); + onChanged(); + } else { + instanceIdentifierValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + return this; + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
*/ - public com.google.protobuf.ByteString - getValueTypeBytes() { - java.lang.Object ref = valueType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - valueType_ = b; - return b; + public Builder mergeInstanceIdentifierValue(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier value) { + if (instanceIdentifierValueBuilder_ == null) { + if (((bitField0_ & 0x00000200) == 0x00000200) && + instanceIdentifierValue_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance()) { + instanceIdentifierValue_ = + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.newBuilder(instanceIdentifierValue_).mergeFrom(value).buildPartial(); + } else { + instanceIdentifierValue_ = value; + } + onChanged(); } else { - return (com.google.protobuf.ByteString) ref; + instanceIdentifierValueBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000200; + return this; } /** - * optional string valueType = 6; + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
*/ - public Builder setValueType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - valueType_ = value; - onChanged(); + public Builder clearInstanceIdentifierValue() { + if (instanceIdentifierValueBuilder_ == null) { + instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); + onChanged(); + } else { + instanceIdentifierValueBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000200); return this; } /** - * optional string valueType = 6; + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
*/ - public Builder clearValueType() { - bitField0_ = (bitField0_ & ~0x00000020); - valueType_ = getDefaultInstance().getValueType(); + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder getInstanceIdentifierValueBuilder() { + bitField0_ |= 0x00000200; onChanged(); - return this; + return getInstanceIdentifierValueFieldBuilder().getBuilder(); } /** - * optional string valueType = 6; + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
*/ - public Builder setValueTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - valueType_ = value; - onChanged(); - return this; + public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder() { + if (instanceIdentifierValueBuilder_ != null) { + return instanceIdentifierValueBuilder_.getMessageOrBuilder(); + } else { + return instanceIdentifierValue_; + } + } + /** + * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 10; + * + *
+       * Specific values
+       * 
+ */ + private com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> + getInstanceIdentifierValueFieldBuilder() { + if (instanceIdentifierValueBuilder_ == null) { + instanceIdentifierValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder>( + instanceIdentifierValue_, + getParentForChildren(), + isClean()); + instanceIdentifierValue_ = null; + } + return instanceIdentifierValueBuilder_; } - // repeated string bitsValue = 7; + // repeated string bitsValue = 11; private com.google.protobuf.LazyStringList bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureBitsValueIsMutable() { - if (!((bitField0_ & 0x00000040) == 0x00000040)) { + if (!((bitField0_ & 0x00000400) == 0x00000400)) { bitsValue_ = new com.google.protobuf.LazyStringArrayList(bitsValue_); - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000400; } } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public java.util.List getBitsValueList() { return java.util.Collections.unmodifiableList(bitsValue_); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public int getBitsValueCount() { return bitsValue_.size(); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public java.lang.String getBitsValue(int index) { return bitsValue_.get(index); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public com.google.protobuf.ByteString getBitsValueBytes(int index) { return bitsValue_.getByteString(index); } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public Builder setBitsValue( int index, java.lang.String value) { @@ -5128,7 +7633,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public Builder addBitsValue( java.lang.String value) { @@ -5141,7 +7650,11 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public Builder addAllBitsValue( java.lang.Iterable values) { @@ -5151,16 +7664,24 @@ public final class NormalizedNodeMessages { return this; } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public Builder clearBitsValue() { bitsValue_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000400); onChanged(); return this; } /** - * repeated string bitsValue = 7; + * repeated string bitsValue = 11; + * + *
+       * intValueType = Bits
+       * 
*/ public Builder addBitsValueBytes( com.google.protobuf.ByteString value) { @@ -5173,121 +7694,133 @@ public final class NormalizedNodeMessages { return this; } - // optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; - private org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> instanceIdentifierValueBuilder_; + // repeated string code = 12; + private com.google.protobuf.LazyStringList code_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureCodeIsMutable() { + if (!((bitField0_ & 0x00000800) == 0x00000800)) { + code_ = new com.google.protobuf.LazyStringArrayList(code_); + bitField0_ |= 0x00000800; + } + } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public boolean hasInstanceIdentifierValue() { - return ((bitField0_ & 0x00000080) == 0x00000080); + public java.util.List + getCodeList() { + return java.util.Collections.unmodifiableList(code_); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier getInstanceIdentifierValue() { - if (instanceIdentifierValueBuilder_ == null) { - return instanceIdentifierValue_; - } else { - return instanceIdentifierValueBuilder_.getMessage(); - } + public int getCodeCount() { + return code_.size(); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public Builder setInstanceIdentifierValue(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier value) { - if (instanceIdentifierValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - instanceIdentifierValue_ = value; - onChanged(); - } else { - instanceIdentifierValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - return this; + public java.lang.String getCode(int index) { + return code_.get(index); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public Builder setInstanceIdentifierValue( - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder builderForValue) { - if (instanceIdentifierValueBuilder_ == null) { - instanceIdentifierValue_ = builderForValue.build(); - onChanged(); - } else { - instanceIdentifierValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - return this; + public com.google.protobuf.ByteString + getCodeBytes(int index) { + return code_.getByteString(index); } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public Builder mergeInstanceIdentifierValue(org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier value) { - if (instanceIdentifierValueBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080) && - instanceIdentifierValue_ != org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance()) { - instanceIdentifierValue_ = - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.newBuilder(instanceIdentifierValue_).mergeFrom(value).buildPartial(); - } else { - instanceIdentifierValue_ = value; - } - onChanged(); - } else { - instanceIdentifierValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; + public Builder setCode( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCodeIsMutable(); + code_.set(index, value); + onChanged(); return this; } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public Builder clearInstanceIdentifierValue() { - if (instanceIdentifierValueBuilder_ == null) { - instanceIdentifierValue_ = org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.getDefaultInstance(); - onChanged(); - } else { - instanceIdentifierValueBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); + public Builder addCode( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCodeIsMutable(); + code_.add(value); + onChanged(); return this; } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder getInstanceIdentifierValueBuilder() { - bitField0_ |= 0x00000080; + public Builder addAllCode( + java.lang.Iterable values) { + ensureCodeIsMutable(); + super.addAll(values, code_); onChanged(); - return getInstanceIdentifierValueFieldBuilder().getBuilder(); + return this; } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - public org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder getInstanceIdentifierValueOrBuilder() { - if (instanceIdentifierValueBuilder_ != null) { - return instanceIdentifierValueBuilder_.getMessageOrBuilder(); - } else { - return instanceIdentifierValue_; - } + public Builder clearCode() { + code_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; } /** - * optional .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierValue = 8; + * repeated string code = 12; + * + *
+       * A list of string codes which can be used for any repeated strings in the NormalizedNode
+       * 
*/ - private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> - getInstanceIdentifierValueFieldBuilder() { - if (instanceIdentifierValueBuilder_ == null) { - instanceIdentifierValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder>( - instanceIdentifierValue_, - getParentForChildren(), - isClean()); - instanceIdentifierValue_ = null; - } - return instanceIdentifierValueBuilder_; + public Builder addCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCodeIsMutable(); + code_.add(value); + onChanged(); + return this; } // @@protoc_insertion_point(builder_scope:org.opendaylight.controller.mdsal.Node) @@ -7402,6 +9935,11 @@ public final class NormalizedNodeMessages { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_org_opendaylight_controller_mdsal_Attribute_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_fieldAccessorTable; private static com.google.protobuf.Descriptors.Descriptor internal_static_org_opendaylight_controller_mdsal_QName_descriptor; private static @@ -7448,32 +9986,42 @@ public final class NormalizedNodeMessages { java.lang.String[] descriptorData = { "\n\014Common.proto\022!org.opendaylight.control" + "ler.mdsal\"6\n\tAttribute\022\014\n\004name\030\001 \002(\t\022\r\n\005" + - "value\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\"\026\n\005QName\022\r\n\005va" + - "lue\030\001 \002(\t\"\251\001\n\014PathArgument\022\r\n\005value\030\001 \002(" + - "\t\022\014\n\004type\030\002 \001(\t\022:\n\010nodeType\030\003 \001(\0132(.org." + - "opendaylight.controller.mdsal.QName\022@\n\na" + - "ttributes\030\004 \003(\0132,.org.opendaylight.contr" + - "oller.mdsal.Attribute\"X\n\022InstanceIdentif" + - "ier\022B\n\targuments\030\001 \003(\0132/.org.opendayligh" + - "t.controller.mdsal.PathArgument\"\251\002\n\004Node", - "\022\014\n\004path\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\022@\n\nattribut" + - "es\030\003 \003(\0132,.org.opendaylight.controller.m" + - "dsal.Attribute\0226\n\005child\030\004 \003(\0132\'.org.open" + - "daylight.controller.mdsal.Node\022\r\n\005value\030" + - "\005 \001(\t\022\021\n\tvalueType\030\006 \001(\t\022\021\n\tbitsValue\030\007 " + - "\003(\t\022V\n\027instanceIdentifierValue\030\010 \001(\01325.o" + - "rg.opendaylight.controller.mdsal.Instanc" + - "eIdentifier\"`\n\tContainer\022\022\n\nparentPath\030\001" + - " \002(\t\022?\n\016normalizedNode\030\002 \001(\0132\'.org.opend" + - "aylight.controller.mdsal.Node\"\246\001\n\014NodeMa", - "pEntry\022U\n\026instanceIdentifierPath\030\001 \002(\01325" + - ".org.opendaylight.controller.mdsal.Insta" + - "nceIdentifier\022?\n\016normalizedNode\030\002 \001(\0132\'." + - "org.opendaylight.controller.mdsal.Node\"N" + - "\n\007NodeMap\022C\n\nmapEntries\030\001 \003(\0132/.org.open" + - "daylight.controller.mdsal.NodeMapEntryBO" + - "\n5org.opendaylight.controller.protobuff." + - "messages.commonB\026NormalizedNodeMessages" + "value\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\"l\n\025PathArgumen" + + "tAttribute\0226\n\004name\030\001 \001(\0132(.org.opendayli" + + "ght.controller.mdsal.QName\022\r\n\005value\030\002 \001(" + + "\t\022\014\n\004type\030\003 \001(\005\"N\n\005QName\022\r\n\005value\030\001 \001(\t\022" + + "\021\n\tnamespace\030\002 \001(\005\022\020\n\010revision\030\003 \001(\005\022\021\n\t" + + "localName\030\004 \001(\005\"\207\002\n\014PathArgument\022\r\n\005valu" + + "e\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\022:\n\010nodeType\030\003 \001(\0132" + + "(.org.opendaylight.controller.mdsal.QNam", + "e\022K\n\tattribute\030\004 \003(\01328.org.opendaylight." + + "controller.mdsal.PathArgumentAttribute\022@" + + "\n\nattributes\030\005 \003(\0132,.org.opendaylight.co" + + "ntroller.mdsal.Attribute\022\017\n\007intType\030\006 \001(" + + "\005\"X\n\022InstanceIdentifier\022B\n\targuments\030\001 \003" + + "(\0132/.org.opendaylight.controller.mdsal.P" + + "athArgument\"\245\003\n\004Node\022\014\n\004path\030\001 \001(\t\022\014\n\004ty" + + "pe\030\002 \001(\t\022E\n\014pathArgument\030\003 \001(\0132/.org.ope" + + "ndaylight.controller.mdsal.PathArgument\022" + + "\017\n\007intType\030\004 \001(\005\022@\n\nattributes\030\005 \003(\0132,.o", + "rg.opendaylight.controller.mdsal.Attribu" + + "te\0226\n\005child\030\006 \003(\0132\'.org.opendaylight.con" + + "troller.mdsal.Node\022\r\n\005value\030\007 \001(\t\022\021\n\tval" + + "ueType\030\010 \001(\t\022\024\n\014intValueType\030\t \001(\005\022V\n\027in" + + "stanceIdentifierValue\030\n \001(\01325.org.openda" + + "ylight.controller.mdsal.InstanceIdentifi" + + "er\022\021\n\tbitsValue\030\013 \003(\t\022\014\n\004code\030\014 \003(\t\"`\n\tC" + + "ontainer\022\022\n\nparentPath\030\001 \002(\t\022?\n\016normaliz" + + "edNode\030\002 \001(\0132\'.org.opendaylight.controll" + + "er.mdsal.Node\"\246\001\n\014NodeMapEntry\022U\n\026instan", + "ceIdentifierPath\030\001 \002(\01325.org.opendayligh" + + "t.controller.mdsal.InstanceIdentifier\022?\n" + + "\016normalizedNode\030\002 \001(\0132\'.org.opendaylight" + + ".controller.mdsal.Node\"N\n\007NodeMap\022C\n\nmap" + + "Entries\030\001 \003(\0132/.org.opendaylight.control" + + "ler.mdsal.NodeMapEntryBO\n5org.opendaylig" + + "ht.controller.protobuff.messages.commonB" + + "\026NormalizedNodeMessages" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -7486,44 +10034,50 @@ public final class NormalizedNodeMessages { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_Attribute_descriptor, new java.lang.String[] { "Name", "Value", "Type", }); - internal_static_org_opendaylight_controller_mdsal_QName_descriptor = + internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor = getDescriptor().getMessageTypes().get(1); + internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_org_opendaylight_controller_mdsal_PathArgumentAttribute_descriptor, + new java.lang.String[] { "Name", "Value", "Type", }); + internal_static_org_opendaylight_controller_mdsal_QName_descriptor = + getDescriptor().getMessageTypes().get(2); internal_static_org_opendaylight_controller_mdsal_QName_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_QName_descriptor, - new java.lang.String[] { "Value", }); + new java.lang.String[] { "Value", "Namespace", "Revision", "LocalName", }); internal_static_org_opendaylight_controller_mdsal_PathArgument_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(3); internal_static_org_opendaylight_controller_mdsal_PathArgument_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_PathArgument_descriptor, - new java.lang.String[] { "Value", "Type", "NodeType", "Attributes", }); + new java.lang.String[] { "Value", "Type", "NodeType", "Attribute", "Attributes", "IntType", }); internal_static_org_opendaylight_controller_mdsal_InstanceIdentifier_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(4); internal_static_org_opendaylight_controller_mdsal_InstanceIdentifier_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_InstanceIdentifier_descriptor, new java.lang.String[] { "Arguments", }); internal_static_org_opendaylight_controller_mdsal_Node_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(5); internal_static_org_opendaylight_controller_mdsal_Node_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_Node_descriptor, - new java.lang.String[] { "Path", "Type", "Attributes", "Child", "Value", "ValueType", "BitsValue", "InstanceIdentifierValue", }); + new java.lang.String[] { "Path", "Type", "PathArgument", "IntType", "Attributes", "Child", "Value", "ValueType", "IntValueType", "InstanceIdentifierValue", "BitsValue", "Code", }); internal_static_org_opendaylight_controller_mdsal_Container_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(6); internal_static_org_opendaylight_controller_mdsal_Container_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_Container_descriptor, new java.lang.String[] { "ParentPath", "NormalizedNode", }); internal_static_org_opendaylight_controller_mdsal_NodeMapEntry_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(7); internal_static_org_opendaylight_controller_mdsal_NodeMapEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_NodeMapEntry_descriptor, new java.lang.String[] { "InstanceIdentifierPath", "NormalizedNode", }); internal_static_org_opendaylight_controller_mdsal_NodeMap_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(8); internal_static_org_opendaylight_controller_mdsal_NodeMap_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_opendaylight_controller_mdsal_NodeMap_descriptor, diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/persistent/PersistentMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/persistent/PersistentMessages.java index d354348da8..fcf1f45bc2 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/persistent/PersistentMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/persistent/PersistentMessages.java @@ -1640,7 +1640,7 @@ public final class PersistentMessages { .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.getDescriptor(), - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.getDescriptor(), + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.getDescriptor(), }, assigner); } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/shard/CompositeModificationPayload.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/shard/CompositeModificationPayload.java index ca578a88aa..5a9cb9d324 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/shard/CompositeModificationPayload.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/shard/CompositeModificationPayload.java @@ -15,7 +15,7 @@ public final class CompositeModificationPayload { */ public static final com.google.protobuf.GeneratedMessage.GeneratedExtension< - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload, org.opendaylight.controller.protobuff.messages.persistent.PersistentMessages.CompositeModification> modification = com.google.protobuf.GeneratedMessage .newFileScopedGeneratedExtension( org.opendaylight.controller.protobuff.messages.persistent.PersistentMessages.CompositeModification.class, @@ -51,7 +51,7 @@ public final class CompositeModificationPayload { com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { - org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages.getDescriptor(), + org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages.getDescriptor(), org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.getDescriptor(), org.opendaylight.controller.protobuff.messages.persistent.PersistentMessages.getDescriptor(), }, assigner); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/transaction/ShardTransactionMessages.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/transaction/ShardTransactionMessages.java index bdd66d3aba..ded80713fb 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/transaction/ShardTransactionMessages.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/protobuff/messages/transaction/ShardTransactionMessages.java @@ -6945,11 +6945,11 @@ public final class ShardTransactionMessages { public final boolean isInitialized() { if (!hasInstanceIdentifierPathArguments()) { - + return false; } if (!getInstanceIdentifierPathArguments().isInitialized()) { - + return false; } return true; @@ -7078,7 +7078,7 @@ public final class ShardTransactionMessages { * required .org.opendaylight.controller.mdsal.InstanceIdentifier instanceIdentifierPathArguments = 1; */ private com.google.protobuf.SingleFieldBuilder< - org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> + org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifier.Builder, org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.InstanceIdentifierOrBuilder> getInstanceIdentifierPathArgumentsFieldBuilder() { if (instanceIdentifierPathArgumentsBuilder_ == null) { instanceIdentifierPathArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilder< @@ -7437,7 +7437,7 @@ public final class ShardTransactionMessages { public final boolean isInitialized() { if (!hasExists()) { - + return false; } return true; diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/resources/AppendEntriesMessages.proto b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/AppendEntriesMessages.proto similarity index 88% rename from opendaylight/md-sal/sal-akka-raft/src/main/resources/AppendEntriesMessages.proto rename to opendaylight/md-sal/sal-clustering-commons/src/main/resources/AppendEntriesMessages.proto index ab591ea079..4df56ff79d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/resources/AppendEntriesMessages.proto +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/AppendEntriesMessages.proto @@ -1,6 +1,6 @@ package org.opendaylight.controller.cluster.raft; -option java_package = "org.opendaylight.controller.cluster.raft.protobuff.messages"; +option java_package = "org.opendaylight.controller.protobuff.messages.cluster.raft"; option java_outer_classname = "AppendEntriesMessages"; option optimize_for = SPEED; diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/resources/Common.proto b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/Common.proto index 59d78dd04d..0b3ff21eb7 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/resources/Common.proto +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/Common.proto @@ -10,16 +10,29 @@ message Attribute{ optional string type=3; } +message PathArgumentAttribute{ + optional QName name =1; + optional string value=2; + optional int32 type=3; +} + + message QName { - required string value=1; + optional string value=1; // @deprecated + optional int32 namespace=2; + optional int32 revision=3; + optional int32 localName=4; } message PathArgument { - required string value=1; - optional string type=2; //NodeIdentifier, NodeWithValue, NodeIdentifierWithPredicates + optional string value=1; // @deprecated + optional string type=2; // @deprecated + optional QName nodeType=3; - repeated Attribute attributes=4; + repeated PathArgumentAttribute attribute=4; + repeated Attribute attributes=5; // @deprecated For backward compatibility (see InstanceIdentifierUtils) + optional int32 intType = 6; } message InstanceIdentifier { @@ -27,14 +40,24 @@ message InstanceIdentifier { } message Node{ - optional string path = 1; - optional string type = 2; - repeated Attribute attributes = 3; - repeated Node child=4; - optional string value = 5; - optional string valueType = 6; - repeated string bitsValue = 7; - optional InstanceIdentifier instanceIdentifierValue = 8; + optional string path = 1; // @deprecated(use pathArgument) + optional string type = 2; // @deprecated(use intType) + optional PathArgument pathArgument = 3; + optional int32 intType = 4; + + repeated Attribute attributes = 5; + + repeated Node child = 6; + + optional string value = 7; + optional string valueType = 8; // @deprecated(use intValueType) + optional int32 intValueType = 9; // instead of valueType + + // Specific values + optional InstanceIdentifier instanceIdentifierValue = 10; // intValueType = YangInstanceIdentifier + repeated string bitsValue = 11; // intValueType = Bits + + repeated string code = 12; // A list of string codes which can be used for any repeated strings in the NormalizedNode } message Container{ diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/resources/KeyValueMessages.proto b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/KeyValueMessages.proto similarity index 79% rename from opendaylight/md-sal/sal-akka-raft/src/main/resources/KeyValueMessages.proto rename to opendaylight/md-sal/sal-clustering-commons/src/main/resources/KeyValueMessages.proto index 7ee0b215ee..8dc790b3dd 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/resources/KeyValueMessages.proto +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/KeyValueMessages.proto @@ -2,7 +2,7 @@ package org.opendaylight.controller.cluster.raft; import "AppendEntriesMessages.proto"; -option java_package = "org.opendaylight.controller.cluster.example.protobuff.messages"; +option java_package = "org.opendaylight.controller.protobuff.messages.cluster.example"; option java_outer_classname = "KeyValueMessages"; option optimize_for = SPEED; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/resources/MockPayload.proto b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/MockPayload.proto similarity index 54% rename from opendaylight/md-sal/sal-akka-raft/src/test/resources/MockPayload.proto rename to opendaylight/md-sal/sal-clustering-commons/src/main/resources/MockPayload.proto index 0e0c604489..ce29db4e3f 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/resources/MockPayload.proto +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/resources/MockPayload.proto @@ -1,8 +1,8 @@ import "AppendEntriesMessages.proto"; -package org.opendaylight.controller.cluster.raft; +package org.opendaylight.controller.cluster.raft.test; -option java_package = "org.opendaylight.controller.cluster.raft.protobuff.messages"; +option java_package = "org.opendaylight.controller.protobuff.messages.cluster.raft.test"; option java_outer_classname = "MockPayloadMessages"; extend AppendEntries.ReplicatedLogEntry.Payload { diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodecTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodecTest.java index c42865c659..a9f9c722de 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodecTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodecTest.java @@ -10,12 +10,12 @@ package org.opendaylight.controller.cluster.datastore.node; -import junit.framework.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.node.utils.NormalizedNodeGetter; import org.opendaylight.controller.cluster.datastore.node.utils.NormalizedNodeNavigator; import org.opendaylight.controller.cluster.datastore.node.utils.PathUtils; +import org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeSerializer; import org.opendaylight.controller.cluster.datastore.util.TestModel; import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Container; import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node; @@ -28,6 +28,7 @@ import java.util.List; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class NormalizedNodeToNodeCodecTest { @@ -74,7 +75,8 @@ public class NormalizedNodeToNodeCodecTest { assertNotNull(container); assertEquals(id, container.getParentPath() + "/" - + container.getNormalizedNode().getPath()); + + NormalizedNodeSerializer.deSerialize(container.getNormalizedNode(), + container.getNormalizedNode().getPathArgument())); // Decode the normalized node from the ProtocolBuffer form // first get the node representation of normalized node @@ -109,7 +111,7 @@ public class NormalizedNodeToNodeCodecTest { .decode( instanceIdentifierFromString("/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test"), container.getNormalizedNode()); - assertNotNull(decode != null); + assertNotNull(decode); // let us ensure that the return decode normalized node encode returns same container Container containerResult = @@ -117,10 +119,8 @@ public class NormalizedNodeToNodeCodecTest { .build(), decode); assertEquals(container.getParentPath(), containerResult.getParentPath()); - assertEquals(container.getNormalizedNode().getChildCount(), container - .getNormalizedNode().getChildCount()); - Assert.assertEquals(containerResult.getNormalizedNode().getChildCount(), + assertEquals(containerResult.getNormalizedNode().getChildCount(), container.getNormalizedNode().getChildCount()); // check first level children are proper @@ -140,13 +140,22 @@ public class NormalizedNodeToNodeCodecTest { for (Node resultChild : childrenResult) { bFound = false; for (Node originalChild : childrenOriginal) { - if (originalChild.getPath().equals(resultChild.getPath()) - && resultChild.getType().equals(resultChild.getType())) { + + YangInstanceIdentifier.PathArgument result = NormalizedNodeSerializer.deSerialize( + containerResult.getNormalizedNode(), + resultChild.getPathArgument()); + + YangInstanceIdentifier.PathArgument original = NormalizedNodeSerializer.deSerialize( + container.getNormalizedNode(), + originalChild.getPathArgument()); + + if (original.equals(result) + && resultChild.getIntType() == resultChild.getIntType()) { bFound = true; break; } } - Assert.assertTrue(bFound); + assertTrue(bFound); } } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializerTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializerTest.java new file mode 100644 index 0000000000..cdb2e69e83 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializerTest.java @@ -0,0 +1,127 @@ +package org.opendaylight.controller.cluster.datastore.node.utils.serialization; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.opendaylight.controller.cluster.datastore.util.TestModel; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class NormalizedNodeSerializerTest { + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Test + public void testSerializeDeSerialize(){ + + // This test basically serializes and deSerializes a largish document + // which contains most of the types of nodes that go into a normalized + // node and uses several value types as well. It is in general a good + // sanity test which could be augmented with specific unit tests. + + long start = System.nanoTime(); + + NormalizedNode expectedNode = + TestModel.createDocumentOne(TestModel.createTestContext()); + + NormalizedNodeMessages.Node expected = NormalizedNodeSerializer + .serialize(expectedNode); + + System.out.println("Serialize Time = " + (System.nanoTime() - start)/1000000); + + System.out.println("Serialized Size = " + expected.getSerializedSize()); + + System.out.println(expected.toString()); + + start = System.nanoTime(); + + NormalizedNode actualNode = + NormalizedNodeSerializer.deSerialize(expected); + + System.out.println("DeSerialize Time = " + (System.nanoTime() - start)/1000000); + + // Compare the original normalized node to the normalized node that was + // created by serializing the original node and deSerializing it back. + assertEquals(expectedNode, actualNode); + + } + + @Test(expected = NullPointerException.class) + public void testSerializeNullNormalizedNode(){ + assertNotNull(NormalizedNodeSerializer.serialize(null)); + } + + @Test + public void testDeSerializeNullProtocolBufferNode(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("node should not be null"); + + NormalizedNodeSerializer.deSerialize(null); + } + + @Test + public void testDeSerializePathArgumentNullNode(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("node should not be null"); + + NormalizedNodeSerializer + .deSerialize(null, NormalizedNodeMessages.PathArgument.getDefaultInstance()); + } + + @Test + public void testDeSerializePathArgumentNullPathArgument(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("pathArgument should not be null"); + + NormalizedNodeSerializer.deSerialize(NormalizedNodeMessages.Node.getDefaultInstance() , null); + } + + @Test + public void testDeSerializePathArgument(){ + + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + + nodeBuilder.addCode("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test1"); + nodeBuilder.addCode("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test"); + + + nodeBuilder.addCode("2014-04-13"); + nodeBuilder.addCode("2014-05-13"); + nodeBuilder.addCode("2014-03-13"); + + nodeBuilder.addCode("dummy1"); + nodeBuilder.addCode("dummy2"); + nodeBuilder.addCode("dummy3"); + nodeBuilder.addCode("capability"); + + + + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + + pathBuilder.setIntType(PathArgumentType.NODE_IDENTIFIER.ordinal()); + + NormalizedNodeMessages.QName.Builder qNameBuilder = NormalizedNodeMessages.QName.newBuilder(); + qNameBuilder.setNamespace(1); + qNameBuilder.setRevision(4); + qNameBuilder.setLocalName(8); + + pathBuilder.setNodeType(qNameBuilder); + + YangInstanceIdentifier.PathArgument pathArgument = + NormalizedNodeSerializer + .deSerialize(nodeBuilder.build(), pathBuilder.build()); + + assertNotNull(pathArgument); + + assertEquals("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", pathArgument.getNodeType().getNamespace().toString()); + assertEquals("2014-03-13", pathArgument.getNodeType().getFormattedRevision()); + assertEquals("capability", pathArgument.getNodeType().getLocalName()); + } + + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializerTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializerTest.java new file mode 100644 index 0000000000..d1f21ee6f4 --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/PathArgumentSerializerTest.java @@ -0,0 +1,280 @@ +package org.opendaylight.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.opendaylight.controller.cluster.datastore.util.TestModel; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +import java.net.URI; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class PathArgumentSerializerTest{ + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Test + public void testSerializeNullContext(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("context should not be null"); + + PathArgumentSerializer.serialize(null, mock( + YangInstanceIdentifier.PathArgument.class)); + } + + @Test + public void testSerializeNullPathArgument(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("pathArgument should not be null"); + + PathArgumentSerializer.serialize(mock( + NormalizedNodeSerializationContext.class), null); + + } + + @Test + public void testDeSerializeNullContext(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("context should not be null"); + + PathArgumentSerializer.deSerialize(null, NormalizedNodeMessages.PathArgument.getDefaultInstance()); + + } + + @Test + public void testDeSerializeNullPathArgument(){ + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("pathArgument should not be null"); + + PathArgumentSerializer.deSerialize(mock(NormalizedNodeDeSerializationContext.class), null); + + } + + @Test + public void testSerializeNodeIdentifier(){ + NormalizedNodeSerializationContext serializationContext = + mock(NormalizedNodeSerializationContext.class); + + when(serializationContext.addLocalName(anyString())).thenReturn(5); + when(serializationContext.addNamespace(any(URI.class))).thenReturn(10); + when(serializationContext.addRevision(any(Date.class))).thenReturn(11); + + NormalizedNodeMessages.PathArgument actual = PathArgumentSerializer + .serialize(serializationContext, + new YangInstanceIdentifier.NodeIdentifier( + TestModel.TEST_QNAME)); + + assertEquals(PathArgumentType.NODE_IDENTIFIER.ordinal(), actual.getIntType()); + assertEquals(5, actual.getNodeType().getLocalName()); + assertEquals(10, actual.getNodeType().getNamespace()); + assertEquals(11, actual.getNodeType().getRevision()); + + + } + + @Test + public void testSerializeNodeIdentifierWithValue(){ + NormalizedNodeSerializationContext serializationContext = + mock(NormalizedNodeSerializationContext.class); + + when(serializationContext.addLocalName(anyString())).thenReturn(5); + when(serializationContext.addNamespace(any(URI.class))).thenReturn(10); + when(serializationContext.addRevision(any(Date.class))).thenReturn(11); + + NormalizedNodeMessages.PathArgument actual = PathArgumentSerializer + .serialize(serializationContext, + new YangInstanceIdentifier.NodeWithValue( + TestModel.TEST_QNAME, "foo")); + + assertEquals(PathArgumentType.NODE_IDENTIFIER_WITH_VALUE.ordinal(), actual.getIntType()); + assertEquals(5, actual.getNodeType().getLocalName()); + assertEquals(10, actual.getNodeType().getNamespace()); + assertEquals(11, actual.getNodeType().getRevision()); + assertEquals("foo", actual.getAttribute(0).getValue()); + + + } + + @Test + public void testSerializeNodeIdentifierWithPredicates(){ + NormalizedNodeSerializationContext serializationContext = + mock(NormalizedNodeSerializationContext.class); + + + when(serializationContext.addLocalName("test")).thenReturn(5); + when(serializationContext.addLocalName("child-name")).thenReturn(55); + + when(serializationContext.addNamespace(TestModel.TEST_QNAME.getNamespace())).thenReturn( + 10); + when(serializationContext.addNamespace(TestModel.CHILD_NAME_QNAME.getNamespace())).thenReturn(66); + + when(serializationContext.addRevision(TestModel.TEST_QNAME.getRevision())).thenReturn( + 11); + when(serializationContext.addRevision(TestModel.CHILD_NAME_QNAME.getRevision())).thenReturn(77); + + Map predicates = new HashMap<>(); + + predicates.put(TestModel.CHILD_NAME_QNAME, "foobar"); + + NormalizedNodeMessages.PathArgument actual = PathArgumentSerializer + .serialize(serializationContext, + new YangInstanceIdentifier.NodeIdentifierWithPredicates( + TestModel.TEST_QNAME, predicates)); + + assertEquals(PathArgumentType.NODE_IDENTIFIER_WITH_PREDICATES.ordinal(), actual.getIntType()); + assertEquals(5, actual.getNodeType().getLocalName()); + assertEquals(10, actual.getNodeType().getNamespace()); + assertEquals(11, actual.getNodeType().getRevision()); + + assertEquals(55, actual.getAttribute(0).getName().getLocalName()); + assertEquals(66, actual.getAttribute(0).getName().getNamespace()); + assertEquals(77, actual.getAttribute(0).getName().getRevision()); + + assertEquals("foobar", actual.getAttribute(0).getValue()); + + + } + + @Test + public void testSerializeAugmentationIdentifier(){ + NormalizedNodeSerializationContext serializationContext = + mock(NormalizedNodeSerializationContext.class); + + when(serializationContext.addLocalName(anyString())).thenReturn(55); + when(serializationContext.addNamespace(any(URI.class))).thenReturn(66); + when(serializationContext.addRevision(any(Date.class))).thenReturn(77); + + NormalizedNodeMessages.PathArgument actual = PathArgumentSerializer + .serialize(serializationContext, + new YangInstanceIdentifier.AugmentationIdentifier( + ImmutableSet.of(TestModel.TEST_QNAME))); + + assertEquals(PathArgumentType.AUGMENTATION_IDENTIFIER.ordinal(), actual.getIntType()); + + assertEquals(55, actual.getAttribute(0).getName().getLocalName()); + assertEquals(66, actual.getAttribute(0).getName().getNamespace()); + assertEquals(77, actual.getAttribute(0).getName().getRevision()); + + } + + @Test + public void testDeSerializeNodeIdentifier(){ + + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + NormalizedNodeMessages.QName.Builder qNameBuilder = NormalizedNodeMessages.QName.newBuilder(); + + qNameBuilder.setNamespace(0); + qNameBuilder.setRevision(1); + qNameBuilder.setLocalName(2); + + pathBuilder.setNodeType(qNameBuilder); + pathBuilder.setIntType(PathArgumentType.NODE_IDENTIFIER.ordinal()); + + nodeBuilder.addCode(TestModel.TEST_QNAME.getNamespace().toString()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getFormattedRevision()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getLocalName()); + + YangInstanceIdentifier.PathArgument pathArgument = + NormalizedNodeSerializer + .deSerialize(nodeBuilder.build(), pathBuilder.build()); + + assertEquals(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME), pathArgument); + + } + + @Test + public void testDeSerializeNodeWithValue(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + NormalizedNodeMessages.QName.Builder qNameBuilder = NormalizedNodeMessages.QName.newBuilder(); + + qNameBuilder.setNamespace(0); + qNameBuilder.setRevision(1); + qNameBuilder.setLocalName(2); + + pathBuilder.setNodeType(qNameBuilder); + pathBuilder.setIntType(PathArgumentType.NODE_IDENTIFIER_WITH_VALUE.ordinal()); + pathBuilder.addAttribute( + NormalizedNodeMessages.PathArgumentAttribute.newBuilder() + .setValue("foo").setType(ValueType.STRING_TYPE.ordinal())); + + nodeBuilder.addCode(TestModel.TEST_QNAME.getNamespace().toString()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getFormattedRevision()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getLocalName()); + + YangInstanceIdentifier.PathArgument pathArgument = + NormalizedNodeSerializer + .deSerialize(nodeBuilder.build(), pathBuilder.build()); + + assertEquals(new YangInstanceIdentifier.NodeWithValue(TestModel.TEST_QNAME, "foo"), pathArgument); + + } + @Test + public void testDeSerializeNodeIdentifierWithPredicates(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + NormalizedNodeMessages.QName.Builder qNameBuilder = NormalizedNodeMessages.QName.newBuilder(); + + qNameBuilder.setNamespace(0); + qNameBuilder.setRevision(1); + qNameBuilder.setLocalName(2); + + pathBuilder.setNodeType(qNameBuilder); + pathBuilder.setIntType(PathArgumentType.NODE_IDENTIFIER_WITH_PREDICATES.ordinal()); + pathBuilder.addAttribute(NormalizedNodeMessages.PathArgumentAttribute.newBuilder().setName(qNameBuilder).setValue( + "foo").setType(ValueType.STRING_TYPE.ordinal())); + + nodeBuilder.addCode(TestModel.TEST_QNAME.getNamespace().toString()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getFormattedRevision()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getLocalName()); + + YangInstanceIdentifier.PathArgument pathArgument = + NormalizedNodeSerializer + .deSerialize(nodeBuilder.build(), pathBuilder.build()); + + assertEquals(new YangInstanceIdentifier.NodeIdentifierWithPredicates(TestModel.TEST_QNAME, + ImmutableMap.of(TestModel.TEST_QNAME, "foo")), pathArgument); + + } + @Test + public void testDeSerializeNodeAugmentationIdentifier(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + NormalizedNodeMessages.QName.Builder qNameBuilder = NormalizedNodeMessages.QName.newBuilder(); + + qNameBuilder.setNamespace(0); + qNameBuilder.setRevision(1); + qNameBuilder.setLocalName(2); + + pathBuilder.setIntType(PathArgumentType.AUGMENTATION_IDENTIFIER.ordinal()); + pathBuilder.addAttribute(NormalizedNodeMessages.PathArgumentAttribute.newBuilder().setName(qNameBuilder).setType(ValueType.STRING_TYPE.ordinal())); + + nodeBuilder.addCode(TestModel.TEST_QNAME.getNamespace().toString()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getFormattedRevision()); + nodeBuilder.addCode(TestModel.TEST_QNAME.getLocalName()); + + YangInstanceIdentifier.PathArgument pathArgument = + NormalizedNodeSerializer + .deSerialize(nodeBuilder.build(), pathBuilder.build()); + + assertEquals(new YangInstanceIdentifier.AugmentationIdentifier(ImmutableSet.of(TestModel.TEST_QNAME)), pathArgument); + + } + + + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializerTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializerTest.java new file mode 100644 index 0000000000..af7a385cbb --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializerTest.java @@ -0,0 +1,449 @@ +package org.opendaylight.controller.cluster.datastore.node.utils.serialization; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.opendaylight.controller.cluster.datastore.util.TestModel; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + +public class ValueSerializerTest{ + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Test + public void testSerializeShort(){ + short v1 = 5; + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock(NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.SHORT_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("5", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock(NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.SHORT_TYPE.ordinal(), builder1.getType()); + assertEquals("5", builder.getValue()); + + } + + @Test + public void testSerializeInteger(){ + String hexNumber = "f3"; + + Integer expected = Integer.valueOf(hexNumber, 16); + + + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), expected); + + assertEquals(ValueType.INT_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("243", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), expected); + + assertEquals(ValueType.INT_TYPE.ordinal(), builder1.getType()); + assertEquals("243", builder1.getValue()); + + + } + + + @Test + public void testSerializeLong(){ + long v1 = 5; + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.LONG_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("5", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.LONG_TYPE.ordinal(), builder1.getType()); + assertEquals("5", builder1.getValue()); + + } + + @Test + public void testSerializeByte(){ + byte v1 = 5; + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BYTE_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("5", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BYTE_TYPE.ordinal(), builder1.getType()); + assertEquals("5", builder1.getValue()); + + } + + @Test + public void testSerializeBits(){ + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), + ImmutableSet.of("foo", "bar")); + + assertEquals(ValueType.BITS_TYPE.ordinal(), builder.getIntValueType()); + assertTrue( "foo not in bits", builder.getBitsValueList().contains("foo")); + assertTrue( "bar not in bits", builder.getBitsValueList().contains("bar")); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), + ImmutableSet.of("foo", "bar")); + + assertEquals(ValueType.BITS_TYPE.ordinal(), builder1.getType()); + assertEquals("[foo, bar]", builder1.getValue()); + + } + + @Test + public void testSerializeWrongTypeOfSet(){ + expectedException.expect(IllegalArgumentException.class); + expectedException.expectMessage("Expected value type to be Bits but was :"); + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), + ImmutableSet.of(1, 2)); + + } + + @Test + public void testSerializeEmptyString(){ + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class),""); + + assertEquals(ValueType.STRING_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class),""); + + assertEquals(ValueType.STRING_TYPE.ordinal(), builder1.getType()); + assertEquals("", builder1.getValue()); + + } + + @Test + public void testSerializeString(){ + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class),"foo"); + + assertEquals(ValueType.STRING_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("foo", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class),"foo"); + + assertEquals(ValueType.STRING_TYPE.ordinal(), builder1.getType()); + assertEquals("foo", builder1.getValue()); + + } + + + @Test + public void testSerializeBoolean(){ + boolean v1 = true; + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BOOL_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("true", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BOOL_TYPE.ordinal(), builder1.getType()); + assertEquals("true", builder1.getValue()); + } + + @Test + public void testSerializeQName(){ + QName v1 = TestModel.TEST_QNAME; + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.QNAME_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.QNAME_TYPE.ordinal(), builder1.getType()); + assertEquals("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test", builder1.getValue()); + + } + + @Test + public void testSerializeYangIdentifier(){ + YangInstanceIdentifier v1 = TestModel.TEST_PATH; + + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + + assertEquals(ValueType.YANG_IDENTIFIER_TYPE.ordinal(), builder.getIntValueType()); + NormalizedNodeMessages.InstanceIdentifier serializedYangInstanceIdentifier = + builder.getInstanceIdentifierValue(); + + assertEquals(1, serializedYangInstanceIdentifier.getArgumentsCount()); + assertEquals(TestModel.TEST_QNAME.toString(), serializedYangInstanceIdentifier.getArguments(0).getNodeType().getValue()); + } + + @Test + public void testSerializeBigInteger(){ + BigInteger v1 = new BigInteger("1000000000000000000000000"); + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BIG_INTEGER_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("1000000000000000000000000", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BIG_INTEGER_TYPE.ordinal(), builder1.getType()); + assertEquals("1000000000000000000000000", builder1.getValue()); + + } + + @Test + public void testSerializeBigDecimal(){ + BigDecimal v1 = new BigDecimal("1000000000000000000000000.51616"); + NormalizedNodeMessages.Node.Builder builder = NormalizedNodeMessages.Node.newBuilder(); + ValueSerializer.serialize(builder, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BIG_DECIMAL_TYPE.ordinal(), builder.getIntValueType()); + assertEquals("1000000000000000000000000.51616", builder.getValue()); + + NormalizedNodeMessages.PathArgumentAttribute.Builder builder1 = NormalizedNodeMessages.PathArgumentAttribute.newBuilder(); + ValueSerializer.serialize(builder1, mock( + NormalizedNodeSerializationContext.class), v1); + + assertEquals(ValueType.BIG_DECIMAL_TYPE.ordinal(), builder1.getType()); + assertEquals("1000000000000000000000000.51616", builder1.getValue()); + + } + + @Test + public void testDeSerializeShort(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.SHORT_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Short); + assertEquals(25, ((Short) o).shortValue()); + } + + @Test + public void testDeSerializeByte(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.BYTE_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Byte); + assertEquals(25, ((Byte) o).byteValue()); + + } + + @Test + public void testDeSerializeInteger(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.INT_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Integer); + assertEquals(25, ((Integer) o).intValue()); + + } + + @Test + public void testDeSerializeLong(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.LONG_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Long); + assertEquals(25, ((Long) o).longValue()); + + } + + @Test + public void testDeSerializeBoolean(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.BOOL_TYPE.ordinal()); + nodeBuilder.setValue("false"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Boolean); + assertEquals(false, ((Boolean) o).booleanValue()); + + } + + @Test + public void testDeSerializeQName(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.QNAME_TYPE.ordinal()); + nodeBuilder.setValue(TestModel.TEST_QNAME.toString()); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof QName); + assertEquals(TestModel.TEST_QNAME, o); + + } + + @Test + public void testDeSerializeBits(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.BITS_TYPE.ordinal()); + nodeBuilder.addAllBitsValue(ImmutableList.of("foo", "bar")); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof Set); + assertTrue(((Set)o).contains("foo")); + assertTrue(((Set) o).contains("bar")); + + } + + @Test + public void testDeSerializeYangIdentifier(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + NormalizedNodeMessages.InstanceIdentifier.Builder idBuilder = NormalizedNodeMessages.InstanceIdentifier.newBuilder(); + NormalizedNodeMessages.PathArgument.Builder pathBuilder = NormalizedNodeMessages.PathArgument.newBuilder(); + + pathBuilder.setValue(TestModel.TEST_QNAME.toString()); + pathBuilder.setIntType(PathArgumentType.NODE_IDENTIFIER.ordinal()); + + idBuilder.addArguments(pathBuilder); + + nodeBuilder.setIntValueType(ValueType.YANG_IDENTIFIER_TYPE.ordinal()); + nodeBuilder.setInstanceIdentifierValue(idBuilder); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof YangInstanceIdentifier); + assertEquals(TestModel.TEST_PATH, o); + + } + + @Test + public void testDeSerializeString(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.STRING_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof String); + assertEquals("25", o); + + } + + @Test + public void testDeSerializeBigInteger(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.BIG_INTEGER_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof BigInteger); + assertEquals(new BigInteger("25"), o); + + } + + @Test + public void testDeSerializeBigDecimal(){ + NormalizedNodeMessages.Node.Builder nodeBuilder = NormalizedNodeMessages.Node.newBuilder(); + nodeBuilder.setIntValueType(ValueType.BIG_DECIMAL_TYPE.ordinal()); + nodeBuilder.setValue("25"); + + Object o = ValueSerializer + .deSerialize(mock(NormalizedNodeDeSerializationContext.class), + nodeBuilder.build()); + + assertTrue(o instanceof BigDecimal); + assertEquals(new BigDecimal("25"), o); + + } + +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java index 3eeb06f93c..cda4b06e29 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java @@ -10,10 +10,12 @@ package org.opendaylight.controller.cluster.datastore.util; +import com.google.common.collect.ImmutableSet; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -24,6 +26,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeAttrBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder; @@ -355,12 +358,20 @@ public class TestModel { // Create augmentations MapEntryNode mapEntry = createAugmentedListEntry(1, "First Test"); + // Create a bits leaf + NormalizedNodeAttrBuilder> + myBits = Builders.leafBuilder().withNodeIdentifier( + new YangInstanceIdentifier.NodeIdentifier( + QName.create(TEST_QNAME, "my-bits"))).withValue( + ImmutableSet.of("foo", "bar")); - // Create the document + + // Create the document return ImmutableContainerNodeBuilder .create() .withNodeIdentifier( new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME)) + .withChild(myBits.build()) .withChild(ImmutableNodes.leafNode(DESC_QNAME, DESC)) .withChild(ImmutableNodes.leafNode(POINTER_QNAME, "pointer")) .withChild( diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/common/actor/MeteredBoundedMailboxTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/common/actor/MeteredBoundedMailboxTest.java index 1e60803f05..0f96c1002d 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/common/actor/MeteredBoundedMailboxTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/common/actor/MeteredBoundedMailboxTest.java @@ -44,7 +44,8 @@ public class MeteredBoundedMailboxTest { actorSystem.eventStream().subscribe(mockReceiver.getRef(), DeadLetter.class); - final FiniteDuration TEN_SEC = new FiniteDuration(10, TimeUnit.SECONDS); + final FiniteDuration TWENTY_SEC = new FiniteDuration(20, TimeUnit.SECONDS); + String boundedMailBox = actorSystem.name() + ".bounded-mailbox"; ActorRef pingPongActor = actorSystem.actorOf(PingPongActor.props(lock).withMailbox(boundedMailBox), "pingpongactor"); @@ -59,11 +60,11 @@ public class MeteredBoundedMailboxTest { pingPongActor.tell("ping", mockReceiver.getRef()); } - mockReceiver.expectMsgClass(TEN_SEC, DeadLetter.class); + mockReceiver.expectMsgClass(TWENTY_SEC, DeadLetter.class); lock.unlock(); - Object[] eleven = mockReceiver.receiveN(11, TEN_SEC); + Object[] eleven = mockReceiver.receiveN(11, TWENTY_SEC); } /** @@ -89,8 +90,12 @@ public class MeteredBoundedMailboxTest { @Override public void onReceive(Object message) throws Exception { lock.lock(); - if ("ping".equals(message)) - getSender().tell("pong", getSelf()); + try { + if ("ping".equals(message)) + getSender().tell("pong", getSelf()); + } finally { + lock.unlock(); + } } } } \ No newline at end of file diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/resources/odl-datastore-test.yang b/opendaylight/md-sal/sal-clustering-commons/src/test/resources/odl-datastore-test.yang index e4eca7b717..246cc682cd 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/resources/odl-datastore-test.yang +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/resources/odl-datastore-test.yang @@ -11,6 +11,27 @@ module odl-datastore-test { } container test { + leaf my-bits { + type bits { + bit ten-mb-hd; + bit ten-mb-fd; + bit hundred-mb-hd; + bit hundred-mb-fd; + bit one-gb-hd; + bit one-gb-fd; + bit ten-gb-fd; + bit forty-gb-fd; + bit hundred-gb-fd; + bit one-tb-fd; + bit other; + bit copper; + bit fiber; + bit autoeng; + bit pause; + bit pause-asym; + } + } + leaf desc { type string; } diff --git a/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf b/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf index 0535179aad..05322137aa 100644 --- a/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf +++ b/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf @@ -1,5 +1,10 @@ odl-cluster-data { + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms + } akka { actor { provider = "akka.cluster.ClusterActorRefProvider" @@ -33,6 +38,11 @@ odl-cluster-data { } odl-cluster-rpc { + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms + } akka { actor { provider = "akka.cluster.ClusterActorRefProvider" diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 9c5129d6a4..31b0bb80c0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -138,7 +138,11 @@ com.codahale.metrics metrics-core - 3.0.1 + + + + com.codahale.metrics + metrics-graphite @@ -212,7 +216,11 @@ org.opendaylight.controller.* + + + org.opendaylight.controller.config.yang.config.* + false diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayload.java index 36c0447b6e..2e822f1d43 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayload.java @@ -13,7 +13,7 @@ import com.google.protobuf.GeneratedMessage; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.UnknownFieldSet; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import org.opendaylight.controller.protobuff.messages.persistent.PersistentMessages; import java.io.Serializable; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java index 51f3735f81..b971648392 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java @@ -67,9 +67,11 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener, Au Duration.create(dataStoreProperties.getShardTransactionIdleTimeoutInMinutes(), TimeUnit.MINUTES)); - actorContext = new ActorContext(actorSystem, actorSystem - .actorOf(ShardManager.props(type, cluster, configuration, shardContext), - shardManagerId ), cluster, configuration); + actorContext + = new ActorContext( + actorSystem, actorSystem.actorOf( + ShardManager.props(type, cluster, configuration, shardContext). + withMailbox(ActorContext.MAILBOX), shardManagerId ), cluster, configuration); } public DistributedDataStore(ActorContext actorContext) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java index c9b7c07e9a..186f2cff41 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java @@ -33,6 +33,7 @@ import org.opendaylight.controller.cluster.datastore.messages.PrimaryFound; import org.opendaylight.controller.cluster.datastore.messages.PrimaryNotFound; import org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorContext; import scala.concurrent.duration.Duration; import java.util.ArrayList; @@ -244,8 +245,9 @@ public class ShardManager extends AbstractUntypedActor { ShardIdentifier shardId = getShardIdentifier(memberName, shardName); Map peerAddresses = getPeerAddresses(shardName); ActorRef actor = getContext() - .actorOf(Shard.props(shardId, peerAddresses, shardContext), - shardId.toString()); + .actorOf(Shard.props(shardId, peerAddresses, shardContext). + withMailbox(ActorContext.MAILBOX), shardId.toString()); + localShardActorNames.add(shardId.toString()); localShards.put(shardName, new ShardInformation(shardName, actor, peerAddresses)); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java index f76430f5a1..818a8ca8b3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java @@ -52,6 +52,8 @@ public class ActorContext { public static final Duration AWAIT_DURATION = Duration.create(5, TimeUnit.SECONDS); + public static final String MAILBOX = "bounded-mailbox"; + private final ActorSystem actorSystem; private final ActorRef shardManager; private final ClusterWrapper clusterWrapper; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/resources/application.conf b/opendaylight/md-sal/sal-distributed-datastore/src/main/resources/application.conf index 8af9bd07d7..c29f93bb07 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/resources/application.conf +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/resources/application.conf @@ -1,5 +1,10 @@ odl-cluster-data { + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms + } akka { loggers = ["akka.event.slf4j.Slf4jLogger"] cluster { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayloadTest.java index 400eab1d8e..be43911fe1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/CompositeModificationPayloadTest.java @@ -8,7 +8,7 @@ import org.opendaylight.controller.cluster.datastore.modification.WriteModificat import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardManagerTest.java index e6f68c032a..d16e4f53de 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardManagerTest.java @@ -46,7 +46,7 @@ public class ShardManagerTest { final TestActorRef subject = TestActorRef.create(system, props); - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { @@ -71,7 +71,7 @@ public class ShardManagerTest { final TestActorRef subject = TestActorRef.create(system, props); - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { @@ -95,13 +95,13 @@ public class ShardManagerTest { final TestActorRef subject = TestActorRef.create(system, props); - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { subject.tell(new FindLocalShard("inventory"), getRef()); - final String out = new ExpectMsg(duration("1 seconds"), "find local") { + final String out = new ExpectMsg(duration("10 seconds"), "find local") { @Override protected String match(Object in) { if (in instanceof LocalShardNotFound) { @@ -132,13 +132,13 @@ public class ShardManagerTest { final TestActorRef subject = TestActorRef.create(system, props); - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { subject.tell(new FindLocalShard(Shard.DEFAULT_NAME), getRef()); - final ActorRef out = new ExpectMsg(duration("1 seconds"), "find local") { + final ActorRef out = new ExpectMsg(duration("10 seconds"), "find local") { @Override protected ActorRef match(Object in) { if (in instanceof LocalShardFound) { @@ -169,7 +169,7 @@ public class ShardManagerTest { TestActorRef.create(system, props); // the run() method needs to finish within 3 seconds - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { @@ -209,7 +209,7 @@ public class ShardManagerTest { TestActorRef.create(system, props); // the run() method needs to finish within 3 seconds - new Within(duration("1 seconds")) { + new Within(duration("10 seconds")) { @Override protected void run() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java index 127f9f55f8..8a6534b87e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java @@ -20,11 +20,14 @@ import com.google.common.util.concurrent.MoreExecutors; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; +import org.opendaylight.controller.cluster.datastore.node.utils.serialization.NormalizedNodeSerializer; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore; import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionMessages; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import scala.concurrent.Await; @@ -176,7 +179,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest { .setInstanceIdentifierPathArguments( NormalizedNodeMessages.InstanceIdentifier.newBuilder() .build()).setNormalizedNode( - NormalizedNodeMessages.Node.newBuilder().build() + buildNormalizedNode() ).build(); @@ -208,15 +211,20 @@ public class ShardTransactionFailureTest extends AbstractActorTest { ShardTransactionMessages.WriteData.newBuilder() .setInstanceIdentifierPathArguments( NormalizedNodeMessages.InstanceIdentifier.newBuilder() - .build()).setNormalizedNode( - NormalizedNodeMessages.Node.newBuilder().build() - - ).build(); + .build() + ) + .setNormalizedNode(buildNormalizedNode()) + .build(); future = akka.pattern.Patterns.ask(subject, writeData, 3000); Await.result(future, Duration.create(3, TimeUnit.SECONDS)); } + private NormalizedNodeMessages.Node buildNormalizedNode() { + return NormalizedNodeSerializer + .serialize(Builders.containerBuilder().withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME)).build()); + } + @Test(expected = IllegalStateException.class) public void testNegativeMergeTransactionReady() throws Exception { @@ -241,7 +249,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest { .setInstanceIdentifierPathArguments( NormalizedNodeMessages.InstanceIdentifier.newBuilder() .build()).setNormalizedNode( - NormalizedNodeMessages.Node.newBuilder().build() + buildNormalizedNode() ).build(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/resources/application.conf b/opendaylight/md-sal/sal-distributed-datastore/src/test/resources/application.conf index 27b0374bac..6851b1b72c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/resources/application.conf +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/resources/application.conf @@ -14,3 +14,8 @@ akka { } } } +bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms +} diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 4e007f4c5d..08450b3e78 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -81,37 +81,27 @@ org.opendaylight.yangtools yang-data-api - org.opendaylight.yangtools yang-model-api - - org.opendaylight.yangtools yang-data-impl - - org.opendaylight.yangtools yang-common - - - org.osgi org.osgi.core - org.slf4j slf4j-api - org.scala-lang scala-library @@ -120,8 +110,12 @@ com.codahale.metrics metrics-core - 3.0.1 + + + com.codahale.metrics + metrics-graphite + junit @@ -156,6 +150,34 @@ + + org.jacoco + jacoco-maven-plugin + + + org.opendaylight.controller.* + + + org.opendaylight.controller.config.yang.config.* + + false + + + + pre-test + + prepare-agent + + + + post-test + + report + + test + + + org.apache.felix diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcManager.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcManager.java index 96f2472428..d4da226b9d 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcManager.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcManager.java @@ -15,8 +15,11 @@ import akka.actor.Props; import akka.actor.SupervisorStrategy; import akka.japi.Creator; import akka.japi.Function; +import com.typesafe.config.Config; +import com.typesafe.config.ConfigFactory; import org.opendaylight.controller.remote.rpc.messages.UpdateSchemaContext; import org.opendaylight.controller.remote.rpc.registry.RpcRegistry; +import org.opendaylight.controller.remote.rpc.utils.ActorUtil; import org.opendaylight.controller.sal.core.api.Broker; import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; import org.opendaylight.yangtools.yang.common.QName; @@ -69,10 +72,16 @@ public class RpcManager extends AbstractUntypedActor { private void createRpcActors() { LOG.debug("Create rpc registry and broker actors"); + Config conf = ConfigFactory.load(); - rpcRegistry = getContext().actorOf(Props.create(RpcRegistry.class), ActorConstants.RPC_REGISTRY); + rpcRegistry = + getContext().actorOf(Props.create(RpcRegistry.class). + withMailbox(ActorUtil.MAILBOX), ActorConstants.RPC_REGISTRY); + + rpcBroker = + getContext().actorOf(RpcBroker.props(brokerSession, rpcRegistry, schemaContext). + withMailbox(ActorUtil.MAILBOX),ActorConstants.RPC_BROKER); - rpcBroker = getContext().actorOf(RpcBroker.props(brokerSession, rpcRegistry, schemaContext), ActorConstants.RPC_BROKER); RpcRegistry.Messages.SetLocalRouter localRouter = new RpcRegistry.Messages.SetLocalRouter(rpcBroker); rpcRegistry.tell(localRouter, self()); } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java index 76f5930457..5109d31644 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java @@ -20,6 +20,7 @@ import akka.pattern.Patterns; import com.google.common.base.Preconditions; import org.opendaylight.controller.remote.rpc.registry.gossip.Bucket; import org.opendaylight.controller.remote.rpc.registry.gossip.BucketStore; +import org.opendaylight.controller.remote.rpc.utils.ActorUtil; import org.opendaylight.controller.sal.connector.api.RpcRouter; import scala.concurrent.Future; @@ -107,7 +108,7 @@ public class RpcRegistry extends UntypedActor { Preconditions.checkState(localRouter != null, "Router must be set first"); - Future futureReply = Patterns.ask(bucketStore, new GetLocalBucket(), 1000); + Future futureReply = Patterns.ask(bucketStore, new GetLocalBucket(), ActorUtil.ASK_DURATION.toMillis()); futureReply.map(getMapperToAddRoutes(msg.getRouteIdentifiers()), getContext().dispatcher()); } @@ -116,7 +117,7 @@ public class RpcRegistry extends UntypedActor { */ private void receiveRemoveRoutes(RemoveRoutes msg) { - Future futureReply = Patterns.ask(bucketStore, new GetLocalBucket(), 1000); + Future futureReply = Patterns.ask(bucketStore, new GetLocalBucket(), ActorUtil.ASK_DURATION.toMillis()); futureReply.map(getMapperToRemoveRoutes(msg.getRouteIdentifiers()), getContext().dispatcher()); } @@ -129,7 +130,7 @@ public class RpcRegistry extends UntypedActor { private void receiveGetRouter(FindRouters msg) { final ActorRef sender = getSender(); - Future futureReply = Patterns.ask(bucketStore, new GetAllBuckets(), 1000); + Future futureReply = Patterns.ask(bucketStore, new GetAllBuckets(), ActorUtil.ASK_DURATION.toMillis()); futureReply.map(getMapperToGetRouter(msg.getRouteIdentifier(), sender), getContext().dispatcher()); } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStore.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStore.java index 3b078aa062..ff51f4fcfa 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStore.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStore.java @@ -16,6 +16,7 @@ import akka.actor.UntypedActor; import akka.cluster.ClusterActorRefProvider; import akka.event.Logging; import akka.event.LoggingAdapter; +import org.opendaylight.controller.remote.rpc.utils.ActorUtil; import org.opendaylight.controller.utils.ConditionalProbe; import java.util.HashMap; @@ -76,7 +77,7 @@ public class BucketStore extends UntypedActor { selfAddress = provider.getDefaultAddress(); if ( provider instanceof ClusterActorRefProvider) - getContext().actorOf(Props.create(Gossiper.class), "gossiper"); + getContext().actorOf(Props.create(Gossiper.class).withMailbox(ActorUtil.MAILBOX), "gossiper"); } @Override diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Gossiper.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Gossiper.java index a8bc25c40b..f6ce5e55f3 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Gossiper.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Gossiper.java @@ -21,6 +21,7 @@ import akka.dispatch.Mapper; import akka.event.Logging; import akka.event.LoggingAdapter; import akka.pattern.Patterns; +import org.opendaylight.controller.remote.rpc.utils.ActorUtil; import scala.concurrent.Future; import scala.concurrent.duration.FiniteDuration; @@ -105,7 +106,7 @@ public class Gossiper extends UntypedActor { if (autoStartGossipTicks) { gossipTask = getContext().system().scheduler().schedule( new FiniteDuration(1, TimeUnit.SECONDS), //initial delay - new FiniteDuration(500, TimeUnit.MILLISECONDS), //interval + ActorUtil.GOSSIP_TICK_INTERVAL, //interval getSelf(), //target new Messages.GossiperMessages.GossipTick(), //message getContext().dispatcher(), //execution context @@ -227,7 +228,9 @@ public class Gossiper extends UntypedActor { return; final ActorRef sender = getSender(); - Future futureReply = Patterns.ask(getContext().parent(), new GetBucketVersions(), 1000); + Future futureReply = + Patterns.ask(getContext().parent(), new GetBucketVersions(), ActorUtil.ASK_DURATION.toMillis()); + futureReply.map(getMapperToProcessRemoteStatus(sender, status), getContext().dispatcher()); } @@ -267,7 +270,8 @@ public class Gossiper extends UntypedActor { */ void sendGossipTo(final ActorRef remote, final Set
addresses){ - Future futureReply = Patterns.ask(getContext().parent(), new GetBucketsByMembers(addresses), 1000); + Future futureReply = + Patterns.ask(getContext().parent(), new GetBucketsByMembers(addresses), ActorUtil.ASK_DURATION.toMillis()); futureReply.map(getMapperToSendGossip(remote), getContext().dispatcher()); } @@ -279,7 +283,10 @@ public class Gossiper extends UntypedActor { void getLocalStatusAndSendTo(Address remoteActorSystemAddress){ //Get local status from bucket store and send to remote - Future futureReply = Patterns.ask(getContext().parent(), new GetBucketVersions(), 1000); + Future futureReply = + Patterns.ask(getContext().parent(), new GetBucketVersions(), ActorUtil.ASK_DURATION.toMillis()); + + //Find gossiper on remote system ActorSelection remoteRef = getContext().system().actorSelection( remoteActorSystemAddress.toString() + getSelf().path().toStringWithoutAddress()); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/ActorUtil.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/ActorUtil.java index b7b2216a08..ca14fecb4c 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/ActorUtil.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/ActorUtil.java @@ -20,28 +20,32 @@ import java.util.concurrent.TimeUnit; import static akka.pattern.Patterns.ask; public class ActorUtil { - public static final FiniteDuration LOCAL_ASK_DURATION = Duration.create(2, TimeUnit.SECONDS); - public static final FiniteDuration REMOTE_ASK_DURATION = Duration.create(15, TimeUnit.SECONDS); - public static final FiniteDuration ASK_DURATION = Duration.create(17, TimeUnit.SECONDS); - public static final FiniteDuration LOCAL_AWAIT_DURATION = Duration.create(2, TimeUnit.SECONDS); - public static final FiniteDuration REMOTE_AWAIT_DURATION = Duration.create(15, TimeUnit.SECONDS); - public static final FiniteDuration AWAIT_DURATION = Duration.create(17, TimeUnit.SECONDS); - - /** - * Executes an operation on a local actor and wait for it's response - * @param actor - * @param message - * @param askDuration - * @param awaitDuration - * @return The response of the operation - */ - public static Object executeOperation(ActorRef actor, Object message, - FiniteDuration askDuration, FiniteDuration awaitDuration) throws Exception{ - Future future = - ask(actor, message, new Timeout(askDuration)); - - return Await.result(future, awaitDuration); - } + public static final FiniteDuration LOCAL_ASK_DURATION = Duration.create(2, TimeUnit.SECONDS); + public static final FiniteDuration REMOTE_ASK_DURATION = Duration.create(15, TimeUnit.SECONDS); + public static final FiniteDuration ASK_DURATION = Duration.create(17, TimeUnit.SECONDS); + public static final FiniteDuration LOCAL_AWAIT_DURATION = Duration.create(2, TimeUnit.SECONDS); + public static final FiniteDuration REMOTE_AWAIT_DURATION = Duration.create(15, TimeUnit.SECONDS); + public static final FiniteDuration AWAIT_DURATION = Duration.create(17, TimeUnit.SECONDS); + public static final FiniteDuration GOSSIP_TICK_INTERVAL = Duration.create(500, TimeUnit.MILLISECONDS); + public static final String MAILBOX = "bounded-mailbox"; + + + /** + * Executes an operation on a local actor and wait for it's response + * + * @param actor + * @param message + * @param askDuration + * @param awaitDuration + * @return The response of the operation + */ + public static Object executeOperation(ActorRef actor, Object message, + FiniteDuration askDuration, FiniteDuration awaitDuration) throws Exception { + Future future = + ask(actor, message, new Timeout(askDuration)); + + return Await.result(future, awaitDuration); + } } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/resources/application.conf b/opendaylight/md-sal/sal-remoterpc-connector/src/main/resources/application.conf index 711ae1c48b..266832a0ab 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/resources/application.conf +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/resources/application.conf @@ -38,10 +38,15 @@ odl-cluster-data { } odl-cluster-rpc { + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms + } + akka { actor { provider = "akka.cluster.ClusterActorRefProvider" - } remote { log-remote-lifecycle-events = off diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteRpcProviderTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteRpcProviderTest.java index 17ad237ad7..8a7e4a0398 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteRpcProviderTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteRpcProviderTest.java @@ -14,8 +14,8 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.testkit.JavaTestKit; import com.typesafe.config.ConfigFactory; -import junit.framework.Assert; import org.junit.AfterClass; +import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.controller.sal.core.api.Broker; @@ -25,7 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import scala.concurrent.Await; import scala.concurrent.duration.Duration; - import java.util.concurrent.TimeUnit; import static org.mockito.Mockito.mock; @@ -38,7 +37,7 @@ public class RemoteRpcProviderTest { @BeforeClass public static void setup() throws InterruptedException { - system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster")); + system = ActorSystem.create("odl-cluster-rpc", ConfigFactory.load().getConfig("odl-cluster-rpc")); } @AfterClass @@ -59,7 +58,4 @@ public class RemoteRpcProviderTest { Duration.create(2, TimeUnit.SECONDS)); Assert.assertTrue(actorRef.path().toString().contains(ActorConstants.RPC_MANAGER_PATH)); } - - - } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RouteRpcListenerTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RouteRpcListenerTest.java index 9b6215addd..98a33bf4e6 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RouteRpcListenerTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RouteRpcListenerTest.java @@ -32,7 +32,7 @@ public class RouteRpcListenerTest { @BeforeClass public static void setup() throws InterruptedException { - system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster")); + system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster-rpc")); } @AfterClass diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcListenerTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcListenerTest.java index 7b5a968866..956e159990 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcListenerTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcListenerTest.java @@ -28,7 +28,7 @@ public class RpcListenerTest { @BeforeClass public static void setup() throws InterruptedException { - system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster")); + system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster-rpc")); } @AfterClass diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java index e6793741a3..83f52930b2 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java @@ -10,10 +10,8 @@ import akka.actor.Props; import akka.testkit.JavaTestKit; import com.google.common.base.Predicate; import com.typesafe.config.ConfigFactory; - import org.junit.After; import org.junit.AfterClass; -import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -22,8 +20,6 @@ import org.opendaylight.controller.remote.rpc.registry.gossip.Messages; import org.opendaylight.controller.sal.connector.api.RpcRouter; import org.opendaylight.controller.utils.ConditionalProbe; import org.opendaylight.yangtools.yang.common.QName; -import scala.concurrent.Await; -import scala.concurrent.Future; import scala.concurrent.duration.FiniteDuration; import javax.annotation.Nullable; @@ -33,9 +29,9 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; -import static org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.SetLocalRouter; import static org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.AddOrUpdateRoutes; import static org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.RemoveRoutes; +import static org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.SetLocalRouter; public class RpcRegistryTest { @@ -95,7 +91,6 @@ public class RpcRegistryTest { */ @Test public void testAddRemoveRpcOnSameNode() throws URISyntaxException, InterruptedException { - validateSystemStartup(); final JavaTestKit mockBroker = new JavaTestKit(node1); @@ -137,8 +132,6 @@ public class RpcRegistryTest { @Test public void testRpcAddRemoveInCluster() throws URISyntaxException, InterruptedException { - validateSystemStartup(); - final JavaTestKit mockBroker1 = new JavaTestKit(node1); //install probe on node2's bucket store @@ -146,7 +139,6 @@ public class RpcRegistryTest { final JavaTestKit probe2 = createProbeForMessage( node2, bucketStorePath, Messages.BucketStoreMessages.UpdateRemoteBuckets.class); - //Add rpc on node 1 registry1.tell(new SetLocalRouter(mockBroker1.getRef()), mockBroker1.getRef()); registry1.tell(getAddRouteMessage(), mockBroker1.getRef()); @@ -175,8 +167,6 @@ public class RpcRegistryTest { @Test public void testRpcAddedOnMultiNodes() throws Exception { - validateSystemStartup(); - final JavaTestKit mockBroker1 = new JavaTestKit(node1); final JavaTestKit mockBroker2 = new JavaTestKit(node2); final JavaTestKit mockBroker3 = new JavaTestKit(node3); @@ -225,49 +215,6 @@ public class RpcRegistryTest { } - private void validateSystemStartup() throws InterruptedException { - - ActorPath gossiper1Path = new ChildActorPath(new ChildActorPath(registry1.path(), "store"), "gossiper"); - ActorPath gossiper2Path = new ChildActorPath(new ChildActorPath(registry2.path(), "store"), "gossiper"); - ActorPath gossiper3Path = new ChildActorPath(new ChildActorPath(registry3.path(), "store"), "gossiper"); - - ActorSelection gossiper1 = node1.actorSelection(gossiper1Path); - ActorSelection gossiper2 = node2.actorSelection(gossiper2Path); - ActorSelection gossiper3 = node3.actorSelection(gossiper3Path); - - - if (!resolveReference(gossiper1, gossiper2, gossiper3)) - Assert.fail("Could not find gossipers"); - } - - private Boolean resolveReference(ActorSelection... gossipers) { - - Boolean resolved = true; - for (int i = 0; i < 5; i++) { - - resolved = true; - System.out.println(System.currentTimeMillis() + " Resolving gossipers; trial #" + i); - - for (ActorSelection gossiper : gossipers) { - ActorRef ref = null; - - try { - Future future = gossiper.resolveOne(new FiniteDuration(15000, TimeUnit.MILLISECONDS)); - ref = Await.result(future, new FiniteDuration(10000, TimeUnit.MILLISECONDS)); - } catch (Exception e) { - System.out.println("Could not find gossiper in attempt#" + i + ". Got exception " + e.getMessage()); - } - - if (ref == null) - resolved = false; - } - - if (resolved) break; - - } - return resolved; - } - private AddOrUpdateRoutes getAddRouteMessage() throws URISyntaxException { return new AddOrUpdateRoutes(createRouteIds()); } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/utils/LatestEntryRoutingLogicTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/utils/LatestEntryRoutingLogicTest.java index b21f0f0069..cd031a1d0a 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/utils/LatestEntryRoutingLogicTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/utils/LatestEntryRoutingLogicTest.java @@ -30,7 +30,7 @@ public class LatestEntryRoutingLogicTest { @BeforeClass public static void setup() throws InterruptedException { - system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster")); + system = ActorSystem.create("opendaylight-rpc", ConfigFactory.load().getConfig("odl-cluster-rpc")); } @AfterClass diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/resources/application.conf b/opendaylight/md-sal/sal-remoterpc-connector/src/test/resources/application.conf index 8100ed35ab..5c4af8d3da 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/resources/application.conf +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/resources/application.conf @@ -1,6 +1,12 @@ -odl-cluster{ +odl-cluster-rpc{ + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 10ms + } + akka { - loglevel = "DEBUG" + loglevel = "INFO" #log-config-on-start = on actor { @@ -34,12 +40,22 @@ unit-test{ loglevel = "INFO" #loggers = ["akka.event.slf4j.Slf4jLogger"] } + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 10ms + } } memberA{ + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 10ms + } akka { loglevel = "INFO" - loggers = ["akka.event.slf4j.Slf4jLogger"] + #loggers = ["akka.event.slf4j.Slf4jLogger"] actor { provider = "akka.cluster.ClusterActorRefProvider" debug { @@ -65,11 +81,20 @@ memberA{ } } memberB{ + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 10ms + } akka { loglevel = "INFO" - loggers = ["akka.event.slf4j.Slf4jLogger"] + #loggers = ["akka.event.slf4j.Slf4jLogger"] + actor { provider = "akka.cluster.ClusterActorRefProvider" + debug { + #lifecycle = on + } } remote { log-received-messages = off @@ -90,11 +115,19 @@ memberB{ } } memberC{ + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 10ms + } akka { loglevel = "INFO" - loggers = ["akka.event.slf4j.Slf4jLogger"] + #loggers = ["akka.event.slf4j.Slf4jLogger"] actor { provider = "akka.cluster.ClusterActorRefProvider" + debug { + #lifecycle = on + } } remote { log-received-messages = off @@ -113,4 +146,5 @@ memberC{ auto-down-unreachable-after = 10s } } -} \ No newline at end of file +} + diff --git a/opendaylight/md-sal/sal-rest-connector/pom.xml b/opendaylight/md-sal/sal-rest-connector/pom.xml index e61cafa70b..fe5c9f39d8 100644 --- a/opendaylight/md-sal/sal-rest-connector/pom.xml +++ b/opendaylight/md-sal/sal-rest-connector/pom.xml @@ -87,6 +87,19 @@ jaxrs-api provided + + org.opendaylight.controller + sal-core-spi + + + org.opendaylight.yangtools + yang-data-composite-node + + + org.opendaylight.yangtools + yang-data-codec-gson + + ch.qos.logback logback-classic @@ -109,15 +122,6 @@ mockito-all test - - org.opendaylight.controller - sal-core-spi - - - org.opendaylight.yangtools - yang-data-composite-node - 0.6.2-SNAPSHOT - diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfConstants.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfConstants.java new file mode 100644 index 0000000000..1ec1c29eab --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfConstants.java @@ -0,0 +1,7 @@ +package org.opendaylight.controller.sal.rest.api; + +public interface RestconfConstants { + + + public static String IDENTIFIER = "identifier"; +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfService.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfService.java index 9c149a21e6..4a46a3c267 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfService.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/api/RestconfService.java @@ -21,10 +21,12 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.controller.sal.restconf.impl.StructuredData; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.Node; + /** * The URI hierarchy for the RESTCONF resources consists of an entry point container, 4 top-level resources, and 1 * field. @@ -109,14 +111,14 @@ public interface RestconfService { @Path("/config/{identifier:.+}") @Produces({ Draft02.MediaTypes.DATA + JSON, Draft02.MediaTypes.DATA + XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML }) - public StructuredData readConfigurationData(@Encoded @PathParam("identifier") String identifier, + public NormalizedNodeContext readConfigurationData(@Encoded @PathParam("identifier") String identifier, @Context UriInfo uriInfo); @GET @Path("/operational/{identifier:.+}") @Produces({ Draft02.MediaTypes.DATA + JSON, Draft02.MediaTypes.DATA + XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML }) - public StructuredData readOperationalData(@Encoded @PathParam("identifier") String identifier, + public NormalizedNodeContext readOperationalData(@Encoded @PathParam("identifier") String identifier, @Context UriInfo uriInfo); @PUT diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/AbstractIdentifierAwareJaxRsProvider.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/AbstractIdentifierAwareJaxRsProvider.java new file mode 100644 index 0000000000..978ae0d9c5 --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/AbstractIdentifierAwareJaxRsProvider.java @@ -0,0 +1,30 @@ +package org.opendaylight.controller.sal.rest.impl; + +import com.google.common.base.Optional; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.UriInfo; +import org.opendaylight.controller.sal.rest.api.RestconfConstants; +import org.opendaylight.controller.sal.restconf.impl.ControllerContext; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; + +public class AbstractIdentifierAwareJaxRsProvider { + + @Context + private UriInfo uriInfo; + + protected final String getIdentifier() { + return uriInfo.getPathParameters().getFirst(RestconfConstants.IDENTIFIER); + } + + protected final Optional getIdentifierWithSchema() { + return Optional.of(getInstanceIdentifierContext()); + } + + protected InstanceIdentifierContext getInstanceIdentifierContext() { + return ControllerContext.getInstance().toInstanceIdentifier(getIdentifier()); + } + + protected UriInfo getUriInfo() { + return uriInfo; + } +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonNormalizedNodeBodyReader.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonNormalizedNodeBodyReader.java new file mode 100644 index 0000000000..dc989d2786 --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonNormalizedNodeBodyReader.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.rest.impl; + +import com.google.common.base.Optional; +import com.google.gson.stream.JsonReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import javax.ws.rs.Consumes; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.ext.MessageBodyReader; +import javax.ws.rs.ext.Provider; +import org.opendaylight.controller.sal.rest.api.Draft02; +import org.opendaylight.controller.sal.rest.api.RestconfService; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; +import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; +import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag; +import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Provider +@Consumes({ Draft02.MediaTypes.DATA + RestconfService.JSON, Draft02.MediaTypes.OPERATION + RestconfService.JSON, + MediaType.APPLICATION_JSON }) +public class JsonNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsProvider implements MessageBodyReader { + + private final static Logger LOG = LoggerFactory.getLogger(JsonNormalizedNodeBodyReader.class); + + @Override + public boolean isReadable(final Class type, final Type genericType, final Annotation[] annotations, + final MediaType mediaType) { + return true; + } + + @Override + public NormalizedNodeContext readFrom(final Class type, final Type genericType, + final Annotation[] annotations, final MediaType mediaType, + final MultivaluedMap httpHeaders, final InputStream entityStream) throws IOException, + WebApplicationException { + try { + Optional path = getIdentifierWithSchema(); + NormalizedNodeResult resultHolder = new NormalizedNodeResult(); + NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder); + JsonParserStream jsonParser = JsonParserStream.create(writer, path.get().getSchemaContext()); + JsonReader reader = new JsonReader(new InputStreamReader(entityStream)); + jsonParser.parse(reader); + return new NormalizedNodeContext(path.get(),resultHolder.getResult()); + } catch (Exception e) { + LOG.debug("Error parsing json input", e); + + throw new RestconfDocumentedException("Error parsing input: " + e.getMessage(), ErrorType.PROTOCOL, + ErrorTag.MALFORMED_MESSAGE); + } + } +} + diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java new file mode 100644 index 0000000000..cebd3268ce --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.rest.impl; + +import com.google.common.base.Charsets; +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.MessageBodyWriter; +import javax.ws.rs.ext.Provider; +import org.opendaylight.controller.sal.rest.api.Draft02; +import org.opendaylight.controller.sal.rest.api.RestconfService; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; +import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; +import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter; + +@Provider +@Produces({ Draft02.MediaTypes.API + RestconfService.JSON, Draft02.MediaTypes.DATA + RestconfService.JSON, + Draft02.MediaTypes.OPERATION + RestconfService.JSON, MediaType.APPLICATION_JSON }) +public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter { + + @Override + public boolean isWriteable(final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { + return type.equals(NormalizedNodeContext.class); + } + + @Override + public long getSize(final NormalizedNodeContext t, final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { + return -1; + } + + @Override + public void writeTo(final NormalizedNodeContext t, final Class type, final Type genericType, final Annotation[] annotations, + final MediaType mediaType, final MultivaluedMap httpHeaders, final OutputStream entityStream) + throws IOException, WebApplicationException { + if (t.getData() == null) { + throw new RestconfDocumentedException(Response.Status.NOT_FOUND); + } + + InstanceIdentifierContext pathContext = t.getInstanceIdentifierContext(); + OutputStreamWriter ouWriter = new OutputStreamWriter(entityStream, Charsets.UTF_8); + NormalizedNodeStreamWriter jsonWriter = JSONNormalizedNodeStreamWriter.create(pathContext.getSchemaContext(),ouWriter); + NormalizedNodeWriter nnWriter = NormalizedNodeWriter.forStreamWriter(jsonWriter); + + nnWriter.write(t.getData()); + nnWriter.flush(); + } +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeXmlBodyWriter.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeXmlBodyWriter.java new file mode 100644 index 0000000000..ef12f93fa4 --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeXmlBodyWriter.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.rest.impl; + +import java.io.IOException; +import java.io.OutputStream; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.MessageBodyWriter; +import javax.ws.rs.ext.Provider; +import javax.xml.stream.FactoryConfigurationError; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; +import org.opendaylight.controller.sal.rest.api.Draft02; +import org.opendaylight.controller.sal.rest.api.RestconfService; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; +import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; +import org.opendaylight.yangtools.yang.data.impl.codec.xml.XMLStreamNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; + +@Provider +@Produces({ Draft02.MediaTypes.API + RestconfService.XML, Draft02.MediaTypes.DATA + RestconfService.XML, + Draft02.MediaTypes.OPERATION + RestconfService.XML, MediaType.APPLICATION_XML, MediaType.TEXT_XML }) + +public class NormalizedNodeXmlBodyWriter implements MessageBodyWriter { + + + private static final XMLOutputFactory XML_FACTORY; + + static { + XML_FACTORY = XMLOutputFactory.newFactory(); + XML_FACTORY.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); + } + + + @Override + public boolean isWriteable(final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { + return type.equals(NormalizedNodeContext.class); + } + + @Override + public long getSize(final NormalizedNodeContext t, final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { + return -1; + } + + @Override + public void writeTo(final NormalizedNodeContext t, final Class type, final Type genericType, final Annotation[] annotations, + final MediaType mediaType, final MultivaluedMap httpHeaders, final OutputStream entityStream) + throws IOException, WebApplicationException { + InstanceIdentifierContext pathContext = t.getInstanceIdentifierContext(); + if (t.getData() == null) { + throw new RestconfDocumentedException(Response.Status.NOT_FOUND); + } + + XMLStreamWriter xmlWriter; + try { + xmlWriter = XML_FACTORY.createXMLStreamWriter(entityStream); + } catch (XMLStreamException e) { + throw new IllegalStateException(e); + } catch (FactoryConfigurationError e) { + throw new IllegalStateException(e); + } + NormalizedNode data = t.getData(); + SchemaPath schemaPath = pathContext.getSchemaNode().getPath().getParent(); + if(data instanceof MapEntryNode) { + data = ImmutableNodes.mapNodeBuilder(data.getNodeType()).addChild((MapEntryNode) data).build(); + //schemaPath = pathContext.getSchemaNode().getPath(); + } + + NormalizedNodeStreamWriter jsonWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter,pathContext.getSchemaContext(),schemaPath); + NormalizedNodeWriter nnWriter = NormalizedNodeWriter.forStreamWriter(jsonWriter); + + nnWriter.write(data); + nnWriter.flush(); + } +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfApplication.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfApplication.java index b4b2a1f9ef..a298f4b093 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfApplication.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfApplication.java @@ -19,7 +19,13 @@ public class RestconfApplication extends Application { @Override public Set> getClasses() { - return ImmutableSet.> of(RestconfDocumentedExceptionMapper.class); + return ImmutableSet.> builder() + .add(RestconfDocumentedExceptionMapper.class) + .add(XmlNormalizedNodeBodyReader.class) + .add(JsonNormalizedNodeBodyReader.class) + .add(NormalizedNodeJsonBodyWriter.class) + .add(NormalizedNodeXmlBodyWriter.class) + .build(); } @Override @@ -33,10 +39,10 @@ public class RestconfApplication extends Application { singletons.add(controllerContext); singletons.add(brokerFacade); singletons.add(restconfImpl); - singletons.add(XmlToCompositeNodeProvider.INSTANCE); singletons.add(StructuredDataToXmlProvider.INSTANCE); - singletons.add(JsonToCompositeNodeProvider.INSTANCE); singletons.add(StructuredDataToJsonProvider.INSTANCE); + singletons.add(JsonToCompositeNodeProvider.INSTANCE); + singletons.add(XmlToCompositeNodeProvider.INSTANCE); return singletons; } diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/StructuredDataToJsonProvider.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/StructuredDataToJsonProvider.java index 933ed0f849..063d2f51af 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/StructuredDataToJsonProvider.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/StructuredDataToJsonProvider.java @@ -30,27 +30,24 @@ import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @Provider @Produces({ Draft02.MediaTypes.API + RestconfService.JSON, Draft02.MediaTypes.DATA + RestconfService.JSON, - Draft02.MediaTypes.OPERATION + RestconfService.JSON, MediaType.APPLICATION_JSON }) + Draft02.MediaTypes.OPERATION + RestconfService.JSON, MediaType.APPLICATION_JSON }) public enum StructuredDataToJsonProvider implements MessageBodyWriter { INSTANCE; @Override - public boolean isWriteable(final Class type, final Type genericType, final Annotation[] annotations, - final MediaType mediaType) { + public boolean isWriteable(final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { return type.equals(StructuredData.class); } @Override - public long getSize(final StructuredData t, final Class type, final Type genericType, - final Annotation[] annotations, final MediaType mediaType) { + public long getSize(final StructuredData t, final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { return -1; } @Override - public void writeTo(final StructuredData t, final Class type, final Type genericType, - final Annotation[] annotations, final MediaType mediaType, - final MultivaluedMap httpHeaders, final OutputStream entityStream) throws IOException, - WebApplicationException { + public void writeTo(final StructuredData t, final Class type, final Type genericType, final Annotation[] annotations, + final MediaType mediaType, final MultivaluedMap httpHeaders, final OutputStream entityStream) + throws IOException, WebApplicationException { CompositeNode data = t.getData(); if (data == null) { throw new RestconfDocumentedException(Response.Status.NOT_FOUND); diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlNormalizedNodeBodyReader.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlNormalizedNodeBodyReader.java new file mode 100644 index 0000000000..062a4488f3 --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlNormalizedNodeBodyReader.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.rest.impl; + +import com.google.common.base.Optional; +import java.io.IOException; +import java.io.InputStream; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import java.util.Collections; +import java.util.List; +import javax.ws.rs.Consumes; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.ext.MessageBodyReader; +import javax.ws.rs.ext.Provider; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import org.opendaylight.controller.sal.rest.api.Draft02; +import org.opendaylight.controller.sal.rest.api.RestconfService; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; +import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; +import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag; +import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlUtils; +import org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser.DomToNormalizedNodeParserFactory; +import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +@Provider +@Consumes({ Draft02.MediaTypes.DATA + RestconfService.XML, Draft02.MediaTypes.OPERATION + RestconfService.XML, + MediaType.APPLICATION_XML, MediaType.TEXT_XML }) +public class XmlNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsProvider implements MessageBodyReader { + + private final static Logger LOG = LoggerFactory.getLogger(XmlNormalizedNodeBodyReader.class); + private final static DomToNormalizedNodeParserFactory DOM_PARSER_FACTORY = DomToNormalizedNodeParserFactory.getInstance(XmlUtils.DEFAULT_XML_CODEC_PROVIDER); + private static final DocumentBuilderFactory BUILDERFACTORY; + + static { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + factory.setCoalescing(true); + factory.setIgnoringElementContentWhitespace(true); + factory.setIgnoringComments(true); + BUILDERFACTORY = factory; + } + + @Override + public boolean isReadable(final Class type, final Type genericType, final Annotation[] annotations, + final MediaType mediaType) { + return true; + } + + @Override + public NormalizedNodeContext readFrom(final Class type, final Type genericType, + final Annotation[] annotations, final MediaType mediaType, + final MultivaluedMap httpHeaders, final InputStream entityStream) throws IOException, + WebApplicationException { + try { + Optional path = getIdentifierWithSchema(); + + final DocumentBuilder dBuilder; + try { + dBuilder = BUILDERFACTORY.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw new RuntimeException("Failed to parse XML document", e); + } + Document doc = dBuilder.parse(entityStream); + + NormalizedNode result = parse(path.get(),doc); + return new NormalizedNodeContext(path.get(),result); + } catch (Exception e) { + LOG.debug("Error parsing json input", e); + + throw new RestconfDocumentedException("Error parsing input: " + e.getMessage(), ErrorType.PROTOCOL, + ErrorTag.MALFORMED_MESSAGE); + } + } + + private static NormalizedNode parse(InstanceIdentifierContext pathContext,Document doc) { + List elements = Collections.singletonList(doc.getDocumentElement()); + DataSchemaNode schemaNode = pathContext.getSchemaNode(); + if(schemaNode instanceof ContainerSchemaNode) { + return DOM_PARSER_FACTORY.getContainerNodeParser().parse(Collections.singletonList(doc.getDocumentElement()), (ContainerSchemaNode) schemaNode); + } else if(schemaNode instanceof ListSchemaNode) { + ListSchemaNode casted = (ListSchemaNode) schemaNode; + return DOM_PARSER_FACTORY.getMapEntryNodeParser().parse(elements, casted); + } + return null; + } +} + diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java index 5944d6003e..6b9da80c68 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java @@ -28,6 +28,7 @@ import org.opendaylight.controller.sal.restconf.impl.NodeWrapper; import org.opendaylight.controller.sal.restconf.impl.SimpleNodeWrapper; import org.opendaylight.yangtools.yang.data.api.Node; +@Deprecated public class XmlToCompositeNodeReader { private final static XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); @@ -45,7 +46,6 @@ public class XmlToCompositeNodeReader { } eventReader = xmlInputFactory.createXMLEventReader(entityStream); - if (eventReader.hasNext()) { XMLEvent element = eventReader.peek(); if (element.isStartDocument()) { @@ -110,7 +110,7 @@ public class XmlToCompositeNodeReader { return entityStream; } - private boolean isInputStreamEmpty(InputStream entityStream) throws IOException { + private boolean isInputStreamEmpty(final InputStream entityStream) throws IOException { boolean isEmpty = false; entityStream.mark(1); if (entityStream.read() == -1) { @@ -180,7 +180,7 @@ public class XmlToCompositeNodeReader { resolveValueOfElement(data, startElement)); } - private String getValueOf(StartElement startElement) throws XMLStreamException { + private String getValueOf(final StartElement startElement) throws XMLStreamException { String data = null; if (eventReader.hasNext()) { final XMLEvent innerEvent = eventReader.peek(); @@ -201,7 +201,7 @@ public class XmlToCompositeNodeReader { return data == null ? null : data.trim(); } - private String getAdditionalData(XMLEvent event) throws XMLStreamException { + private String getAdditionalData(final XMLEvent event) throws XMLStreamException { String data = ""; if (eventReader.hasNext()) { final XMLEvent innerEvent = eventReader.peek(); @@ -216,16 +216,16 @@ public class XmlToCompositeNodeReader { return data; } - private String getLocalNameFor(StartElement startElement) { + private String getLocalNameFor(final StartElement startElement) { return startElement.getName().getLocalPart(); } - private URI getNamespaceFor(StartElement startElement) { + private URI getNamespaceFor(final StartElement startElement) { String namespaceURI = startElement.getName().getNamespaceURI(); return namespaceURI.isEmpty() ? null : URI.create(namespaceURI); } - private Object resolveValueOfElement(String value, StartElement startElement) { + private Object resolveValueOfElement(final String value, final StartElement startElement) { // it could be instance-identifier Built-In Type if (value.startsWith("/")) { IdentityValuesDTO iiValue = RestUtil.asInstanceIdentifier(value, new RestUtil.PrefixMapingFromXml( diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToNormalizedNodeReaderWithSchema.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToNormalizedNodeReaderWithSchema.java deleted file mode 100644 index 935d96cb12..0000000000 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToNormalizedNodeReaderWithSchema.java +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.rest.impl; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.util.HashMap; -import java.util.Map; -import java.util.Stack; -import javax.xml.stream.XMLEventReader; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.events.Characters; -import javax.xml.stream.events.StartElement; -import javax.xml.stream.events.XMLEvent; -import org.opendaylight.controller.sal.restconf.impl.CompositeNodeWrapper; -import org.opendaylight.controller.sal.restconf.impl.IdentityValuesDTO; -import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode; -import org.opendaylight.controller.sal.restconf.impl.NodeWrapper; -import org.opendaylight.controller.sal.restconf.impl.RestCodec; -import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; -import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag; -import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType; -import org.opendaylight.controller.sal.restconf.impl.SimpleNodeWrapper; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.Node; -import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; -import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; -import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; -import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; -import org.opendaylight.yangtools.yang.model.api.TypeDefinition; - -public class XmlToNormalizedNodeReaderWithSchema { - - private final static XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); - private XMLEventReader eventReader; - private InstanceIdWithSchemaNode iiWithSchema; - - public XmlToNormalizedNodeReaderWithSchema(final InstanceIdWithSchemaNode iiWithSchema) { - this.iiWithSchema = iiWithSchema; - } - - public Node read(InputStream entityStream) throws XMLStreamException, UnsupportedFormatException, IOException { - // Get an XML stream which can be marked, and reset, so we can check and see if there is - // any content being provided. - entityStream = getMarkableStream(entityStream); - - if (isInputStreamEmpty(entityStream)) { - return null; - } - - eventReader = xmlInputFactory.createXMLEventReader(entityStream); - if (eventReader.hasNext()) { - XMLEvent element = eventReader.peek(); - if (element.isStartDocument()) { - eventReader.nextEvent(); - } - } - - final Stack> processingQueue = new Stack<>(); - NodeWrapper root = null; - NodeWrapper element = null; - Stack processingQueueSchema = new Stack<>(); - - while (eventReader.hasNext()) { - final XMLEvent event = eventReader.nextEvent(); - - if (event.isStartElement()) { - final StartElement startElement = event.asStartElement(); - CompositeNodeWrapper compParentNode = null; - if (!processingQueue.isEmpty() && processingQueue.peek() instanceof CompositeNodeWrapper) { - compParentNode = (CompositeNodeWrapper) processingQueue.peek(); - findSchemaNodeForElement(startElement, processingQueueSchema); - } else { - processingQueueSchema = checkElementAndSchemaNodeNameAndNamespace(startElement, - iiWithSchema.getSchemaNode()); - DataSchemaNode currentSchemaNode = processingQueueSchema.peek(); - if (!(currentSchemaNode instanceof ListSchemaNode) - && !(currentSchemaNode instanceof ContainerSchemaNode)) { - throw new UnsupportedFormatException( - "Top level element has to be of type list or container schema node."); - } - } - - NodeWrapper newNode = null; - if (isCompositeNodeEvent(event)) { - newNode = resolveCompositeNodeFromStartElement(processingQueueSchema.peek().getQName()); - if (root == null) { - root = newNode; - } - } else if (isSimpleNodeEvent(event)) { - newNode = resolveSimpleNodeFromStartElement(processingQueueSchema.peek(), getValueOf(startElement)); - if (root == null) { - root = newNode; - } - } - - if (newNode != null) { - processingQueue.push(newNode); - if (compParentNode != null) { - compParentNode.addValue(newNode); - } - } - } else if (event.isEndElement()) { - element = processingQueue.pop(); -// if(((EndElement)event).getName().getLocalPart().equals - processingQueueSchema.pop(); - } - } - - if (!root.getLocalName().equals(element.getLocalName())) { - throw new UnsupportedFormatException("XML should contain only one root element"); - } - - return root.unwrap(); - } - - private void findSchemaNodeForElement(StartElement element, Stack processingQueueSchema) { - DataSchemaNode currentSchemaNode = processingQueueSchema.peek(); - if (currentSchemaNode instanceof DataNodeContainer) { - final URI realNamespace = getNamespaceFor(element); - final String realName = getLocalNameFor(element); - Map childNamesakes = resolveChildsWithNameAsElement( - ((DataNodeContainer) currentSchemaNode), realName); - DataSchemaNode childDataSchemaNode = childNamesakes.get(realNamespace); - if (childDataSchemaNode == null) { - throw new RestconfDocumentedException("Element " + realName + " has namespace " + realNamespace - + ". Available namespaces are: " + childNamesakes.keySet(), ErrorType.APPLICATION, - ErrorTag.INVALID_VALUE); - } - processingQueueSchema.push(childDataSchemaNode); - } else { - throw new RestconfDocumentedException("Element " + processingQueueSchema.peek().getQName().getLocalName() - + " should be data node container .", ErrorType.APPLICATION, ErrorTag.INVALID_VALUE); - } - - } - - /** - * Returns map of data schema node which are accesible by URI which have equal name - */ - private Map resolveChildsWithNameAsElement(final DataNodeContainer dataNodeContainer, - final String realName) { - final Map namespaceToDataSchemaNode = new HashMap(); - for (DataSchemaNode dataSchemaNode : dataNodeContainer.getChildNodes()) { - if (dataSchemaNode.equals(realName)) { - namespaceToDataSchemaNode.put(dataSchemaNode.getQName().getNamespace(), dataSchemaNode); - } - } - return namespaceToDataSchemaNode; - } - - private final Stack checkElementAndSchemaNodeNameAndNamespace(final StartElement startElement, - final DataSchemaNode node) { - checkArgument(startElement != null, "Start Element cannot be NULL!"); - final String expectedName = node.getQName().getLocalName(); - final String xmlName = getLocalNameFor(startElement); - final URI expectedNamespace = node.getQName().getNamespace(); - final URI xmlNamespace = getNamespaceFor(startElement); - if (!expectedName.equals(xmlName)) { - throw new RestconfDocumentedException("Xml element name: " + xmlName + "\nSchema node name: " - + expectedName, org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType.APPLICATION, - ErrorTag.INVALID_VALUE); - } - - if (xmlNamespace != null && !expectedNamespace.equals(xmlNamespace)) { - throw new RestconfDocumentedException("Xml element ns: " + xmlNamespace + "\nSchema node ns: " - + expectedNamespace, - org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType.APPLICATION, - ErrorTag.INVALID_VALUE); - } - Stack processingQueueSchema = new Stack<>(); - processingQueueSchema.push(node); - return processingQueueSchema; - } - - /** - * If the input stream is not markable, then it wraps the input stream with a buffered stream, which is mark able. - * That way we can check if the stream is empty safely. - * - * @param entityStream - * @return - */ - private InputStream getMarkableStream(InputStream entityStream) { - if (!entityStream.markSupported()) { - entityStream = new BufferedInputStream(entityStream); - } - return entityStream; - } - - private boolean isInputStreamEmpty(final InputStream entityStream) throws IOException { - boolean isEmpty = false; - entityStream.mark(1); - if (entityStream.read() == -1) { - isEmpty = true; - } - entityStream.reset(); - return isEmpty; - } - - private boolean isSimpleNodeEvent(final XMLEvent event) throws XMLStreamException { - checkArgument(event != null, "XML Event cannot be NULL!"); - if (event.isStartElement()) { - XMLEvent innerEvent = skipCommentsAndWhitespace(); - if (innerEvent != null && (innerEvent.isCharacters() || innerEvent.isEndElement())) { - return true; - } - } - return false; - } - - private boolean isCompositeNodeEvent(final XMLEvent event) throws XMLStreamException { - checkArgument(event != null, "XML Event cannot be NULL!"); - if (event.isStartElement()) { - XMLEvent innerEvent = skipCommentsAndWhitespace(); - if (innerEvent != null) { - if (innerEvent.isStartElement()) { - return true; - } - } - } - return false; - } - - private XMLEvent skipCommentsAndWhitespace() throws XMLStreamException { - while (eventReader.hasNext()) { - XMLEvent event = eventReader.peek(); - if (event.getEventType() == XMLStreamConstants.COMMENT) { - eventReader.nextEvent(); - continue; - } - - if (event.isCharacters()) { - Characters chars = event.asCharacters(); - if (chars.isWhiteSpace()) { - eventReader.nextEvent(); - continue; - } - } - return event; - } - return null; - } - - private CompositeNodeWrapper resolveCompositeNodeFromStartElement(final QName qName) { - // checkArgument(startElement != null, "Start Element cannot be NULL!"); - CompositeNodeWrapper compositeNodeWrapper = new CompositeNodeWrapper("dummy"); - compositeNodeWrapper.setQname(qName); - return compositeNodeWrapper; - - } - - private SimpleNodeWrapper resolveSimpleNodeFromStartElement(final DataSchemaNode node, final String value) - throws XMLStreamException { - // checkArgument(startElement != null, "Start Element cannot be NULL!"); - Object deserializedValue = null; - - if (node instanceof LeafSchemaNode) { - TypeDefinition baseType = RestUtil.resolveBaseTypeFrom(((LeafSchemaNode) node).getType()); - deserializedValue = RestCodec.from(baseType, iiWithSchema.getMountPoint()).deserialize(value); - } else if (node instanceof LeafListSchemaNode) { - TypeDefinition baseType = RestUtil.resolveBaseTypeFrom(((LeafListSchemaNode) node).getType()); - deserializedValue = RestCodec.from(baseType, iiWithSchema.getMountPoint()).deserialize(value); - } - // String data; - // if (data == null) { - // return new EmptyNodeWrapper(getNamespaceFor(startElement), getLocalNameFor(startElement)); - // } - SimpleNodeWrapper simpleNodeWrapper = new SimpleNodeWrapper("dummy", deserializedValue); - simpleNodeWrapper.setQname(node.getQName()); - return simpleNodeWrapper; - } - - private String getValueOf(final StartElement startElement) throws XMLStreamException { - String data = null; - if (eventReader.hasNext()) { - final XMLEvent innerEvent = eventReader.peek(); - if (innerEvent.isCharacters()) { - final Characters chars = innerEvent.asCharacters(); - if (!chars.isWhiteSpace()) { - data = innerEvent.asCharacters().getData(); - data = data + getAdditionalData(eventReader.nextEvent()); - } - } else if (innerEvent.isEndElement()) { - if (startElement.getLocation().getCharacterOffset() == innerEvent.getLocation().getCharacterOffset()) { - data = null; - } else { - data = ""; - } - } - } - return data == null ? null : data.trim(); - } - - private String getAdditionalData(final XMLEvent event) throws XMLStreamException { - String data = ""; - if (eventReader.hasNext()) { - final XMLEvent innerEvent = eventReader.peek(); - if (innerEvent.isCharacters() && !innerEvent.isEndElement()) { - final Characters chars = innerEvent.asCharacters(); - if (!chars.isWhiteSpace()) { - data = innerEvent.asCharacters().getData(); - data = data + getAdditionalData(eventReader.nextEvent()); - } - } - } - return data; - } - - private String getLocalNameFor(final StartElement startElement) { - return startElement.getName().getLocalPart(); - } - - private URI getNamespaceFor(final StartElement startElement) { - String namespaceURI = startElement.getName().getNamespaceURI(); - return namespaceURI.isEmpty() ? null : URI.create(namespaceURI); - } - - private Object resolveValueOfElement(final String value, final StartElement startElement) { - // it could be instance-identifier Built-In Type - if (value.startsWith("/")) { - IdentityValuesDTO iiValue = RestUtil.asInstanceIdentifier(value, new RestUtil.PrefixMapingFromXml( - startElement)); - if (iiValue != null) { - return iiValue; - } - } - // it could be identityref Built-In Type - String[] namespaceAndValue = value.split(":"); - if (namespaceAndValue.length == 2) { - String namespace = startElement.getNamespaceContext().getNamespaceURI(namespaceAndValue[0]); - if (namespace != null && !namespace.isEmpty()) { - return new IdentityValuesDTO(namespace, namespaceAndValue[1], namespaceAndValue[0], value); - } - } - // it is not "prefix:value" but just "value" - return value; - } - -} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/BrokerFacade.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/BrokerFacade.java index f11e25c046..8dbc5b50ee 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/BrokerFacade.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/BrokerFacade.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.sal.restconf.impl; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.ListenableFuture; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; @@ -40,6 +41,7 @@ import javax.ws.rs.core.Response.Status; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION; @@ -176,31 +178,39 @@ public class BrokerFacade { private NormalizedNode readDataViaTransaction(final DOMDataReadTransaction transaction, LogicalDatastoreType datastore, YangInstanceIdentifier path) { LOG.trace("Read " + datastore.name() + " via Restconf: {}", path); - final CheckedFuture>, ReadFailedException> listenableFuture = - transaction.read(datastore, path); + final ListenableFuture>> listenableFuture = transaction.read(datastore, path); + if (listenableFuture != null) { + Optional> optional; + try { + LOG.debug("Reading result data from transaction."); + optional = listenableFuture.get(); + } catch (InterruptedException | ExecutionException e) { + throw new RestconfDocumentedException("Problem to get data from transaction.", e.getCause()); - try { - Optional> optional = listenableFuture.checkedGet(); - return optional.isPresent() ? optional.get() : null; - } catch(ReadFailedException e) { - throw new RestconfDocumentedException(e.getMessage(), e, e.getErrorList()); + } + if (optional != null) { + if (optional.isPresent()) { + return optional.get(); + } + } } + return null; } private CheckedFuture postDataViaTransaction( final DOMDataReadWriteTransaction rWTransaction, final LogicalDatastoreType datastore, final YangInstanceIdentifier path, final NormalizedNode payload, DataNormalizationOperation root) { - CheckedFuture>, ReadFailedException> futureDatastoreData = - rWTransaction.read(datastore, path); + ListenableFuture>> futureDatastoreData = rWTransaction.read(datastore, path); try { - final Optional> optionalDatastoreData = futureDatastoreData.checkedGet(); + final Optional> optionalDatastoreData = futureDatastoreData.get(); if (optionalDatastoreData.isPresent() && payload.equals(optionalDatastoreData.get())) { - LOG.trace("Post Configuration via Restconf was not executed because data already exists :{}", path); + String errMsg = "Post Configuration via Restconf was not executed because data already exists"; + LOG.trace(errMsg + ":{}", path); throw new RestconfDocumentedException("Data already exists for path: " + path, ErrorType.PROTOCOL, ErrorTag.DATA_EXISTS); } - } catch(ReadFailedException e) { - LOG.warn("Error reading from datastore with path: " + path, e); + } catch (InterruptedException | ExecutionException e) { + LOG.trace("It wasn't possible to get data loaded from datastore at path " + path); } ensureParentsByMerge(datastore, path, rWTransaction, root); @@ -241,21 +251,27 @@ public class BrokerFacade { try { currentOp = currentOp.getChild(currentArg); } catch (DataNormalizationException e) { - throw new RestconfDocumentedException( - String.format("Error normalizing data for path %s", normalizedPath), e); + throw new IllegalArgumentException( + String.format("Invalid child encountered in path %s", normalizedPath), e); } currentArguments.add(currentArg); YangInstanceIdentifier currentPath = YangInstanceIdentifier.create(currentArguments); + final Boolean exists; + try { - boolean exists = rwTx.exists(store, currentPath).checkedGet(); - if (!exists && iterator.hasNext()) { - rwTx.merge(store, currentPath, currentOp.createDefault(currentArg)); - } + CheckedFuture future = + rwTx.exists(store, currentPath); + exists = future.checkedGet(); } catch (ReadFailedException e) { LOG.error("Failed to read pre-existing data from store {} path {}", store, currentPath, e); - throw new RestconfDocumentedException("Failed to read pre-existing data", e); + throw new IllegalStateException("Failed to read pre-existing data", e); + } + + + if (!exists && iterator.hasNext()) { + rwTx.merge(store, currentPath, currentOp.createDefault(currentArg)); } } } diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/ControllerContext.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/ControllerContext.java index 93e6a2c0e9..b0a6e0d6f3 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/ControllerContext.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/ControllerContext.java @@ -118,15 +118,19 @@ public class ControllerContext implements SchemaContextListener { this.onGlobalContextUpdated(schemas); } - public InstanceIdWithSchemaNode toInstanceIdentifier(final String restconfInstance) { + public InstanceIdentifierContext toInstanceIdentifier(final String restconfInstance) { return this.toIdentifier(restconfInstance, false); } - public InstanceIdWithSchemaNode toMountPointIdentifier(final String restconfInstance) { + public SchemaContext getGlobalSchema() { + return globalSchema; + } + + public InstanceIdentifierContext toMountPointIdentifier(final String restconfInstance) { return this.toIdentifier(restconfInstance, true); } - private InstanceIdWithSchemaNode toIdentifier(final String restconfInstance, final boolean toMountPointIdentifier) { + private InstanceIdentifierContext toIdentifier(final String restconfInstance, final boolean toMountPointIdentifier) { this.checkPreconditions(); final List pathArgs = urlPathArgsDecode(SLASH_SPLITTER.split(restconfInstance)); @@ -144,7 +148,7 @@ public class ControllerContext implements SchemaContextListener { InstanceIdentifierBuilder builder = YangInstanceIdentifier.builder(); Module latestModule = globalSchema.findModuleByName(startModule, null); - InstanceIdWithSchemaNode iiWithSchemaNode = this.collectPathArguments(builder, pathArgs, latestModule, null, + InstanceIdentifierContext iiWithSchemaNode = this.collectPathArguments(builder, pathArgs, latestModule, null, toMountPointIdentifier); if (iiWithSchemaNode == null) { @@ -462,7 +466,7 @@ public class ControllerContext implements SchemaContextListener { return object == null ? "" : URLEncoder.encode(object.toString(), ControllerContext.URI_ENCODING_CHAR_SET); } - private InstanceIdWithSchemaNode collectPathArguments(final InstanceIdentifierBuilder builder, + private InstanceIdentifierContext collectPathArguments(final InstanceIdentifierBuilder builder, final List strings, final DataNodeContainer parentNode, final DOMMountPoint mountPoint, final boolean returnJustMountPoint) { Preconditions.> checkNotNull(strings); @@ -472,7 +476,7 @@ public class ControllerContext implements SchemaContextListener { } if (strings.isEmpty()) { - return new InstanceIdWithSchemaNode(builder.toInstance(), ((DataSchemaNode) parentNode), mountPoint); + return new InstanceIdentifierContext(builder.toInstance(), ((DataSchemaNode) parentNode), mountPoint,mountPoint != null ? mountPoint.getSchemaContext() : globalSchema); } String head = strings.iterator().next(); @@ -511,12 +515,12 @@ public class ControllerContext implements SchemaContextListener { if (returnJustMountPoint) { YangInstanceIdentifier instance = YangInstanceIdentifier.builder().toInstance(); - return new InstanceIdWithSchemaNode(instance, mountPointSchema, mount); + return new InstanceIdentifierContext(instance, mountPointSchema, mount,mountPointSchema); } if (strings.size() == 1) { YangInstanceIdentifier instance = YangInstanceIdentifier.builder().toInstance(); - return new InstanceIdWithSchemaNode(instance, mountPointSchema, mount); + return new InstanceIdentifierContext(instance, mountPointSchema, mount,mountPointSchema); } final String moduleNameBehindMountPoint = toModuleName(strings.get(1)); @@ -632,7 +636,7 @@ public class ControllerContext implements SchemaContextListener { returnJustMountPoint); } - return new InstanceIdWithSchemaNode(builder.toInstance(), targetNode, mountPoint); + return new InstanceIdentifierContext(builder.toInstance(), targetNode, mountPoint,mountPoint != null ? mountPoint.getSchemaContext() : globalSchema); } public static DataSchemaNode findInstanceDataChildByNameAndNamespace(final DataNodeContainer container, final String name, diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdWithSchemaNode.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdentifierContext.java similarity index 71% rename from opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdWithSchemaNode.java rename to opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdentifierContext.java index b58a6eeaea..b9c311121e 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdWithSchemaNode.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/InstanceIdentifierContext.java @@ -10,18 +10,21 @@ package org.opendaylight.controller.sal.restconf.impl; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class InstanceIdWithSchemaNode { +public class InstanceIdentifierContext { private final YangInstanceIdentifier instanceIdentifier; private final DataSchemaNode schemaNode; private final DOMMountPoint mountPoint; + private final SchemaContext schemaContext; - public InstanceIdWithSchemaNode(YangInstanceIdentifier instanceIdentifier, DataSchemaNode schemaNode, - DOMMountPoint mountPoint) { + public InstanceIdentifierContext(YangInstanceIdentifier instanceIdentifier, DataSchemaNode schemaNode, + DOMMountPoint mountPoint,SchemaContext context) { this.instanceIdentifier = instanceIdentifier; this.schemaNode = schemaNode; this.mountPoint = mountPoint; + this.schemaContext = context; } public YangInstanceIdentifier getInstanceIdentifier() { @@ -36,4 +39,8 @@ public class InstanceIdWithSchemaNode { return mountPoint; } + public SchemaContext getSchemaContext() { + return schemaContext; + } + } diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedDataPrunner.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedDataPrunner.java new file mode 100644 index 0000000000..5d0185b4cc --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedDataPrunner.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.restconf.impl; + +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; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode; +import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; +import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.MixinNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.OrderedLeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; + +class NormalizedDataPrunner { + + public DataContainerChild pruneDataAtDepth(final DataContainerChild node, final Integer depth) { + if (depth == null) { + return node; + } + + if (node instanceof LeafNode || node instanceof LeafSetNode || node instanceof AnyXmlNode + || node instanceof OrderedLeafSetNode) { + return node; + } else if (node instanceof MixinNode) { + return processMixinNode(node, depth); + } else if (node instanceof DataContainerNode) { + return processContainerNode(node, depth); + } + throw new IllegalStateException("Unexpected Mixin node occured why pruning data to requested depth"); + } + + private DataContainerChild processMixinNode(final NormalizedNode node, final Integer depth) { + if (node instanceof AugmentationNode) { + return processAugmentationNode(node, depth); + } else if (node instanceof ChoiceNode) { + return processChoiceNode(node, depth); + } else if (node instanceof OrderedMapNode) { + return processOrderedMapNode(node, depth); + } else if (node instanceof MapNode) { + return processMapNode(node, depth); + } else if (node instanceof UnkeyedListNode) { + return processUnkeyedListNode(node, depth); + } + throw new IllegalStateException("Unexpected Mixin node occured why pruning data to requested depth"); + } + + private DataContainerChild processContainerNode(final NormalizedNode node, final Integer depth) { + final ContainerNode containerNode = (ContainerNode) node; + DataContainerNodeAttrBuilder newContainerBuilder = Builders.containerBuilder() + .withNodeIdentifier(containerNode.getIdentifier()); + if (depth > 1) { + processDataContainerChild((DataContainerNode) node, depth, newContainerBuilder); + } + return newContainerBuilder.build(); + } + + private DataContainerChild processChoiceNode(final NormalizedNode node, final Integer depth) { + final ChoiceNode choiceNode = (ChoiceNode) node; + DataContainerNodeBuilder newChoiceBuilder = Builders.choiceBuilder() + .withNodeIdentifier(choiceNode.getIdentifier()); + + processDataContainerChild((DataContainerNode) node, depth, newChoiceBuilder); + + return newChoiceBuilder.build(); + } + + private DataContainerChild processAugmentationNode(final NormalizedNode node, final Integer depth) { + final AugmentationNode augmentationNode = (AugmentationNode) node; + DataContainerNodeBuilder> newAugmentationBuilder = Builders + .augmentationBuilder().withNodeIdentifier(augmentationNode.getIdentifier()); + + processDataContainerChild((DataContainerNode) node, depth, newAugmentationBuilder); + + return newAugmentationBuilder.build(); + } + + private void processDataContainerChild( + final DataContainerNode node, + final Integer depth, + final DataContainerNodeBuilder> newBuilder) { + + for (DataContainerChild nodeValue : node.getValue()) { + newBuilder.withChild(pruneDataAtDepth(nodeValue, depth - 1)); + } + + } + + private DataContainerChild processUnkeyedListNode(final NormalizedNode node, final Integer depth) { + CollectionNodeBuilder newUnkeyedListBuilder = Builders + .unkeyedListBuilder(); + if (depth > 1) { + for (UnkeyedListEntryNode oldUnkeyedListEntry : ((UnkeyedListNode) node).getValue()) { + DataContainerNodeAttrBuilder newUnkeyedListEntry = Builders + .unkeyedListEntryBuilder().withNodeIdentifier(oldUnkeyedListEntry.getIdentifier()); + for (DataContainerChild oldUnkeyedListEntryValue : oldUnkeyedListEntry + .getValue()) { + newUnkeyedListEntry.withChild(pruneDataAtDepth(oldUnkeyedListEntryValue, depth - 1)); + } + newUnkeyedListBuilder.addChild(newUnkeyedListEntry.build()); + } + } + return newUnkeyedListBuilder.build(); + } + + private DataContainerChild processOrderedMapNode(final NormalizedNode node, final Integer depth) { + CollectionNodeBuilder newOrderedMapNodeBuilder = Builders.orderedMapBuilder(); + processMapEntries(node, depth, newOrderedMapNodeBuilder); + return newOrderedMapNodeBuilder.build(); + } + + private DataContainerChild processMapNode(final NormalizedNode node, final Integer depth) { + CollectionNodeBuilder newMapNodeBuilder = Builders.mapBuilder(); + processMapEntries(node, depth, newMapNodeBuilder); + return newMapNodeBuilder.build(); + } + + private void processMapEntries(final NormalizedNode node, final Integer depth, + CollectionNodeBuilder newOrderedMapNodeBuilder) { + if (depth > 1) { + for (MapEntryNode oldMapEntryNode : ((MapNode) node).getValue()) { + DataContainerNodeAttrBuilder newMapEntryNodeBuilder = Builders + .mapEntryBuilder().withNodeIdentifier(oldMapEntryNode.getIdentifier()); + for (DataContainerChild mapEntryNodeValue : oldMapEntryNode.getValue()) { + newMapEntryNodeBuilder.withChild(pruneDataAtDepth(mapEntryNodeValue, depth - 1)); + } + newOrderedMapNodeBuilder.withChild(newMapEntryNodeBuilder.build()); + } + } + } + + +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedNodeContext.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedNodeContext.java new file mode 100644 index 0000000000..e698693b95 --- /dev/null +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/NormalizedNodeContext.java @@ -0,0 +1,22 @@ +package org.opendaylight.controller.sal.restconf.impl; + +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public class NormalizedNodeContext { + + private final InstanceIdentifierContext context; + private final NormalizedNode data; + + public NormalizedNodeContext(InstanceIdentifierContext context, NormalizedNode data) { + this.context = context; + this.data = data; + } + + public InstanceIdentifierContext getInstanceIdentifierContext() { + return context; + } + + public NormalizedNode getData() { + return data; + } +} diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfImpl.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfImpl.java index b94f6a6166..adad26e141 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfImpl.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfImpl.java @@ -15,7 +15,6 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; - import java.net.URI; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -32,7 +31,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; - import org.apache.commons.lang3.StringUtils; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; @@ -205,7 +203,7 @@ public class RestconfImpl implements RestconfService { Set modules = null; DOMMountPoint mountPoint = null; if (identifier.contains(ControllerContext.MOUNT)) { - InstanceIdWithSchemaNode mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); + InstanceIdentifierContext mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); mountPoint = mountPointIdentifier.getMountPoint(); modules = this.controllerContext.getAllModules(mountPoint); } else { @@ -236,7 +234,7 @@ public class RestconfImpl implements RestconfService { Module module = null; DOMMountPoint mountPoint = null; if (identifier.contains(ControllerContext.MOUNT)) { - InstanceIdWithSchemaNode mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); + InstanceIdentifierContext mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); mountPoint = mountPointIdentifier.getMountPoint(); module = this.controllerContext.findModuleByNameAndRevision(mountPoint, moduleNameAndRevision); } else { @@ -267,7 +265,7 @@ public class RestconfImpl implements RestconfService { Set modules = null; DOMMountPoint mountPoint = null; if (identifier.contains(ControllerContext.MOUNT)) { - InstanceIdWithSchemaNode mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); + InstanceIdentifierContext mountPointIdentifier = this.controllerContext.toMountPointIdentifier(identifier); mountPoint = mountPointIdentifier.getMountPoint(); modules = this.controllerContext.getAllModules(mountPoint); } else { @@ -518,7 +516,7 @@ public class RestconfImpl implements RestconfService { DOMMountPoint mountPoint = null; if (identifier.contains(ControllerContext.MOUNT)) { // mounted RPC call - look up mount instance. - InstanceIdWithSchemaNode mountPointId = controllerContext.toMountPointIdentifier(identifier); + InstanceIdentifierContext mountPointId = controllerContext.toMountPointIdentifier(identifier); mountPoint = mountPointId.getMountPoint(); int startOfRemoteRpcName = identifier.lastIndexOf(ControllerContext.MOUNT) @@ -615,8 +613,8 @@ public class RestconfImpl implements RestconfService { } @Override - public StructuredData readConfigurationData(final String identifier, final UriInfo uriInfo) { - final InstanceIdWithSchemaNode iiWithData = controllerContext.toInstanceIdentifier(identifier); + public NormalizedNodeContext readConfigurationData(final String identifier, final UriInfo uriInfo) { + final InstanceIdentifierContext iiWithData = controllerContext.toInstanceIdentifier(identifier); DOMMountPoint mountPoint = iiWithData.getMountPoint(); NormalizedNode data = null; YangInstanceIdentifier normalizedII; @@ -628,12 +626,7 @@ public class RestconfImpl implements RestconfService { normalizedII = controllerContext.toNormalized(iiWithData.getInstanceIdentifier()); data = broker.readConfigurationData(normalizedII); } - - final CompositeNode compositeNode = datastoreNormalizedNodeToCompositeNode(data, iiWithData.getSchemaNode()); - final CompositeNode prunedCompositeNode = pruneDataAtDepth(compositeNode, parseDepthParameter(uriInfo)); - - final boolean prettyPrintMode = parsePrettyPrintParameter(uriInfo); - return new StructuredData(prunedCompositeNode, iiWithData.getSchemaNode(), mountPoint, prettyPrintMode); + return new NormalizedNodeContext(iiWithData, data); } @SuppressWarnings("unchecked") @@ -679,8 +672,8 @@ public class RestconfImpl implements RestconfService { } @Override - public StructuredData readOperationalData(final String identifier, final UriInfo info) { - final InstanceIdWithSchemaNode iiWithData = controllerContext.toInstanceIdentifier(identifier); + public NormalizedNodeContext readOperationalData(final String identifier, final UriInfo info) { + final InstanceIdentifierContext iiWithData = controllerContext.toInstanceIdentifier(identifier); DOMMountPoint mountPoint = iiWithData.getMountPoint(); NormalizedNode data = null; YangInstanceIdentifier normalizedII; @@ -693,11 +686,7 @@ public class RestconfImpl implements RestconfService { data = broker.readOperationalData(normalizedII); } - final CompositeNode compositeNode = datastoreNormalizedNodeToCompositeNode(data, iiWithData.getSchemaNode()); - final CompositeNode prunedCompositeNode = pruneDataAtDepth(compositeNode, parseDepthParameter(info)); - - final boolean prettyPrintMode = parsePrettyPrintParameter(info); - return new StructuredData(prunedCompositeNode, iiWithData.getSchemaNode(), mountPoint, prettyPrintMode); + return new NormalizedNodeContext(iiWithData, data); } private boolean parsePrettyPrintParameter(final UriInfo info) { @@ -707,7 +696,7 @@ public class RestconfImpl implements RestconfService { @Override public Response updateConfigurationData(final String identifier, final Node payload) { - final InstanceIdWithSchemaNode iiWithData = this.controllerContext.toInstanceIdentifier(identifier); + final InstanceIdentifierContext iiWithData = this.controllerContext.toInstanceIdentifier(identifier); validateInput(iiWithData.getSchemaNode(), payload); @@ -774,7 +763,7 @@ public class RestconfImpl implements RestconfService { * if key values or key count in payload and URI isn't equal * */ - private void validateListKeysEqualityInPayloadAndUri(final InstanceIdWithSchemaNode iiWithData, + private void validateListKeysEqualityInPayloadAndUri(final InstanceIdentifierContext iiWithData, final CompositeNode payload) { if (iiWithData.getSchemaNode() instanceof ListSchemaNode) { final List keyDefinitions = ((ListSchemaNode) iiWithData.getSchemaNode()).getKeyDefinition(); @@ -825,7 +814,7 @@ public class RestconfImpl implements RestconfService { ErrorType.PROTOCOL, ErrorTag.UNKNOWN_NAMESPACE); } - InstanceIdWithSchemaNode iiWithData = null; + InstanceIdentifierContext iiWithData = null; CompositeNode value = null; if (this.representsMountPointRootData(payload)) { // payload represents mount point data and URI represents path to the mount point @@ -841,7 +830,7 @@ public class RestconfImpl implements RestconfService { value = this.normalizeNode(payload, iiWithData.getSchemaNode(), iiWithData.getMountPoint()); } else { - final InstanceIdWithSchemaNode incompleteInstIdWithData = this.controllerContext + final InstanceIdentifierContext incompleteInstIdWithData = this.controllerContext .toInstanceIdentifier(identifier); final DataNodeContainer parentSchema = (DataNodeContainer) incompleteInstIdWithData.getSchemaNode(); DOMMountPoint mountPoint = incompleteInstIdWithData.getMountPoint(); @@ -856,7 +845,7 @@ public class RestconfImpl implements RestconfService { parentSchema, payloadName, module.getNamespace()); value = this.normalizeNode(payload, schemaNode, mountPoint); - iiWithData = addLastIdentifierFromData(incompleteInstIdWithData, value, schemaNode); + iiWithData = addLastIdentifierFromData(incompleteInstIdWithData, value, schemaNode,incompleteInstIdWithData.getSchemaContext()); } final NormalizedNode datastoreNormalizedData = compositeNodeToDatastoreNormalizedNode(value, @@ -906,7 +895,7 @@ public class RestconfImpl implements RestconfService { final DataSchemaNode schemaNode = ControllerContext.findInstanceDataChildByNameAndNamespace(module, payloadName, module.getNamespace()); final CompositeNode value = this.normalizeNode(payload, schemaNode, null); - final InstanceIdWithSchemaNode iiWithData = this.addLastIdentifierFromData(null, value, schemaNode); + final InstanceIdentifierContext iiWithData = this.addLastIdentifierFromData(null, value, schemaNode,ControllerContext.getInstance().getGlobalSchema()); final NormalizedNode datastoreNormalizedData = compositeNodeToDatastoreNormalizedNode(value, schemaNode); DOMMountPoint mountPoint = iiWithData.getMountPoint(); YangInstanceIdentifier normalizedII; @@ -932,7 +921,7 @@ public class RestconfImpl implements RestconfService { @Override public Response deleteConfigurationData(final String identifier) { - final InstanceIdWithSchemaNode iiWithData = controllerContext.toInstanceIdentifier(identifier); + final InstanceIdentifierContext iiWithData = controllerContext.toInstanceIdentifier(identifier); DOMMountPoint mountPoint = iiWithData.getMountPoint(); YangInstanceIdentifier normalizedII; @@ -1098,8 +1087,8 @@ public class RestconfImpl implements RestconfService { return module; } - private InstanceIdWithSchemaNode addLastIdentifierFromData(final InstanceIdWithSchemaNode identifierWithSchemaNode, - final CompositeNode data, final DataSchemaNode schemaOfData) { + private InstanceIdentifierContext addLastIdentifierFromData(final InstanceIdentifierContext identifierWithSchemaNode, + final CompositeNode data, final DataSchemaNode schemaOfData, SchemaContext schemaContext) { YangInstanceIdentifier instanceIdentifier = null; if (identifierWithSchemaNode != null) { instanceIdentifier = identifierWithSchemaNode.getInstanceIdentifier(); @@ -1122,11 +1111,12 @@ public class RestconfImpl implements RestconfService { YangInstanceIdentifier instance = iiBuilder.toInstance(); DOMMountPoint mountPoint = null; + SchemaContext schemaCtx = null; if (identifierWithSchemaNode != null) { mountPoint = identifierWithSchemaNode.getMountPoint(); } - return new InstanceIdWithSchemaNode(instance, schemaOfData, mountPoint); + return new InstanceIdentifierContext(instance, schemaOfData, mountPoint,schemaContext); } private HashMap resolveKeysFromData(final ListSchemaNode listNode, final CompositeNode dataNode) { @@ -1514,16 +1504,16 @@ public class RestconfImpl implements RestconfService { "It wasn't possible to translate specified data to datastore readable form.")); } - private InstanceIdWithSchemaNode normalizeInstanceIdentifierWithSchemaNode( - final InstanceIdWithSchemaNode iiWithSchemaNode) { + private InstanceIdentifierContext normalizeInstanceIdentifierWithSchemaNode( + final InstanceIdentifierContext iiWithSchemaNode) { return normalizeInstanceIdentifierWithSchemaNode(iiWithSchemaNode, false); } - private InstanceIdWithSchemaNode normalizeInstanceIdentifierWithSchemaNode( - final InstanceIdWithSchemaNode iiWithSchemaNode, final boolean unwrapLastListNode) { - return new InstanceIdWithSchemaNode(instanceIdentifierToReadableFormForNormalizeNode( + private InstanceIdentifierContext normalizeInstanceIdentifierWithSchemaNode( + final InstanceIdentifierContext iiWithSchemaNode, final boolean unwrapLastListNode) { + return new InstanceIdentifierContext(instanceIdentifierToReadableFormForNormalizeNode( iiWithSchemaNode.getInstanceIdentifier(), unwrapLastListNode), iiWithSchemaNode.getSchemaNode(), - iiWithSchemaNode.getMountPoint()); + iiWithSchemaNode.getMountPoint(),iiWithSchemaNode.getSchemaContext()); } private YangInstanceIdentifier instanceIdentifierToReadableFormForNormalizeNode( diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/InvokeRpcMethodTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/InvokeRpcMethodTest.java index 2f045ce381..559a6b9e8e 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/InvokeRpcMethodTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/InvokeRpcMethodTest.java @@ -40,7 +40,7 @@ import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; import org.opendaylight.controller.sal.restconf.impl.BrokerFacade; import org.opendaylight.controller.sal.restconf.impl.ControllerContext; -import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.controller.sal.restconf.impl.RestconfError; import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag; @@ -324,7 +324,7 @@ public class InvokeRpcMethodTest { when(mockMountPoint.getService(eq(RpcProvisionRegistry.class))).thenReturn(Optional.of(mockedRpcProvisionRegistry)); when(mockMountPoint.getSchemaContext()).thenReturn(TestUtils.loadSchemaContext("/invoke-rpc")); - InstanceIdWithSchemaNode mockedInstanceId = mock(InstanceIdWithSchemaNode.class); + InstanceIdentifierContext mockedInstanceId = mock(InstanceIdentifierContext.class); when(mockedInstanceId.getMountPoint()).thenReturn(mockMountPoint); ControllerContext mockedContext = mock(ControllerContext.class); diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetAugmentedElementWhenEqualNamesTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetAugmentedElementWhenEqualNamesTest.java index bab06e9245..856d8c006b 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetAugmentedElementWhenEqualNamesTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetAugmentedElementWhenEqualNamesTest.java @@ -17,7 +17,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.opendaylight.controller.sal.restconf.impl.ControllerContext; -import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -36,7 +36,7 @@ public class RestGetAugmentedElementWhenEqualNamesTest { @Test public void augmentedNodesInUri() { - InstanceIdWithSchemaNode iiWithData = controllerContext.toInstanceIdentifier("main:cont/augment-main-a:cont1"); + InstanceIdentifierContext iiWithData = controllerContext.toInstanceIdentifier("main:cont/augment-main-a:cont1"); assertEquals("ns:augment:main:a", iiWithData.getSchemaNode().getQName().getNamespace().toString()); iiWithData = controllerContext.toInstanceIdentifier("main:cont/augment-main-b:cont1"); assertEquals("ns:augment:main:b", iiWithData.getSchemaNode().getQName().getNamespace().toString()); diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java index 539248a147..06cfd84b05 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java @@ -44,12 +44,14 @@ import javax.ws.rs.core.UriInfo; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; import org.opendaylight.controller.sal.rest.impl.JsonToCompositeNodeProvider; +import org.opendaylight.controller.sal.rest.impl.RestconfApplication; import org.opendaylight.controller.sal.rest.impl.RestconfDocumentedExceptionMapper; import org.opendaylight.controller.sal.rest.impl.StructuredDataToJsonProvider; import org.opendaylight.controller.sal.rest.impl.StructuredDataToXmlProvider; @@ -130,6 +132,7 @@ public class RestGetOperationTest extends JerseyTest { StructuredDataToJsonProvider.INSTANCE, XmlToCompositeNodeProvider.INSTANCE, JsonToCompositeNodeProvider.INSTANCE); resourceConfig.registerClasses(RestconfDocumentedExceptionMapper.class); + resourceConfig.registerClasses(new RestconfApplication().getClasses()); return resourceConfig; } @@ -717,6 +720,7 @@ public class RestGetOperationTest extends JerseyTest { } @Test + @Ignore public void getDataWithUriDepthParameterTest() throws UnsupportedEncodingException { ControllerContext.getInstance().setGlobalSchema(schemaContextModules); @@ -903,6 +907,7 @@ public class RestGetOperationTest extends JerseyTest { * Tests behavior when invalid value of depth URI parameter */ @Test + @Ignore public void getDataWithInvalidDepthParameterTest() { ControllerContext.getInstance().setGlobalSchema(schemaContextModules); @@ -930,7 +935,7 @@ public class RestGetOperationTest extends JerseyTest { try { QName qNameDepth1Cont = QName.create("urn:nested:module", "2014-06-3", "depth1-cont"); YangInstanceIdentifier ii = YangInstanceIdentifier.builder().node(qNameDepth1Cont).build(); - NormalizedNode value = (NormalizedNode)(Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(qNameDepth1Cont)).build()); + NormalizedNode value = (Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(qNameDepth1Cont)).build()); when(brokerFacade.readConfigurationData(eq(ii))).thenReturn(value); restconfImpl.readConfigurationData("nested-module:depth1-cont", uriInfo); fail("Expected RestconfDocumentedException"); diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestconfDocumentedExceptionMapperTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestconfDocumentedExceptionMapperTest.java index 4e9c96ac3e..3a16b18efc 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestconfDocumentedExceptionMapperTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestconfDocumentedExceptionMapperTest.java @@ -53,6 +53,7 @@ import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.opendaylight.controller.sal.rest.api.Draft02; import org.opendaylight.controller.sal.rest.api.RestconfService; @@ -60,11 +61,11 @@ import org.opendaylight.controller.sal.rest.impl.RestconfDocumentedExceptionMapp import org.opendaylight.controller.sal.rest.impl.StructuredDataToJsonProvider; import org.opendaylight.controller.sal.rest.impl.StructuredDataToXmlProvider; import org.opendaylight.controller.sal.restconf.impl.ControllerContext; +import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.controller.sal.restconf.impl.RestconfError; import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag; import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorType; -import org.opendaylight.controller.sal.restconf.impl.StructuredData; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -679,13 +680,14 @@ public class RestconfDocumentedExceptionMapperTest extends JerseyTest { } @Test + @Ignore public void testToResponseWithStatusOnly() throws Exception { // The StructuredDataToJsonProvider should throw a // RestconfDocumentedException with no data when(mockRestConf.readOperationalData(any(String.class), any(UriInfo.class))).thenReturn( - new StructuredData(null, null, null)); + new NormalizedNodeContext(null, null)); Response resp = target("/operational/foo").request(MediaType.APPLICATION_JSON).get(); diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/TestUtils.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/TestUtils.java index c2b153f02b..15d73e3e7a 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/TestUtils.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/TestUtils.java @@ -402,7 +402,7 @@ public final class TestUtils { return interfaceBuilder.toInstance(); } - static NormalizedNode prepareNormalizedNodeWithIetfInterfacesInterfacesData() throws ParseException { + static NormalizedNode prepareNormalizedNodeWithIetfInterfacesInterfacesData() throws ParseException { String ietfInterfacesDate = "2013-07-04"; String namespace = "urn:ietf:params:xml:ns:yang:ietf-interfaces"; DataContainerNodeAttrBuilder mapEntryNode = ImmutableMapEntryNodeBuilder.create(); diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/URITest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/URITest.java index ed871bb527..4900e6a66f 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/URITest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/URITest.java @@ -26,7 +26,7 @@ import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; import org.opendaylight.controller.sal.restconf.impl.BrokerFacade; import org.opendaylight.controller.sal.restconf.impl.ControllerContext; -import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode; +import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.controller.sal.restconf.impl.RestconfImpl; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -51,7 +51,7 @@ public class URITest { @Test public void testToInstanceIdentifierList() throws FileNotFoundException { - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:userWithoutClass/foo"); assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "userWithoutClass"); @@ -80,7 +80,7 @@ public class URITest { @Test public void testToInstanceIdentifierContainer() throws FileNotFoundException { - InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users"); + InstanceIdentifierContext instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users"); assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "users"); assertTrue(instanceIdentifier.getSchemaNode() instanceof ContainerSchemaNode); assertEquals(2, ((ContainerSchemaNode) instanceIdentifier.getSchemaNode()).getChildNodes().size()); @@ -88,7 +88,7 @@ public class URITest { @Test public void testToInstanceIdentifierChoice() throws FileNotFoundException { - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:food/nonalcoholic"); assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "nonalcoholic"); } @@ -120,7 +120,7 @@ public class URITest { @Test public void testMountPointWithExternModul() throws FileNotFoundException { initMountService(true); - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:users/yang-ext:mount/test-interface2:class/student/name"); assertEquals( "[(urn:ietf:params:xml:ns:yang:test-interface2?revision=2014-08-01)class, (urn:ietf:params:xml:ns:yang:test-interface2?revision=2014-08-01)student[{(urn:ietf:params:xml:ns:yang:test-interface2?revision=2014-08-01)name=name}]]", @@ -130,7 +130,7 @@ public class URITest { @Test public void testMountPointWithoutExternModul() throws FileNotFoundException { initMountService(true); - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:users/yang-ext:mount/"); assertTrue(Iterables.isEmpty(instanceIdentifier.getInstanceIdentifier().getPathArguments())); } @@ -140,7 +140,7 @@ public class URITest { exception.expect(RestconfDocumentedException.class); controllerContext.setMountService(null); - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:users/yang-ext:mount/test-interface2:class/student/name"); } @@ -149,7 +149,7 @@ public class URITest { initMountService(false); exception.expect(RestconfDocumentedException.class); - InstanceIdWithSchemaNode instanceIdentifier = controllerContext + InstanceIdentifierContext instanceIdentifier = controllerContext .toInstanceIdentifier("simple-nodes:users/yang-ext:mount/test-interface2:class"); } diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml index 2a778180d4..c470b3237e 100644 --- a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml +++ b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml @@ -2,7 +2,9 @@ - + + index.html + JAXRSApiDoc com.sun.jersey.spi.container.servlet.ServletContainer diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html index 05a76a4cb7..f12616bc4b 100644 --- a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html +++ b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html @@ -32,7 +32,7 @@ var loadMount = function(mountIndex, mountPath) { $("#message").empty(); $("#message").append( "

Loading...

" ); - loadSwagger("http://localhost:8080/apidoc/apis/mounts/" + mountIndex, + loadSwagger("/apidoc/apis/mounts/" + mountIndex, "swagger-ui-container"); $("#message").empty(); $("#message").append( "

Showing mount points for " + mountPath + "

"); @@ -48,7 +48,7 @@ //loads the root swagger documenation (which comes from RestConf) var loadRootSwagger = function() { $("#message").empty(); - loadSwagger("http://localhost:8080/apidoc/apis", "swagger-ui-container"); + loadSwagger("/apidoc/apis", "swagger-ui-container"); } //main method to initialize the mount list / swagger docs / tabs on page load diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java index 10aec4ca2e..c1996f4691 100644 --- a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java +++ b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java @@ -151,7 +151,7 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener, Open public void applyOperation(final ReadWriteTransaction transaction) { final Link link = toTopologyLink(notification); final InstanceIdentifier path = linkPath(link); - transaction.put(LogicalDatastoreType.OPERATIONAL, path, link); + transaction.merge(LogicalDatastoreType.OPERATIONAL, path, link, true); } }); } diff --git a/opendaylight/samples/northbound/loadbalancer/pom.xml b/opendaylight/samples/northbound/loadbalancer/pom.xml index 5854d5577f..d39241757f 100644 --- a/opendaylight/samples/northbound/loadbalancer/pom.xml +++ b/opendaylight/samples/northbound/loadbalancer/pom.xml @@ -81,7 +81,7 @@ org.opendaylight.controller sal - 0.7.1-SNAPSHOT + ${sal.version}