diff --git a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufMessages.java b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufMessages.java index 09d8520def6..d4dd43d4890 100644 --- a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufMessages.java +++ b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufMessages.java @@ -211,6 +211,104 @@ protected java.lang.Object newInstance( return new Header(); } + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Header( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + case 10: { + org.drools.serialization.protobuf.ProtobufMessages.Version.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) != 0)) { + subBuilder = version_.toBuilder(); + } + version_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Version.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(version_); + version_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 34: { + org.drools.serialization.protobuf.ProtobufMessages.Signature.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) != 0)) { + subBuilder = signature_.toBuilder(); + } + signature_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Signature.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(signature_); + signature_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + case 74: { + if (!((mutable_bitField0_ & 0x00000004) != 0)) { + strategy_ = new java.util.ArrayList<>(); + mutable_bitField0_ |= 0x00000004; + } + strategy_.add( + input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.PARSER, extensionRegistry)); + break; + } + case 82: { + bitField0_ |= 0x00000004; + payload_ = input.readBytes(); + break; + } + case 106: { + if (!((mutable_bitField0_ & 0x00000010) != 0)) { + runtimeClassDefinitions_ = new java.util.ArrayList<>(); + mutable_bitField0_ |= 0x00000010; + } + runtimeClassDefinitions_.add( + input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.PARSER, extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000004) != 0)) { + strategy_ = java.util.Collections.unmodifiableList(strategy_); + } + if (((mutable_bitField0_ & 0x00000010) != 0)) { + runtimeClassDefinitions_ = java.util.Collections.unmodifiableList(runtimeClassDefinitions_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Header_descriptor; @@ -291,6 +389,65 @@ protected java.lang.Object newInstance( return new StrategyIndex(); } + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private StrategyIndex( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000002; + name_ = bs; + break; + } + case 26: { + bitField0_ |= 0x00000004; + data_ = input.readBytes(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Header_StrategyIndex_descriptor; @@ -306,7 +463,7 @@ protected java.lang.Object newInstance( private int bitField0_; public static final int ID_FIELD_NUMBER = 1; - private int id_ = 0; + private int id_; /** * optional int32 id = 1; * @return Whether the id field is set. @@ -325,8 +482,7 @@ public int getId() { } public static final int NAME_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; + private volatile java.lang.Object name_; /** * optional string name = 2; * @return Whether the name field is set. @@ -374,7 +530,7 @@ public java.lang.String getName() { } public static final int DATA_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + private com.google.protobuf.ByteString data_; /** * optional bytes data = 3; * @return Whether the data field is set. @@ -415,7 +571,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000004) != 0)) { output.writeBytes(3, data_); } - getUnknownFields().writeTo(output); + unknownFields.writeTo(output); } @java.lang.Override @@ -435,7 +591,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, data_); } - size += getUnknownFields().getSerializedSize(); + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @@ -465,7 +621,7 @@ public boolean equals(final java.lang.Object obj) { if (!getData() .equals(other.getData())) return false; } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -488,7 +644,7 @@ public int hashCode() { hash = (37 * hash) + DATA_FIELD_NUMBER; hash = (53 * hash) + getData().hashCode(); } - hash = (29 * hash) + getUnknownFields().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } @@ -605,21 +761,28 @@ public static final class Builder extends // Construct using org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.newBuilder() private Builder() { - + maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } } @java.lang.Override public Builder clear() { super.clear(); - bitField0_ = 0; id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); name_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); data_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); return this; } @@ -646,12 +809,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex b @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex buildPartial() { org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex result = new org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -659,16 +816,50 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.He to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { - result.name_ = name_; to_bitField0_ |= 0x00000002; } + result.name_ = name_; if (((from_bitField0_ & 0x00000004) != 0)) { - result.data_ = data_; to_bitField0_ |= 0x00000004; } - result.bitField0_ |= to_bitField0_; + result.data_ = data_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; } + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex) { @@ -685,14 +876,14 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Head setId(other.getId()); } if (other.hasName()) { - name_ = other.name_; bitField0_ |= 0x00000002; + name_ = other.name_; onChanged(); } if (other.hasData()) { setData(other.getData()); } - this.mergeUnknownFields(other.getUnknownFields()); + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @@ -707,45 +898,17 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } + org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex parsedMessage = null; try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - id_ = input.readInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - name_ = input.readBytes(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - data_ = input.readBytes(); - bitField0_ |= 0x00000004; - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - onChanged(); - } // finally + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } return this; } private int bitField0_; @@ -773,9 +936,8 @@ public int getId() { * @return This builder for chaining. */ public Builder setId(int value) { - - id_ = value; bitField0_ |= 0x00000001; + id_ = value; onChanged(); return this; } @@ -840,9 +1002,11 @@ public java.lang.String getName() { */ public Builder setName( java.lang.String value) { - if (value == null) { throw new NullPointerException(); } + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; name_ = value; - bitField0_ |= 0x00000002; onChanged(); return this; } @@ -851,8 +1015,8 @@ public Builder setName( * @return This builder for chaining. */ public Builder clearName() { - name_ = getDefaultInstance().getName(); bitField0_ = (bitField0_ & ~0x00000002); + name_ = getDefaultInstance().getName(); onChanged(); return this; } @@ -863,9 +1027,11 @@ public Builder clearName() { */ public Builder setNameBytes( com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; name_ = value; - bitField0_ |= 0x00000002; onChanged(); return this; } @@ -893,9 +1059,11 @@ public com.google.protobuf.ByteString getData() { * @return This builder for chaining. */ public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; data_ = value; - bitField0_ |= 0x00000004; onChanged(); return this; } @@ -942,18 +1110,7 @@ public StrategyIndex parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); + return new StrategyIndex(input, extensionRegistry); } }; @@ -1051,7 +1208,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder get } public static final int STRATEGY_FIELD_NUMBER = 9; - @SuppressWarnings("serial") private java.util.List strategy_; /** *
@@ -1112,7 +1268,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndexOr
     }
 
     public static final int PAYLOAD_FIELD_NUMBER = 10;
-    private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString payload_;
     /**
      * 
      * byte blobs
@@ -1139,7 +1295,6 @@ public com.google.protobuf.ByteString getPayload() {
     }
 
     public static final int RUNTIME_CLASS_DEFINITIONS_FIELD_NUMBER = 13;
-    @SuppressWarnings("serial")
     private java.util.List runtimeClassDefinitions_;
     /**
      * 
@@ -1247,7 +1402,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         output.writeMessage(13, runtimeClassDefinitions_.get(i));
       }
       extensionWriter.writeUntil(200, output);
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -1277,7 +1432,7 @@ public int getSerializedSize() {
           .computeMessageSize(13, runtimeClassDefinitions_.get(i));
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -1311,7 +1466,7 @@ public boolean equals(final java.lang.Object obj) {
       }
       if (!getRuntimeClassDefinitionsList()
           .equals(other.getRuntimeClassDefinitionsList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       if (!getExtensionFields().equals(other.getExtensionFields()))
         return false;
       return true;
@@ -1345,7 +1500,7 @@ public int hashCode() {
         hash = (53 * hash) + getRuntimeClassDefinitionsList().hashCode();
       }
       hash = hashFields(hash, getExtensionFields());
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -1483,32 +1638,32 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
-        version_ = null;
-        if (versionBuilder_ != null) {
-          versionBuilder_.dispose();
-          versionBuilder_ = null;
+        if (versionBuilder_ == null) {
+          version_ = null;
+        } else {
+          versionBuilder_.clear();
         }
-        signature_ = null;
-        if (signatureBuilder_ != null) {
-          signatureBuilder_.dispose();
-          signatureBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (signatureBuilder_ == null) {
+          signature_ = null;
+        } else {
+          signatureBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000002);
         if (strategyBuilder_ == null) {
           strategy_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
         } else {
-          strategy_ = null;
           strategyBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000004);
         payload_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000008);
         if (runtimeClassDefinitionsBuilder_ == null) {
           runtimeClassDefinitions_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
-          runtimeClassDefinitions_ = null;
           runtimeClassDefinitionsBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
 
@@ -1535,13 +1690,24 @@ public org.drools.serialization.protobuf.ProtobufMessages.Header build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Header buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Header result = new org.drools.serialization.protobuf.ProtobufMessages.Header(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Header result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          if (versionBuilder_ == null) {
+            result.version_ = version_;
+          } else {
+            result.version_ = versionBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000001;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          if (signatureBuilder_ == null) {
+            result.signature_ = signature_;
+          } else {
+            result.signature_ = signatureBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000002;
+        }
         if (strategyBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
             strategy_ = java.util.Collections.unmodifiableList(strategy_);
@@ -1551,6 +1717,10 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.strategy_ = strategyBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.payload_ = payload_;
         if (runtimeClassDefinitionsBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0)) {
             runtimeClassDefinitions_ = java.util.Collections.unmodifiableList(runtimeClassDefinitions_);
@@ -1560,30 +1730,70 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.runtimeClassDefinitions_ = runtimeClassDefinitionsBuilder_.build();
         }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Header result) {
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.version_ = versionBuilder_ == null
-              ? version_
-              : versionBuilder_.build();
-          to_bitField0_ |= 0x00000001;
-        }
-        if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.signature_ = signatureBuilder_ == null
-              ? signature_
-              : signatureBuilder_.build();
-          to_bitField0_ |= 0x00000002;
-        }
-        if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.payload_ = payload_;
-          to_bitField0_ |= 0x00000004;
-        }
-        result.bitField0_ |= to_bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.Header, Type> extension,
+          Type value) {
+        return super.setExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.Header, java.util.List> extension,
+          int index, Type value) {
+        return super.setExtension(extension, index, value);
+      }
+      @java.lang.Override
+      public  Builder addExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.Header, java.util.List> extension,
+          Type value) {
+        return super.addExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder clearExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.Header, ?> extension) {
+        return super.clearExtension(extension);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Header) {
@@ -1658,7 +1868,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Head
           }
         }
         this.mergeExtensionFields(other);
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -1681,75 +1891,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Header parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                input.readMessage(
-                    getVersionFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 34: {
-                input.readMessage(
-                    getSignatureFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 34
-              case 74: {
-                org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.PARSER,
-                        extensionRegistry);
-                if (strategyBuilder_ == null) {
-                  ensureStrategyIsMutable();
-                  strategy_.add(m);
-                } else {
-                  strategyBuilder_.addMessage(m);
-                }
-                break;
-              } // case 74
-              case 82: {
-                payload_ = input.readBytes();
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 82
-              case 106: {
-                org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.PARSER,
-                        extensionRegistry);
-                if (runtimeClassDefinitionsBuilder_ == null) {
-                  ensureRuntimeClassDefinitionsIsMutable();
-                  runtimeClassDefinitions_.add(m);
-                } else {
-                  runtimeClassDefinitionsBuilder_.addMessage(m);
-                }
-                break;
-              } // case 106
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Header) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -1796,11 +1948,11 @@ public Builder setVersion(org.drools.serialization.protobuf.ProtobufMessages.Ver
             throw new NullPointerException();
           }
           version_ = value;
+          onChanged();
         } else {
           versionBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -1814,11 +1966,11 @@ public Builder setVersion(
           org.drools.serialization.protobuf.ProtobufMessages.Version.Builder builderForValue) {
         if (versionBuilder_ == null) {
           version_ = builderForValue.build();
+          onChanged();
         } else {
           versionBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -1831,17 +1983,18 @@ public Builder setVersion(
       public Builder mergeVersion(org.drools.serialization.protobuf.ProtobufMessages.Version value) {
         if (versionBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0) &&
-            version_ != null &&
-            version_ != org.drools.serialization.protobuf.ProtobufMessages.Version.getDefaultInstance()) {
-            getVersionBuilder().mergeFrom(value);
+              version_ != null &&
+              version_ != org.drools.serialization.protobuf.ProtobufMessages.Version.getDefaultInstance()) {
+            version_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Version.newBuilder(version_).mergeFrom(value).buildPartial();
           } else {
             version_ = value;
           }
+          onChanged();
         } else {
           versionBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -1852,13 +2005,13 @@ public Builder mergeVersion(org.drools.serialization.protobuf.ProtobufMessages.V
        * optional .org.drools.serialization.protobuf.Version version = 1;
        */
       public Builder clearVersion() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        version_ = null;
-        if (versionBuilder_ != null) {
-          versionBuilder_.dispose();
-          versionBuilder_ = null;
+        if (versionBuilder_ == null) {
+          version_ = null;
+          onChanged();
+        } else {
+          versionBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000001);
         return this;
       }
       /**
@@ -1899,8 +2052,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.VersionOrBuilder getVe
           org.drools.serialization.protobuf.ProtobufMessages.Version, org.drools.serialization.protobuf.ProtobufMessages.Version.Builder, org.drools.serialization.protobuf.ProtobufMessages.VersionOrBuilder> 
           getVersionFieldBuilder() {
         if (versionBuilder_ == null) {
-          versionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Version, org.drools.serialization.protobuf.ProtobufMessages.Version.Builder, org.drools.serialization.protobuf.ProtobufMessages.VersionOrBuilder>(
+          versionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getVersion(),
                   getParentForChildren(),
                   isClean());
@@ -1951,11 +2103,11 @@ public Builder setSignature(org.drools.serialization.protobuf.ProtobufMessages.S
             throw new NullPointerException();
           }
           signature_ = value;
+          onChanged();
         } else {
           signatureBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
@@ -1969,11 +2121,11 @@ public Builder setSignature(
           org.drools.serialization.protobuf.ProtobufMessages.Signature.Builder builderForValue) {
         if (signatureBuilder_ == null) {
           signature_ = builderForValue.build();
+          onChanged();
         } else {
           signatureBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
@@ -1986,17 +2138,18 @@ public Builder setSignature(
       public Builder mergeSignature(org.drools.serialization.protobuf.ProtobufMessages.Signature value) {
         if (signatureBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0) &&
-            signature_ != null &&
-            signature_ != org.drools.serialization.protobuf.ProtobufMessages.Signature.getDefaultInstance()) {
-            getSignatureBuilder().mergeFrom(value);
+              signature_ != null &&
+              signature_ != org.drools.serialization.protobuf.ProtobufMessages.Signature.getDefaultInstance()) {
+            signature_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Signature.newBuilder(signature_).mergeFrom(value).buildPartial();
           } else {
             signature_ = value;
           }
+          onChanged();
         } else {
           signatureBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
@@ -2007,13 +2160,13 @@ public Builder mergeSignature(org.drools.serialization.protobuf.ProtobufMessages
        * optional .org.drools.serialization.protobuf.Signature signature = 4;
        */
       public Builder clearSignature() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        signature_ = null;
-        if (signatureBuilder_ != null) {
-          signatureBuilder_.dispose();
-          signatureBuilder_ = null;
+        if (signatureBuilder_ == null) {
+          signature_ = null;
+          onChanged();
+        } else {
+          signatureBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
       /**
@@ -2054,8 +2207,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder get
           org.drools.serialization.protobuf.ProtobufMessages.Signature, org.drools.serialization.protobuf.ProtobufMessages.Signature.Builder, org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder> 
           getSignatureFieldBuilder() {
         if (signatureBuilder_ == null) {
-          signatureBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Signature, org.drools.serialization.protobuf.ProtobufMessages.Signature.Builder, org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder>(
+          signatureBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getSignature(),
                   getParentForChildren(),
                   isClean());
@@ -2068,7 +2220,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder get
         java.util.Collections.emptyList();
       private void ensureStrategyIsMutable() {
         if (!((bitField0_ & 0x00000004) != 0)) {
-          strategy_ = new java.util.ArrayList(strategy_);
+          strategy_ = new java.util.ArrayList<>(strategy_);
           bitField0_ |= 0x00000004;
          }
       }
@@ -2365,8 +2517,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.B
           org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex, org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.Builder, org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndexOrBuilder> 
           getStrategyFieldBuilder() {
         if (strategyBuilder_ == null) {
-          strategyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex, org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndex.Builder, org.drools.serialization.protobuf.ProtobufMessages.Header.StrategyIndexOrBuilder>(
+          strategyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   strategy_,
                   ((bitField0_ & 0x00000004) != 0),
                   getParentForChildren(),
@@ -2411,9 +2562,11 @@ public com.google.protobuf.ByteString getPayload() {
        * @return This builder for chaining.
        */
       public Builder setPayload(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000008;
         payload_ = value;
-        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -2436,7 +2589,7 @@ public Builder clearPayload() {
         java.util.Collections.emptyList();
       private void ensureRuntimeClassDefinitionsIsMutable() {
         if (!((bitField0_ & 0x00000010) != 0)) {
-          runtimeClassDefinitions_ = new java.util.ArrayList(runtimeClassDefinitions_);
+          runtimeClassDefinitions_ = new java.util.ArrayList<>(runtimeClassDefinitions_);
           bitField0_ |= 0x00000010;
          }
       }
@@ -2751,8 +2904,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.Builde
           org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef, org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.Builder, org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDefOrBuilder> 
           getRuntimeClassDefinitionsFieldBuilder() {
         if (runtimeClassDefinitionsBuilder_ == null) {
-          runtimeClassDefinitionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef, org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.Builder, org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDefOrBuilder>(
+          runtimeClassDefinitionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   runtimeClassDefinitions_,
                   ((bitField0_ & 0x00000010) != 0),
                   getParentForChildren(),
@@ -2794,18 +2946,7 @@ public Header parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Header(input, extensionRegistry);
       }
     };
 
@@ -2884,6 +3025,64 @@ protected java.lang.Object newInstance(
       return new Version();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Version(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              versionMajor_ = input.readInt32();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              versionMinor_ = input.readInt32();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              versionRevision_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Version_descriptor;
@@ -2899,7 +3098,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int VERSION_MAJOR_FIELD_NUMBER = 1;
-    private int versionMajor_ = 0;
+    private int versionMajor_;
     /**
      * optional int32 version_major = 1;
      * @return Whether the versionMajor field is set.
@@ -2918,7 +3117,7 @@ public int getVersionMajor() {
     }
 
     public static final int VERSION_MINOR_FIELD_NUMBER = 2;
-    private int versionMinor_ = 0;
+    private int versionMinor_;
     /**
      * optional int32 version_minor = 2;
      * @return Whether the versionMinor field is set.
@@ -2937,7 +3136,7 @@ public int getVersionMinor() {
     }
 
     public static final int VERSION_REVISION_FIELD_NUMBER = 3;
-    private int versionRevision_ = 0;
+    private int versionRevision_;
     /**
      * optional int32 version_revision = 3;
      * @return Whether the versionRevision field is set.
@@ -2978,7 +3177,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000004) != 0)) {
         output.writeInt32(3, versionRevision_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -2999,7 +3198,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt32Size(3, versionRevision_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -3029,7 +3228,7 @@ public boolean equals(final java.lang.Object obj) {
         if (getVersionRevision()
             != other.getVersionRevision()) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -3052,7 +3251,7 @@ public int hashCode() {
         hash = (37 * hash) + VERSION_REVISION_FIELD_NUMBER;
         hash = (53 * hash) + getVersionRevision();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -3169,21 +3368,28 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.Version.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         versionMajor_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
         versionMinor_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
         versionRevision_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
 
@@ -3210,12 +3416,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Version build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Version buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Version result = new org.drools.serialization.protobuf.ProtobufMessages.Version(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Version result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -3230,9 +3430,43 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ve
           result.versionRevision_ = versionRevision_;
           to_bitField0_ |= 0x00000004;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Version) {
@@ -3254,7 +3488,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Vers
         if (other.hasVersionRevision()) {
           setVersionRevision(other.getVersionRevision());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -3269,45 +3503,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Version parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                versionMajor_ = input.readInt32();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 16: {
-                versionMinor_ = input.readInt32();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              case 24: {
-                versionRevision_ = input.readInt32();
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 24
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Version) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -3335,9 +3541,8 @@ public int getVersionMajor() {
        * @return This builder for chaining.
        */
       public Builder setVersionMajor(int value) {
-
-        versionMajor_ = value;
         bitField0_ |= 0x00000001;
+        versionMajor_ = value;
         onChanged();
         return this;
       }
@@ -3375,9 +3580,8 @@ public int getVersionMinor() {
        * @return This builder for chaining.
        */
       public Builder setVersionMinor(int value) {
-
-        versionMinor_ = value;
         bitField0_ |= 0x00000002;
+        versionMinor_ = value;
         onChanged();
         return this;
       }
@@ -3415,9 +3619,8 @@ public int getVersionRevision() {
        * @return This builder for chaining.
        */
       public Builder setVersionRevision(int value) {
-
-        versionRevision_ = value;
         bitField0_ |= 0x00000004;
+        versionRevision_ = value;
         onChanged();
         return this;
       }
@@ -3464,18 +3667,7 @@ public Version parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Version(input, extensionRegistry);
       }
     };
 
@@ -3551,6 +3743,60 @@ protected java.lang.Object newInstance(
       return new Signature();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Signature(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              keyAlias_ = bs;
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              signature_ = input.readBytes();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Signature_descriptor;
@@ -3566,8 +3812,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int KEY_ALIAS_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object keyAlias_ = "";
+    private volatile java.lang.Object keyAlias_;
     /**
      * optional string key_alias = 1;
      * @return Whether the keyAlias field is set.
@@ -3615,7 +3860,7 @@ public java.lang.String getKeyAlias() {
     }
 
     public static final int SIGNATURE_FIELD_NUMBER = 2;
-    private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString signature_;
     /**
      * optional bytes signature = 2;
      * @return Whether the signature field is set.
@@ -3653,7 +3898,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000002) != 0)) {
         output.writeBytes(2, signature_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -3669,7 +3914,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, signature_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -3694,7 +3939,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getSignature()
             .equals(other.getSignature())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -3713,7 +3958,7 @@ public int hashCode() {
         hash = (37 * hash) + SIGNATURE_FIELD_NUMBER;
         hash = (53 * hash) + getSignature().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -3830,20 +4075,26 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.Signature.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         keyAlias_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
         signature_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -3870,25 +4121,53 @@ public org.drools.serialization.protobuf.ProtobufMessages.Signature build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Signature buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Signature result = new org.drools.serialization.protobuf.ProtobufMessages.Signature(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Signature result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.keyAlias_ = keyAlias_;
           to_bitField0_ |= 0x00000001;
         }
+        result.keyAlias_ = keyAlias_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.signature_ = signature_;
           to_bitField0_ |= 0x00000002;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.signature_ = signature_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Signature) {
@@ -3902,14 +4181,14 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Signature other) {
         if (other == org.drools.serialization.protobuf.ProtobufMessages.Signature.getDefaultInstance()) return this;
         if (other.hasKeyAlias()) {
-          keyAlias_ = other.keyAlias_;
           bitField0_ |= 0x00000001;
+          keyAlias_ = other.keyAlias_;
           onChanged();
         }
         if (other.hasSignature()) {
           setSignature(other.getSignature());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -3924,40 +4203,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Signature parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                keyAlias_ = input.readBytes();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 18: {
-                signature_ = input.readBytes();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Signature) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -4012,9 +4268,11 @@ public java.lang.String getKeyAlias() {
        */
       public Builder setKeyAlias(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         keyAlias_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -4023,8 +4281,8 @@ public Builder setKeyAlias(
        * @return This builder for chaining.
        */
       public Builder clearKeyAlias() {
-        keyAlias_ = getDefaultInstance().getKeyAlias();
         bitField0_ = (bitField0_ & ~0x00000001);
+        keyAlias_ = getDefaultInstance().getKeyAlias();
         onChanged();
         return this;
       }
@@ -4035,9 +4293,11 @@ public Builder clearKeyAlias() {
        */
       public Builder setKeyAliasBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         keyAlias_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -4065,9 +4325,11 @@ public com.google.protobuf.ByteString getSignature() {
        * @return This builder for chaining.
        */
       public Builder setSignature(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
         signature_ = value;
-        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -4114,18 +4376,7 @@ public Signature parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Signature(input, extensionRegistry);
       }
     };
 
@@ -4215,6 +4466,60 @@ protected java.lang.Object newInstance(
       return new KnowledgeBase();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private KnowledgeBase(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              bitField0_ |= 0x00000001;
+              signature_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000002;
+              id_ = bs;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_KnowledgeBase_descriptor;
@@ -4230,7 +4535,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int SIGNATURE_FIELD_NUMBER = 1;
-    private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString signature_;
     /**
      * optional bytes signature = 1;
      * @return Whether the signature field is set.
@@ -4249,8 +4554,7 @@ public com.google.protobuf.ByteString getSignature() {
     }
 
     public static final int ID_FIELD_NUMBER = 2;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object id_ = "";
+    private volatile java.lang.Object id_;
     /**
      * 
      * we should probably add the list of packages/rules/resources on the knowledge base
@@ -4337,7 +4641,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         com.google.protobuf.GeneratedMessageV3.writeString(output, 2, id_);
       }
       extensionWriter.writeUntil(200, output);
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -4354,7 +4658,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, id_);
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -4379,7 +4683,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getId()
             .equals(other.getId())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       if (!getExtensionFields().equals(other.getExtensionFields()))
         return false;
       return true;
@@ -4401,7 +4705,7 @@ public int hashCode() {
         hash = (53 * hash) + getId().hashCode();
       }
       hash = hashFields(hash, getExtensionFields());
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -4519,20 +4823,26 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         signature_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
         id_ = "";
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -4559,25 +4869,80 @@ public org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase build()
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase result = new org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.signature_ = signature_;
           to_bitField0_ |= 0x00000001;
         }
+        result.signature_ = signature_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.id_ = id_;
           to_bitField0_ |= 0x00000002;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.id_ = id_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase, Type> extension,
+          Type value) {
+        return super.setExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase, java.util.List> extension,
+          int index, Type value) {
+        return super.setExtension(extension, index, value);
+      }
+      @java.lang.Override
+      public  Builder addExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase, java.util.List> extension,
+          Type value) {
+        return super.addExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder clearExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase, ?> extension) {
+        return super.clearExtension(extension);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase) {
@@ -4594,12 +4959,12 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Know
           setSignature(other.getSignature());
         }
         if (other.hasId()) {
-          id_ = other.id_;
           bitField0_ |= 0x00000002;
+          id_ = other.id_;
           onChanged();
         }
         this.mergeExtensionFields(other);
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -4617,40 +4982,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                signature_ = input.readBytes();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 18: {
-                id_ = input.readBytes();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.KnowledgeBase) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -4678,9 +5020,11 @@ public com.google.protobuf.ByteString getSignature() {
        * @return This builder for chaining.
        */
       public Builder setSignature(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         signature_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -4761,9 +5105,11 @@ public java.lang.String getId() {
        */
       public Builder setId(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
         id_ = value;
-        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -4776,8 +5122,8 @@ public Builder setId(
        * @return This builder for chaining.
        */
       public Builder clearId() {
-        id_ = getDefaultInstance().getId();
         bitField0_ = (bitField0_ & ~0x00000002);
+        id_ = getDefaultInstance().getId();
         onChanged();
         return this;
       }
@@ -4792,9 +5138,11 @@ public Builder clearId() {
        */
       public Builder setIdBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
         id_ = value;
-        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -4831,18 +5179,7 @@ public KnowledgeBase parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new KnowledgeBase(input, extensionRegistry);
       }
     };
 
@@ -4957,6 +5294,98 @@ protected java.lang.Object newInstance(
       return new KnowledgeSession();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private KnowledgeSession(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              multithread_ = input.readBool();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              time_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              org.drools.serialization.protobuf.ProtobufMessages.RuleData.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = ruleData_.toBuilder();
+              }
+              ruleData_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.RuleData.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(ruleData_);
+                ruleData_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 34: {
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000008) != 0)) {
+                subBuilder = processData_.toBuilder();
+              }
+              processData_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ProcessData.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(processData_);
+                processData_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+            case 42: {
+              org.drools.serialization.protobuf.ProtobufMessages.Timers.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000010) != 0)) {
+                subBuilder = timers_.toBuilder();
+              }
+              timers_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(timers_);
+                timers_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000010;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_KnowledgeSession_descriptor;
@@ -4972,7 +5401,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int MULTITHREAD_FIELD_NUMBER = 1;
-    private boolean multithread_ = false;
+    private boolean multithread_;
     /**
      * optional bool multithread = 1;
      * @return Whether the multithread field is set.
@@ -4991,7 +5420,7 @@ public boolean getMultithread() {
     }
 
     public static final int TIME_FIELD_NUMBER = 2;
-    private long time_ = 0L;
+    private long time_;
     /**
      * optional int64 time = 2;
      * @return Whether the time field is set.
@@ -5136,7 +5565,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         output.writeMessage(5, getTimers());
       }
       extensionWriter.writeUntil(200, output);
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -5166,7 +5595,7 @@ public int getSerializedSize() {
           .computeMessageSize(5, getTimers());
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -5206,7 +5635,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getTimers()
             .equals(other.getTimers())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       if (!getExtensionFields().equals(other.getExtensionFields()))
         return false;
       return true;
@@ -5242,7 +5671,7 @@ public int hashCode() {
         hash = (53 * hash) + getTimers().hashCode();
       }
       hash = hashFields(hash, getExtensionFields());
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -5379,24 +5808,28 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         multithread_ = false;
+        bitField0_ = (bitField0_ & ~0x00000001);
         time_ = 0L;
-        ruleData_ = null;
-        if (ruleDataBuilder_ != null) {
-          ruleDataBuilder_.dispose();
-          ruleDataBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (ruleDataBuilder_ == null) {
+          ruleData_ = null;
+        } else {
+          ruleDataBuilder_.clear();
         }
-        processData_ = null;
-        if (processDataBuilder_ != null) {
-          processDataBuilder_.dispose();
-          processDataBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (processDataBuilder_ == null) {
+          processData_ = null;
+        } else {
+          processDataBuilder_.clear();
         }
-        timers_ = null;
-        if (timersBuilder_ != null) {
-          timersBuilder_.dispose();
-          timersBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        if (timersBuilder_ == null) {
+          timers_ = null;
+        } else {
+          timersBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
 
@@ -5423,12 +5856,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession build
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession result = new org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -5440,26 +5867,93 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Kn
           to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.ruleData_ = ruleDataBuilder_ == null
-              ? ruleData_
-              : ruleDataBuilder_.build();
+          if (ruleDataBuilder_ == null) {
+            result.ruleData_ = ruleData_;
+          } else {
+            result.ruleData_ = ruleDataBuilder_.build();
+          }
           to_bitField0_ |= 0x00000004;
         }
         if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.processData_ = processDataBuilder_ == null
-              ? processData_
-              : processDataBuilder_.build();
+          if (processDataBuilder_ == null) {
+            result.processData_ = processData_;
+          } else {
+            result.processData_ = processDataBuilder_.build();
+          }
           to_bitField0_ |= 0x00000008;
         }
         if (((from_bitField0_ & 0x00000010) != 0)) {
-          result.timers_ = timersBuilder_ == null
-              ? timers_
-              : timersBuilder_.build();
+          if (timersBuilder_ == null) {
+            result.timers_ = timers_;
+          } else {
+            result.timers_ = timersBuilder_.build();
+          }
           to_bitField0_ |= 0x00000010;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession, Type> extension,
+          Type value) {
+        return super.setExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession, java.util.List> extension,
+          int index, Type value) {
+        return super.setExtension(extension, index, value);
+      }
+      @java.lang.Override
+      public  Builder addExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession, java.util.List> extension,
+          Type value) {
+        return super.addExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder clearExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession, ?> extension) {
+        return super.clearExtension(extension);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession) {
@@ -5488,7 +5982,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Know
           mergeTimers(other.getTimers());
         }
         this.mergeExtensionFields(other);
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -5516,61 +6010,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                multithread_ = input.readBool();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 16: {
-                time_ = input.readInt64();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              case 26: {
-                input.readMessage(
-                    getRuleDataFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 26
-              case 34: {
-                input.readMessage(
-                    getProcessDataFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 34
-              case 42: {
-                input.readMessage(
-                    getTimersFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 42
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.KnowledgeSession) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -5598,9 +6048,8 @@ public boolean getMultithread() {
        * @return This builder for chaining.
        */
       public Builder setMultithread(boolean value) {
-
-        multithread_ = value;
         bitField0_ |= 0x00000001;
+        multithread_ = value;
         onChanged();
         return this;
       }
@@ -5638,9 +6087,8 @@ public long getTime() {
        * @return This builder for chaining.
        */
       public Builder setTime(long value) {
-
-        time_ = value;
         bitField0_ |= 0x00000002;
+        time_ = value;
         onChanged();
         return this;
       }
@@ -5685,11 +6133,11 @@ public Builder setRuleData(org.drools.serialization.protobuf.ProtobufMessages.Ru
             throw new NullPointerException();
           }
           ruleData_ = value;
+          onChanged();
         } else {
           ruleDataBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -5699,11 +6147,11 @@ public Builder setRuleData(
           org.drools.serialization.protobuf.ProtobufMessages.RuleData.Builder builderForValue) {
         if (ruleDataBuilder_ == null) {
           ruleData_ = builderForValue.build();
+          onChanged();
         } else {
           ruleDataBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -5712,30 +6160,31 @@ public Builder setRuleData(
       public Builder mergeRuleData(org.drools.serialization.protobuf.ProtobufMessages.RuleData value) {
         if (ruleDataBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
-            ruleData_ != null &&
-            ruleData_ != org.drools.serialization.protobuf.ProtobufMessages.RuleData.getDefaultInstance()) {
-            getRuleDataBuilder().mergeFrom(value);
+              ruleData_ != null &&
+              ruleData_ != org.drools.serialization.protobuf.ProtobufMessages.RuleData.getDefaultInstance()) {
+            ruleData_ =
+              org.drools.serialization.protobuf.ProtobufMessages.RuleData.newBuilder(ruleData_).mergeFrom(value).buildPartial();
           } else {
             ruleData_ = value;
           }
+          onChanged();
         } else {
           ruleDataBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.RuleData rule_data = 3;
        */
       public Builder clearRuleData() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        ruleData_ = null;
-        if (ruleDataBuilder_ != null) {
-          ruleDataBuilder_.dispose();
-          ruleDataBuilder_ = null;
+        if (ruleDataBuilder_ == null) {
+          ruleData_ = null;
+          onChanged();
+        } else {
+          ruleDataBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
       /**
@@ -5764,8 +6213,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.RuleDataOrBuilder getR
           org.drools.serialization.protobuf.ProtobufMessages.RuleData, org.drools.serialization.protobuf.ProtobufMessages.RuleData.Builder, org.drools.serialization.protobuf.ProtobufMessages.RuleDataOrBuilder> 
           getRuleDataFieldBuilder() {
         if (ruleDataBuilder_ == null) {
-          ruleDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.RuleData, org.drools.serialization.protobuf.ProtobufMessages.RuleData.Builder, org.drools.serialization.protobuf.ProtobufMessages.RuleDataOrBuilder>(
+          ruleDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getRuleData(),
                   getParentForChildren(),
                   isClean());
@@ -5804,11 +6252,11 @@ public Builder setProcessData(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           processData_ = value;
+          onChanged();
         } else {
           processDataBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -5818,11 +6266,11 @@ public Builder setProcessData(
           org.drools.serialization.protobuf.ProtobufMessages.ProcessData.Builder builderForValue) {
         if (processDataBuilder_ == null) {
           processData_ = builderForValue.build();
+          onChanged();
         } else {
           processDataBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -5831,30 +6279,31 @@ public Builder setProcessData(
       public Builder mergeProcessData(org.drools.serialization.protobuf.ProtobufMessages.ProcessData value) {
         if (processDataBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            processData_ != null &&
-            processData_ != org.drools.serialization.protobuf.ProtobufMessages.ProcessData.getDefaultInstance()) {
-            getProcessDataBuilder().mergeFrom(value);
+              processData_ != null &&
+              processData_ != org.drools.serialization.protobuf.ProtobufMessages.ProcessData.getDefaultInstance()) {
+            processData_ =
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData.newBuilder(processData_).mergeFrom(value).buildPartial();
           } else {
             processData_ = value;
           }
+          onChanged();
         } else {
           processDataBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.ProcessData process_data = 4;
        */
       public Builder clearProcessData() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        processData_ = null;
-        if (processDataBuilder_ != null) {
-          processDataBuilder_.dispose();
-          processDataBuilder_ = null;
+        if (processDataBuilder_ == null) {
+          processData_ = null;
+          onChanged();
+        } else {
+          processDataBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -5883,8 +6332,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ProcessDataOrBuilder g
           org.drools.serialization.protobuf.ProtobufMessages.ProcessData, org.drools.serialization.protobuf.ProtobufMessages.ProcessData.Builder, org.drools.serialization.protobuf.ProtobufMessages.ProcessDataOrBuilder> 
           getProcessDataFieldBuilder() {
         if (processDataBuilder_ == null) {
-          processDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.ProcessData, org.drools.serialization.protobuf.ProtobufMessages.ProcessData.Builder, org.drools.serialization.protobuf.ProtobufMessages.ProcessDataOrBuilder>(
+          processDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getProcessData(),
                   getParentForChildren(),
                   isClean());
@@ -5923,11 +6371,11 @@ public Builder setTimers(org.drools.serialization.protobuf.ProtobufMessages.Time
             throw new NullPointerException();
           }
           timers_ = value;
+          onChanged();
         } else {
           timersBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -5937,11 +6385,11 @@ public Builder setTimers(
           org.drools.serialization.protobuf.ProtobufMessages.Timers.Builder builderForValue) {
         if (timersBuilder_ == null) {
           timers_ = builderForValue.build();
+          onChanged();
         } else {
           timersBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -5950,30 +6398,31 @@ public Builder setTimers(
       public Builder mergeTimers(org.drools.serialization.protobuf.ProtobufMessages.Timers value) {
         if (timersBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0) &&
-            timers_ != null &&
-            timers_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.getDefaultInstance()) {
-            getTimersBuilder().mergeFrom(value);
+              timers_ != null &&
+              timers_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.getDefaultInstance()) {
+            timers_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Timers.newBuilder(timers_).mergeFrom(value).buildPartial();
           } else {
             timers_ = value;
           }
+          onChanged();
         } else {
           timersBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Timers timers = 5;
        */
       public Builder clearTimers() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        timers_ = null;
-        if (timersBuilder_ != null) {
-          timersBuilder_.dispose();
-          timersBuilder_ = null;
+        if (timersBuilder_ == null) {
+          timers_ = null;
+          onChanged();
+        } else {
+          timersBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
       /**
@@ -6002,8 +6451,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TimersOrBuilder getTim
           org.drools.serialization.protobuf.ProtobufMessages.Timers, org.drools.serialization.protobuf.ProtobufMessages.Timers.Builder, org.drools.serialization.protobuf.ProtobufMessages.TimersOrBuilder> 
           getTimersFieldBuilder() {
         if (timersBuilder_ == null) {
-          timersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Timers, org.drools.serialization.protobuf.ProtobufMessages.Timers.Builder, org.drools.serialization.protobuf.ProtobufMessages.TimersOrBuilder>(
+          timersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getTimers(),
                   getParentForChildren(),
                   isClean());
@@ -6044,18 +6492,7 @@ public KnowledgeSession parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new KnowledgeSession(input, extensionRegistry);
       }
     };
 
@@ -6237,6 +6674,135 @@ protected java.lang.Object newInstance(
       return new RuleData();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private RuleData(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 24: {
+              bitField0_ |= 0x00000001;
+              lastId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000002;
+              lastRecency_ = input.readInt64();
+              break;
+            }
+            case 50: {
+              org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = initialFact_.toBuilder();
+              }
+              initialFact_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(initialFact_);
+                initialFact_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 66: {
+              org.drools.serialization.protobuf.ProtobufMessages.Agenda.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000008) != 0)) {
+                subBuilder = agenda_.toBuilder();
+              }
+              agenda_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(agenda_);
+                agenda_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+            case 74: {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+                nodeMemory_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000010;
+              }
+              nodeMemory_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.PARSER, extensionRegistry));
+              break;
+            }
+            case 82: {
+              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
+                entryPoint_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000020;
+              }
+              entryPoint_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.PARSER, extensionRegistry));
+              break;
+            }
+            case 90: {
+              org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000010) != 0)) {
+                subBuilder = actionQueue_.toBuilder();
+              }
+              actionQueue_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(actionQueue_);
+                actionQueue_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000010;
+              break;
+            }
+            case 98: {
+              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000020) != 0)) {
+                subBuilder = oBSOLETETms_.toBuilder();
+              }
+              oBSOLETETms_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(oBSOLETETms_);
+                oBSOLETETms_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000020;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
+          nodeMemory_ = java.util.Collections.unmodifiableList(nodeMemory_);
+        }
+        if (((mutable_bitField0_ & 0x00000020) != 0)) {
+          entryPoint_ = java.util.Collections.unmodifiableList(entryPoint_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_RuleData_descriptor;
@@ -6252,7 +6818,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int LAST_ID_FIELD_NUMBER = 3;
-    private long lastId_ = 0L;
+    private long lastId_;
     /**
      * optional int64 last_id = 3;
      * @return Whether the lastId field is set.
@@ -6271,7 +6837,7 @@ public long getLastId() {
     }
 
     public static final int LAST_RECENCY_FIELD_NUMBER = 4;
-    private long lastRecency_ = 0L;
+    private long lastRecency_;
     /**
      * optional int64 last_recency = 4;
      * @return Whether the lastRecency field is set.
@@ -6342,7 +6908,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.AgendaOrBuilder getAge
     }
 
     public static final int NODE_MEMORY_FIELD_NUMBER = 9;
-    @SuppressWarnings("serial")
     private java.util.List nodeMemory_;
     /**
      * repeated .org.drools.serialization.protobuf.NodeMemory node_memory = 9;
@@ -6383,7 +6948,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemoryOrBuilder ge
     }
 
     public static final int ENTRY_POINT_FIELD_NUMBER = 10;
-    @SuppressWarnings("serial")
     private java.util.List entryPoint_;
     /**
      * repeated .org.drools.serialization.protobuf.EntryPoint entry_point = 10;
@@ -6513,7 +7077,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000020) != 0)) {
         output.writeMessage(12, getOBSOLETETms());
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -6554,7 +7118,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(12, getOBSOLETETms());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -6603,7 +7167,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getOBSOLETETms()
             .equals(other.getOBSOLETETms())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -6648,7 +7212,7 @@ public int hashCode() {
         hash = (37 * hash) + OBSOLETE_TMS_FIELD_NUMBER;
         hash = (53 * hash) + getOBSOLETETms().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -6791,43 +7355,46 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         lastId_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000001);
         lastRecency_ = 0L;
-        initialFact_ = null;
-        if (initialFactBuilder_ != null) {
-          initialFactBuilder_.dispose();
-          initialFactBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (initialFactBuilder_ == null) {
+          initialFact_ = null;
+        } else {
+          initialFactBuilder_.clear();
         }
-        agenda_ = null;
-        if (agendaBuilder_ != null) {
-          agendaBuilder_.dispose();
-          agendaBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (agendaBuilder_ == null) {
+          agenda_ = null;
+        } else {
+          agendaBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000008);
         if (nodeMemoryBuilder_ == null) {
           nodeMemory_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
-          nodeMemory_ = null;
           nodeMemoryBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000010);
         if (entryPointBuilder_ == null) {
           entryPoint_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
         } else {
-          entryPoint_ = null;
           entryPointBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000020);
-        actionQueue_ = null;
-        if (actionQueueBuilder_ != null) {
-          actionQueueBuilder_.dispose();
-          actionQueueBuilder_ = null;
+        if (actionQueueBuilder_ == null) {
+          actionQueue_ = null;
+        } else {
+          actionQueueBuilder_.clear();
         }
-        oBSOLETETms_ = null;
-        if (oBSOLETETmsBuilder_ != null) {
-          oBSOLETETmsBuilder_.dispose();
-          oBSOLETETmsBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000040);
+        if (oBSOLETETmsBuilder_ == null) {
+          oBSOLETETms_ = null;
+        } else {
+          oBSOLETETmsBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000080);
         return this;
       }
 
@@ -6854,13 +7421,32 @@ public org.drools.serialization.protobuf.ProtobufMessages.RuleData build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.RuleData buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.RuleData result = new org.drools.serialization.protobuf.ProtobufMessages.RuleData(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.RuleData result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.lastId_ = lastId_;
+          to_bitField0_ |= 0x00000001;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.lastRecency_ = lastRecency_;
+          to_bitField0_ |= 0x00000002;
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          if (initialFactBuilder_ == null) {
+            result.initialFact_ = initialFact_;
+          } else {
+            result.initialFact_ = initialFactBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000004;
+        }
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          if (agendaBuilder_ == null) {
+            result.agenda_ = agenda_;
+          } else {
+            result.agenda_ = agendaBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000008;
+        }
         if (nodeMemoryBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0)) {
             nodeMemory_ = java.util.Collections.unmodifiableList(nodeMemory_);
@@ -6879,46 +7465,59 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.entryPoint_ = entryPointBuilder_.build();
         }
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.RuleData result) {
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.lastId_ = lastId_;
-          to_bitField0_ |= 0x00000001;
-        }
-        if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.lastRecency_ = lastRecency_;
-          to_bitField0_ |= 0x00000002;
-        }
-        if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.initialFact_ = initialFactBuilder_ == null
-              ? initialFact_
-              : initialFactBuilder_.build();
-          to_bitField0_ |= 0x00000004;
-        }
-        if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.agenda_ = agendaBuilder_ == null
-              ? agenda_
-              : agendaBuilder_.build();
-          to_bitField0_ |= 0x00000008;
-        }
         if (((from_bitField0_ & 0x00000040) != 0)) {
-          result.actionQueue_ = actionQueueBuilder_ == null
-              ? actionQueue_
-              : actionQueueBuilder_.build();
+          if (actionQueueBuilder_ == null) {
+            result.actionQueue_ = actionQueue_;
+          } else {
+            result.actionQueue_ = actionQueueBuilder_.build();
+          }
           to_bitField0_ |= 0x00000010;
         }
         if (((from_bitField0_ & 0x00000080) != 0)) {
-          result.oBSOLETETms_ = oBSOLETETmsBuilder_ == null
-              ? oBSOLETETms_
-              : oBSOLETETmsBuilder_.build();
+          if (oBSOLETETmsBuilder_ == null) {
+            result.oBSOLETETms_ = oBSOLETETms_;
+          } else {
+            result.oBSOLETETms_ = oBSOLETETmsBuilder_.build();
+          }
           to_bitField0_ |= 0x00000020;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.RuleData) {
@@ -7001,7 +7600,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Rule
         if (other.hasOBSOLETETms()) {
           mergeOBSOLETETms(other.getOBSOLETETms());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -7016,94 +7615,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.RuleData parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 24: {
-                lastId_ = input.readInt64();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 24
-              case 32: {
-                lastRecency_ = input.readInt64();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 32
-              case 50: {
-                input.readMessage(
-                    getInitialFactFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 50
-              case 66: {
-                input.readMessage(
-                    getAgendaFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 66
-              case 74: {
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.PARSER,
-                        extensionRegistry);
-                if (nodeMemoryBuilder_ == null) {
-                  ensureNodeMemoryIsMutable();
-                  nodeMemory_.add(m);
-                } else {
-                  nodeMemoryBuilder_.addMessage(m);
-                }
-                break;
-              } // case 74
-              case 82: {
-                org.drools.serialization.protobuf.ProtobufMessages.EntryPoint m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.PARSER,
-                        extensionRegistry);
-                if (entryPointBuilder_ == null) {
-                  ensureEntryPointIsMutable();
-                  entryPoint_.add(m);
-                } else {
-                  entryPointBuilder_.addMessage(m);
-                }
-                break;
-              } // case 82
-              case 90: {
-                input.readMessage(
-                    getActionQueueFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000040;
-                break;
-              } // case 90
-              case 98: {
-                input.readMessage(
-                    getOBSOLETETmsFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000080;
-                break;
-              } // case 98
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.RuleData) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -7131,9 +7653,8 @@ public long getLastId() {
        * @return This builder for chaining.
        */
       public Builder setLastId(long value) {
-
-        lastId_ = value;
         bitField0_ |= 0x00000001;
+        lastId_ = value;
         onChanged();
         return this;
       }
@@ -7171,9 +7692,8 @@ public long getLastRecency() {
        * @return This builder for chaining.
        */
       public Builder setLastRecency(long value) {
-
-        lastRecency_ = value;
         bitField0_ |= 0x00000002;
+        lastRecency_ = value;
         onChanged();
         return this;
       }
@@ -7218,11 +7738,11 @@ public Builder setInitialFact(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           initialFact_ = value;
+          onChanged();
         } else {
           initialFactBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -7232,11 +7752,11 @@ public Builder setInitialFact(
           org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder builderForValue) {
         if (initialFactBuilder_ == null) {
           initialFact_ = builderForValue.build();
+          onChanged();
         } else {
           initialFactBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -7245,30 +7765,31 @@ public Builder setInitialFact(
       public Builder mergeInitialFact(org.drools.serialization.protobuf.ProtobufMessages.FactHandle value) {
         if (initialFactBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
-            initialFact_ != null &&
-            initialFact_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
-            getInitialFactBuilder().mergeFrom(value);
+              initialFact_ != null &&
+              initialFact_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
+            initialFact_ =
+              org.drools.serialization.protobuf.ProtobufMessages.FactHandle.newBuilder(initialFact_).mergeFrom(value).buildPartial();
           } else {
             initialFact_ = value;
           }
+          onChanged();
         } else {
           initialFactBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.FactHandle initial_fact = 6;
        */
       public Builder clearInitialFact() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        initialFact_ = null;
-        if (initialFactBuilder_ != null) {
-          initialFactBuilder_.dispose();
-          initialFactBuilder_ = null;
+        if (initialFactBuilder_ == null) {
+          initialFact_ = null;
+          onChanged();
+        } else {
+          initialFactBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
       /**
@@ -7297,8 +7818,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
           org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
           getInitialFactFieldBuilder() {
         if (initialFactBuilder_ == null) {
-          initialFactBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+          initialFactBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getInitialFact(),
                   getParentForChildren(),
                   isClean());
@@ -7337,11 +7857,11 @@ public Builder setAgenda(org.drools.serialization.protobuf.ProtobufMessages.Agen
             throw new NullPointerException();
           }
           agenda_ = value;
+          onChanged();
         } else {
           agendaBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -7351,11 +7871,11 @@ public Builder setAgenda(
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.Builder builderForValue) {
         if (agendaBuilder_ == null) {
           agenda_ = builderForValue.build();
+          onChanged();
         } else {
           agendaBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -7364,30 +7884,31 @@ public Builder setAgenda(
       public Builder mergeAgenda(org.drools.serialization.protobuf.ProtobufMessages.Agenda value) {
         if (agendaBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            agenda_ != null &&
-            agenda_ != org.drools.serialization.protobuf.ProtobufMessages.Agenda.getDefaultInstance()) {
-            getAgendaBuilder().mergeFrom(value);
+              agenda_ != null &&
+              agenda_ != org.drools.serialization.protobuf.ProtobufMessages.Agenda.getDefaultInstance()) {
+            agenda_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Agenda.newBuilder(agenda_).mergeFrom(value).buildPartial();
           } else {
             agenda_ = value;
           }
+          onChanged();
         } else {
           agendaBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Agenda agenda = 8;
        */
       public Builder clearAgenda() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        agenda_ = null;
-        if (agendaBuilder_ != null) {
-          agendaBuilder_.dispose();
-          agendaBuilder_ = null;
+        if (agendaBuilder_ == null) {
+          agenda_ = null;
+          onChanged();
+        } else {
+          agendaBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -7416,8 +7937,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.AgendaOrBuilder getAge
           org.drools.serialization.protobuf.ProtobufMessages.Agenda, org.drools.serialization.protobuf.ProtobufMessages.Agenda.Builder, org.drools.serialization.protobuf.ProtobufMessages.AgendaOrBuilder> 
           getAgendaFieldBuilder() {
         if (agendaBuilder_ == null) {
-          agendaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Agenda, org.drools.serialization.protobuf.ProtobufMessages.Agenda.Builder, org.drools.serialization.protobuf.ProtobufMessages.AgendaOrBuilder>(
+          agendaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getAgenda(),
                   getParentForChildren(),
                   isClean());
@@ -7430,7 +7950,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.AgendaOrBuilder getAge
         java.util.Collections.emptyList();
       private void ensureNodeMemoryIsMutable() {
         if (!((bitField0_ & 0x00000010) != 0)) {
-          nodeMemory_ = new java.util.ArrayList(nodeMemory_);
+          nodeMemory_ = new java.util.ArrayList<>(nodeMemory_);
           bitField0_ |= 0x00000010;
          }
       }
@@ -7655,8 +8175,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.Builder add
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemoryOrBuilder> 
           getNodeMemoryFieldBuilder() {
         if (nodeMemoryBuilder_ == null) {
-          nodeMemoryBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemoryOrBuilder>(
+          nodeMemoryBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   nodeMemory_,
                   ((bitField0_ & 0x00000010) != 0),
                   getParentForChildren(),
@@ -7670,7 +8189,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.Builder add
         java.util.Collections.emptyList();
       private void ensureEntryPointIsMutable() {
         if (!((bitField0_ & 0x00000020) != 0)) {
-          entryPoint_ = new java.util.ArrayList(entryPoint_);
+          entryPoint_ = new java.util.ArrayList<>(entryPoint_);
           bitField0_ |= 0x00000020;
          }
       }
@@ -7895,8 +8414,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.Builder add
           org.drools.serialization.protobuf.ProtobufMessages.EntryPoint, org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.Builder, org.drools.serialization.protobuf.ProtobufMessages.EntryPointOrBuilder> 
           getEntryPointFieldBuilder() {
         if (entryPointBuilder_ == null) {
-          entryPointBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.EntryPoint, org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.Builder, org.drools.serialization.protobuf.ProtobufMessages.EntryPointOrBuilder>(
+          entryPointBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   entryPoint_,
                   ((bitField0_ & 0x00000020) != 0),
                   getParentForChildren(),
@@ -7936,11 +8454,11 @@ public Builder setActionQueue(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           actionQueue_ = value;
+          onChanged();
         } else {
           actionQueueBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000040;
-        onChanged();
         return this;
       }
       /**
@@ -7950,11 +8468,11 @@ public Builder setActionQueue(
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Builder builderForValue) {
         if (actionQueueBuilder_ == null) {
           actionQueue_ = builderForValue.build();
+          onChanged();
         } else {
           actionQueueBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000040;
-        onChanged();
         return this;
       }
       /**
@@ -7963,30 +8481,31 @@ public Builder setActionQueue(
       public Builder mergeActionQueue(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue value) {
         if (actionQueueBuilder_ == null) {
           if (((bitField0_ & 0x00000040) != 0) &&
-            actionQueue_ != null &&
-            actionQueue_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.getDefaultInstance()) {
-            getActionQueueBuilder().mergeFrom(value);
+              actionQueue_ != null &&
+              actionQueue_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.getDefaultInstance()) {
+            actionQueue_ =
+              org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.newBuilder(actionQueue_).mergeFrom(value).buildPartial();
           } else {
             actionQueue_ = value;
           }
+          onChanged();
         } else {
           actionQueueBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000040;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.ActionQueue action_queue = 11;
        */
       public Builder clearActionQueue() {
-        bitField0_ = (bitField0_ & ~0x00000040);
-        actionQueue_ = null;
-        if (actionQueueBuilder_ != null) {
-          actionQueueBuilder_.dispose();
-          actionQueueBuilder_ = null;
+        if (actionQueueBuilder_ == null) {
+          actionQueue_ = null;
+          onChanged();
+        } else {
+          actionQueueBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000040);
         return this;
       }
       /**
@@ -8015,8 +8534,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueueOrBuilder g
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueueOrBuilder> 
           getActionQueueFieldBuilder() {
         if (actionQueueBuilder_ == null) {
-          actionQueueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.ActionQueue, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueueOrBuilder>(
+          actionQueueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getActionQueue(),
                   getParentForChildren(),
                   isClean());
@@ -8055,11 +8573,11 @@ public Builder setOBSOLETETms(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           oBSOLETETms_ = value;
+          onChanged();
         } else {
           oBSOLETETmsBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000080;
-        onChanged();
         return this;
       }
       /**
@@ -8069,11 +8587,11 @@ public Builder setOBSOLETETms(
           org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder builderForValue) {
         if (oBSOLETETmsBuilder_ == null) {
           oBSOLETETms_ = builderForValue.build();
+          onChanged();
         } else {
           oBSOLETETmsBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000080;
-        onChanged();
         return this;
       }
       /**
@@ -8082,30 +8600,31 @@ public Builder setOBSOLETETms(
       public Builder mergeOBSOLETETms(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem value) {
         if (oBSOLETETmsBuilder_ == null) {
           if (((bitField0_ & 0x00000080) != 0) &&
-            oBSOLETETms_ != null &&
-            oBSOLETETms_ != org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.getDefaultInstance()) {
-            getOBSOLETETmsBuilder().mergeFrom(value);
+              oBSOLETETms_ != null &&
+              oBSOLETETms_ != org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.getDefaultInstance()) {
+            oBSOLETETms_ =
+              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.newBuilder(oBSOLETETms_).mergeFrom(value).buildPartial();
           } else {
             oBSOLETETms_ = value;
           }
+          onChanged();
         } else {
           oBSOLETETmsBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000080;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.TruthMaintenanceSystem OBSOLETE_tms = 12;
        */
       public Builder clearOBSOLETETms() {
-        bitField0_ = (bitField0_ & ~0x00000080);
-        oBSOLETETms_ = null;
-        if (oBSOLETETmsBuilder_ != null) {
-          oBSOLETETmsBuilder_.dispose();
-          oBSOLETETmsBuilder_ = null;
+        if (oBSOLETETmsBuilder_ == null) {
+          oBSOLETETms_ = null;
+          onChanged();
+        } else {
+          oBSOLETETmsBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000080);
         return this;
       }
       /**
@@ -8134,8 +8653,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem
           org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystemOrBuilder> 
           getOBSOLETETmsFieldBuilder() {
         if (oBSOLETETmsBuilder_ == null) {
-          oBSOLETETmsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystemOrBuilder>(
+          oBSOLETETmsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getOBSOLETETms(),
                   getParentForChildren(),
                   isClean());
@@ -8176,18 +8694,7 @@ public RuleData parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new RuleData(input, extensionRegistry);
       }
     };
 
@@ -8263,6 +8770,60 @@ protected java.lang.Object newInstance(
       return new RuntimeClassDef();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private RuntimeClassDef(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              classFqName_ = bs;
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              classDef_ = input.readBytes();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_RuntimeClassDef_descriptor;
@@ -8278,8 +8839,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int CLASS_FQ_NAME_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object classFqName_ = "";
+    private volatile java.lang.Object classFqName_;
     /**
      * required string class_fq_name = 1;
      * @return Whether the classFqName field is set.
@@ -8327,7 +8887,7 @@ public java.lang.String getClassFqName() {
     }
 
     public static final int CLASS_DEF_FIELD_NUMBER = 2;
-    private com.google.protobuf.ByteString classDef_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString classDef_;
     /**
      * required bytes class_def = 2;
      * @return Whether the classDef field is set.
@@ -8373,7 +8933,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000002) != 0)) {
         output.writeBytes(2, classDef_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -8389,7 +8949,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, classDef_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -8414,7 +8974,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getClassDef()
             .equals(other.getClassDef())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -8433,7 +8993,7 @@ public int hashCode() {
         hash = (37 * hash) + CLASS_DEF_FIELD_NUMBER;
         hash = (53 * hash) + getClassDef().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -8550,20 +9110,26 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         classFqName_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
         classDef_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -8590,25 +9156,53 @@ public org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef build(
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef result = new org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.classFqName_ = classFqName_;
           to_bitField0_ |= 0x00000001;
         }
+        result.classFqName_ = classFqName_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.classDef_ = classDef_;
           to_bitField0_ |= 0x00000002;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.classDef_ = classDef_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef) {
@@ -8622,14 +9216,14 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef other) {
         if (other == org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef.getDefaultInstance()) return this;
         if (other.hasClassFqName()) {
-          classFqName_ = other.classFqName_;
           bitField0_ |= 0x00000001;
+          classFqName_ = other.classFqName_;
           onChanged();
         }
         if (other.hasClassDef()) {
           setClassDef(other.getClassDef());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -8650,40 +9244,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                classFqName_ = input.readBytes();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 18: {
-                classDef_ = input.readBytes();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.RuntimeClassDef) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -8738,9 +9309,11 @@ public java.lang.String getClassFqName() {
        */
       public Builder setClassFqName(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         classFqName_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -8749,8 +9322,8 @@ public Builder setClassFqName(
        * @return This builder for chaining.
        */
       public Builder clearClassFqName() {
-        classFqName_ = getDefaultInstance().getClassFqName();
         bitField0_ = (bitField0_ & ~0x00000001);
+        classFqName_ = getDefaultInstance().getClassFqName();
         onChanged();
         return this;
       }
@@ -8761,9 +9334,11 @@ public Builder clearClassFqName() {
        */
       public Builder setClassFqNameBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         classFqName_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -8791,9 +9366,11 @@ public com.google.protobuf.ByteString getClassDef() {
        * @return This builder for chaining.
        */
       public Builder setClassDef(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
         classDef_ = value;
-        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -8840,18 +9417,7 @@ public RuntimeClassDef parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new RuntimeClassDef(input, extensionRegistry);
       }
     };
 
@@ -8899,6 +9465,48 @@ protected java.lang.Object newInstance(
       return new ProcessData();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ProcessData(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ProcessData_descriptor;
@@ -8934,7 +9542,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         .ExtendableMessage.ExtensionWriter
           extensionWriter = newExtensionWriter();
       extensionWriter.writeUntil(200, output);
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -8944,7 +9552,7 @@ public int getSerializedSize() {
 
       size = 0;
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -8959,7 +9567,7 @@ public boolean equals(final java.lang.Object obj) {
       }
       org.drools.serialization.protobuf.ProtobufMessages.ProcessData other = (org.drools.serialization.protobuf.ProtobufMessages.ProcessData) obj;
 
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       if (!getExtensionFields().equals(other.getExtensionFields()))
         return false;
       return true;
@@ -8973,7 +9581,7 @@ public int hashCode() {
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = hashFields(hash, getExtensionFields());
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -9091,13 +9699,18 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.ProcessData.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
@@ -9132,6 +9745,65 @@ public org.drools.serialization.protobuf.ProtobufMessages.ProcessData buildParti
         return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData, Type> extension,
+          Type value) {
+        return super.setExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder setExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData, java.util.List> extension,
+          int index, Type value) {
+        return super.setExtension(extension, index, value);
+      }
+      @java.lang.Override
+      public  Builder addExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData, java.util.List> extension,
+          Type value) {
+        return super.addExtension(extension, value);
+      }
+      @java.lang.Override
+      public  Builder clearExtension(
+          com.google.protobuf.GeneratedMessage.GeneratedExtension<
+              org.drools.serialization.protobuf.ProtobufMessages.ProcessData, ?> extension) {
+        return super.clearExtension(extension);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ProcessData) {
@@ -9145,7 +9817,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.ProcessData other) {
         if (other == org.drools.serialization.protobuf.ProtobufMessages.ProcessData.getDefaultInstance()) return this;
         this.mergeExtensionFields(other);
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -9163,30 +9835,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.ProcessData parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ProcessData) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       @java.lang.Override
@@ -9222,18 +9881,7 @@ public ProcessData parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new ProcessData(input, extensionRegistry);
       }
     };
 
@@ -9428,6 +10076,120 @@ protected java.lang.Object newInstance(
       return new Agenda();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Agenda(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              dormantActivations_ = input.readInt32();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              activeActivations_ = input.readInt32();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                agendaGroup_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              agendaGroup_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.PARSER, extensionRegistry));
+              break;
+            }
+            case 34: {
+              org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = focusStack_.toBuilder();
+              }
+              focusStack_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(focusStack_);
+                focusStack_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+                ruleFlowGroup_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000010;
+              }
+              ruleFlowGroup_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.PARSER, extensionRegistry));
+              break;
+            }
+            case 50: {
+              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
+                match_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000020;
+              }
+              match_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry));
+              break;
+            }
+            case 58: {
+              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
+                ruleActivation_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000040;
+              }
+              ruleActivation_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          agendaGroup_ = java.util.Collections.unmodifiableList(agendaGroup_);
+        }
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
+          ruleFlowGroup_ = java.util.Collections.unmodifiableList(ruleFlowGroup_);
+        }
+        if (((mutable_bitField0_ & 0x00000020) != 0)) {
+          match_ = java.util.Collections.unmodifiableList(match_);
+        }
+        if (((mutable_bitField0_ & 0x00000040) != 0)) {
+          ruleActivation_ = java.util.Collections.unmodifiableList(ruleActivation_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_descriptor;
@@ -9590,6 +10352,104 @@ protected java.lang.Object newInstance(
         return new AgendaGroup();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private AgendaGroup(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000001;
+                name_ = bs;
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                isActive_ = input.readBool();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                isAutoDeactivate_ = input.readBool();
+                break;
+              }
+              case 32: {
+                bitField0_ |= 0x00000008;
+                activatedForRecency_ = input.readInt64();
+                break;
+              }
+              case 40: {
+                bitField0_ |= 0x00000010;
+                clearedForRecency_ = input.readInt64();
+                break;
+              }
+              case 50: {
+                if (!((mutable_bitField0_ & 0x00000020) != 0)) {
+                  match_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000020;
+                }
+                match_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry));
+                break;
+              }
+              case 58: {
+                if (!((mutable_bitField0_ & 0x00000040) != 0)) {
+                  nodeInstance_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000040;
+                }
+                nodeInstance_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance.PARSER, extensionRegistry));
+                break;
+              }
+              case 64: {
+                bitField0_ |= 0x00000020;
+                hasRuleFlowLister_ = input.readBool();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000020) != 0)) {
+            match_ = java.util.Collections.unmodifiableList(match_);
+          }
+          if (((mutable_bitField0_ & 0x00000040) != 0)) {
+            nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_AgendaGroup_descriptor;
@@ -9676,6 +10536,66 @@ protected java.lang.Object newInstance(
           return new NodeInstance();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private NodeInstance(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 8: {
+                  bitField0_ |= 0x00000001;
+                  processInstanceId_ = input.readInt64();
+                  break;
+                }
+                case 18: {
+                  com.google.protobuf.ByteString bs = input.readBytes();
+                  bitField0_ |= 0x00000002;
+                  nodeInstanceId_ = bs;
+                  break;
+                }
+                case 26: {
+                  com.google.protobuf.ByteString bs = input.readBytes();
+                  bitField0_ |= 0x00000004;
+                  processInstanceStringId_ = bs;
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_AgendaGroup_NodeInstance_descriptor;
@@ -9691,7 +10611,7 @@ protected java.lang.Object newInstance(
 
         private int bitField0_;
         public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
-        private long processInstanceId_ = 0L;
+        private long processInstanceId_;
         /**
          * optional int64 process_instance_id = 1;
          * @return Whether the processInstanceId field is set.
@@ -9710,8 +10630,7 @@ public long getProcessInstanceId() {
         }
 
         public static final int NODE_INSTANCE_ID_FIELD_NUMBER = 2;
-        @SuppressWarnings("serial")
-        private volatile java.lang.Object nodeInstanceId_ = "";
+        private volatile java.lang.Object nodeInstanceId_;
         /**
          * optional string node_instance_id = 2;
          * @return Whether the nodeInstanceId field is set.
@@ -9759,8 +10678,7 @@ public java.lang.String getNodeInstanceId() {
         }
 
         public static final int PROCESS_INSTANCE_STRING_ID_FIELD_NUMBER = 3;
-        @SuppressWarnings("serial")
-        private volatile java.lang.Object processInstanceStringId_ = "";
+        private volatile java.lang.Object processInstanceStringId_;
         /**
          * optional string process_instance_string_id = 3;
          * @return Whether the processInstanceStringId field is set.
@@ -9830,7 +10748,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           if (((bitField0_ & 0x00000004) != 0)) {
             com.google.protobuf.GeneratedMessageV3.writeString(output, 3, processInstanceStringId_);
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -9849,7 +10767,7 @@ public int getSerializedSize() {
           if (((bitField0_ & 0x00000004) != 0)) {
             size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, processInstanceStringId_);
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -9879,7 +10797,7 @@ public boolean equals(final java.lang.Object obj) {
             if (!getProcessInstanceStringId()
                 .equals(other.getProcessInstanceStringId())) return false;
           }
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -9903,7 +10821,7 @@ public int hashCode() {
             hash = (37 * hash) + PROCESS_INSTANCE_STRING_ID_FIELD_NUMBER;
             hash = (53 * hash) + getProcessInstanceStringId().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -10020,21 +10938,28 @@ public static final class Builder extends
 
           // Construct using org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance.newBuilder()
           private Builder() {
-
+            maybeForceBuilderInitialization();
           }
 
           private Builder(
               com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
             super(parent);
-
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessageV3
+                    .alwaysUseFieldBuilders) {
+            }
           }
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
             processInstanceId_ = 0L;
+            bitField0_ = (bitField0_ & ~0x00000001);
             nodeInstanceId_ = "";
+            bitField0_ = (bitField0_ & ~0x00000002);
             processInstanceStringId_ = "";
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
 
@@ -10061,12 +10986,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Nod
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance(this);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance result) {
             int from_bitField0_ = bitField0_;
             int to_bitField0_ = 0;
             if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -10074,16 +10993,50 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ag
               to_bitField0_ |= 0x00000001;
             }
             if (((from_bitField0_ & 0x00000002) != 0)) {
-              result.nodeInstanceId_ = nodeInstanceId_;
               to_bitField0_ |= 0x00000002;
             }
+            result.nodeInstanceId_ = nodeInstanceId_;
             if (((from_bitField0_ & 0x00000004) != 0)) {
-              result.processInstanceStringId_ = processInstanceStringId_;
               to_bitField0_ |= 0x00000004;
             }
-            result.bitField0_ |= to_bitField0_;
+            result.processInstanceStringId_ = processInstanceStringId_;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
+          }
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance) {
@@ -10100,16 +11053,16 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
               setProcessInstanceId(other.getProcessInstanceId());
             }
             if (other.hasNodeInstanceId()) {
-              nodeInstanceId_ = other.nodeInstanceId_;
               bitField0_ |= 0x00000002;
+              nodeInstanceId_ = other.nodeInstanceId_;
               onChanged();
             }
             if (other.hasProcessInstanceStringId()) {
-              processInstanceStringId_ = other.processInstanceStringId_;
               bitField0_ |= 0x00000004;
+              processInstanceStringId_ = other.processInstanceStringId_;
               onChanged();
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -10124,45 +11077,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 8: {
-                    processInstanceId_ = input.readInt64();
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 8
-                  case 18: {
-                    nodeInstanceId_ = input.readBytes();
-                    bitField0_ |= 0x00000002;
-                    break;
-                  } // case 18
-                  case 26: {
-                    processInstanceStringId_ = input.readBytes();
-                    bitField0_ |= 0x00000004;
-                    break;
-                  } // case 26
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -10190,9 +11115,8 @@ public long getProcessInstanceId() {
            * @return This builder for chaining.
            */
           public Builder setProcessInstanceId(long value) {
-
-            processInstanceId_ = value;
             bitField0_ |= 0x00000001;
+            processInstanceId_ = value;
             onChanged();
             return this;
           }
@@ -10257,9 +11181,11 @@ public java.lang.String getNodeInstanceId() {
            */
           public Builder setNodeInstanceId(
               java.lang.String value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
             nodeInstanceId_ = value;
-            bitField0_ |= 0x00000002;
             onChanged();
             return this;
           }
@@ -10268,8 +11194,8 @@ public Builder setNodeInstanceId(
            * @return This builder for chaining.
            */
           public Builder clearNodeInstanceId() {
-            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             bitField0_ = (bitField0_ & ~0x00000002);
+            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             onChanged();
             return this;
           }
@@ -10280,9 +11206,11 @@ public Builder clearNodeInstanceId() {
            */
           public Builder setNodeInstanceIdBytes(
               com.google.protobuf.ByteString value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
             nodeInstanceId_ = value;
-            bitField0_ |= 0x00000002;
             onChanged();
             return this;
           }
@@ -10337,9 +11265,11 @@ public java.lang.String getProcessInstanceStringId() {
            */
           public Builder setProcessInstanceStringId(
               java.lang.String value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
             processInstanceStringId_ = value;
-            bitField0_ |= 0x00000004;
             onChanged();
             return this;
           }
@@ -10348,8 +11278,8 @@ public Builder setProcessInstanceStringId(
            * @return This builder for chaining.
            */
           public Builder clearProcessInstanceStringId() {
-            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             bitField0_ = (bitField0_ & ~0x00000004);
+            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             onChanged();
             return this;
           }
@@ -10360,9 +11290,11 @@ public Builder clearProcessInstanceStringId() {
            */
           public Builder setProcessInstanceStringIdBytes(
               com.google.protobuf.ByteString value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
             processInstanceStringId_ = value;
-            bitField0_ |= 0x00000004;
             onChanged();
             return this;
           }
@@ -10399,18 +11331,7 @@ public NodeInstance parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new NodeInstance(input, extensionRegistry);
           }
         };
 
@@ -10432,8 +11353,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Nod
 
       private int bitField0_;
       public static final int NAME_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object name_ = "";
+      private volatile java.lang.Object name_;
       /**
        * optional string name = 1;
        * @return Whether the name field is set.
@@ -10481,7 +11401,7 @@ public java.lang.String getName() {
       }
 
       public static final int IS_ACTIVE_FIELD_NUMBER = 2;
-      private boolean isActive_ = false;
+      private boolean isActive_;
       /**
        * optional bool is_active = 2;
        * @return Whether the isActive field is set.
@@ -10500,7 +11420,7 @@ public boolean getIsActive() {
       }
 
       public static final int IS_AUTO_DEACTIVATE_FIELD_NUMBER = 3;
-      private boolean isAutoDeactivate_ = false;
+      private boolean isAutoDeactivate_;
       /**
        * optional bool is_auto_deactivate = 3;
        * @return Whether the isAutoDeactivate field is set.
@@ -10519,7 +11439,7 @@ public boolean getIsAutoDeactivate() {
       }
 
       public static final int ACTIVATED_FOR_RECENCY_FIELD_NUMBER = 4;
-      private long activatedForRecency_ = 0L;
+      private long activatedForRecency_;
       /**
        * optional int64 activated_for_recency = 4;
        * @return Whether the activatedForRecency field is set.
@@ -10538,7 +11458,7 @@ public long getActivatedForRecency() {
       }
 
       public static final int CLEARED_FOR_RECENCY_FIELD_NUMBER = 5;
-      private long clearedForRecency_ = 0L;
+      private long clearedForRecency_;
       /**
        * optional int64 cleared_for_recency = 5;
        * @return Whether the clearedForRecency field is set.
@@ -10557,7 +11477,6 @@ public long getClearedForRecency() {
       }
 
       public static final int MATCH_FIELD_NUMBER = 6;
-      @SuppressWarnings("serial")
       private java.util.List match_;
       /**
        * repeated .org.drools.serialization.protobuf.Activation match = 6;
@@ -10598,7 +11517,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
       }
 
       public static final int NODE_INSTANCE_FIELD_NUMBER = 7;
-      @SuppressWarnings("serial")
       private java.util.List nodeInstance_;
       /**
        * repeated .org.drools.serialization.protobuf.Agenda.AgendaGroup.NodeInstance node_instance = 7;
@@ -10639,7 +11557,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Nod
       }
 
       public static final int HAS_RULE_FLOW_LISTER_FIELD_NUMBER = 8;
-      private boolean hasRuleFlowLister_ = false;
+      private boolean hasRuleFlowLister_;
       /**
        * optional bool has_rule_flow_lister = 8;
        * @return Whether the hasRuleFlowLister field is set.
@@ -10695,7 +11613,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000020) != 0)) {
           output.writeBool(8, hasRuleFlowLister_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -10735,7 +11653,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBoolSize(8, hasRuleFlowLister_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -10784,7 +11702,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getHasRuleFlowLister()
               != other.getHasRuleFlowLister()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -10832,7 +11750,7 @@ public int hashCode() {
           hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
               getHasRuleFlowLister());
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -10949,38 +11867,48 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getMatchFieldBuilder();
+            getNodeInstanceFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           name_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
           isActive_ = false;
+          bitField0_ = (bitField0_ & ~0x00000002);
           isAutoDeactivate_ = false;
+          bitField0_ = (bitField0_ & ~0x00000004);
           activatedForRecency_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000008);
           clearedForRecency_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000010);
           if (matchBuilder_ == null) {
             match_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000020);
           } else {
-            match_ = null;
             matchBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000020);
           if (nodeInstanceBuilder_ == null) {
             nodeInstance_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000040);
           } else {
-            nodeInstance_ = null;
             nodeInstanceBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000040);
           hasRuleFlowLister_ = false;
+          bitField0_ = (bitField0_ & ~0x00000080);
           return this;
         }
 
@@ -11007,40 +11935,12 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup result) {
-          if (matchBuilder_ == null) {
-            if (((bitField0_ & 0x00000020) != 0)) {
-              match_ = java.util.Collections.unmodifiableList(match_);
-              bitField0_ = (bitField0_ & ~0x00000020);
-            }
-            result.match_ = match_;
-          } else {
-            result.match_ = matchBuilder_.build();
-          }
-          if (nodeInstanceBuilder_ == null) {
-            if (((bitField0_ & 0x00000040) != 0)) {
-              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
-              bitField0_ = (bitField0_ & ~0x00000040);
-            }
-            result.nodeInstance_ = nodeInstance_;
-          } else {
-            result.nodeInstance_ = nodeInstanceBuilder_.build();
-          }
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.name_ = name_;
             to_bitField0_ |= 0x00000001;
           }
+          result.name_ = name_;
           if (((from_bitField0_ & 0x00000002) != 0)) {
             result.isActive_ = isActive_;
             to_bitField0_ |= 0x00000002;
@@ -11057,13 +11957,65 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ag
             result.clearedForRecency_ = clearedForRecency_;
             to_bitField0_ |= 0x00000010;
           }
+          if (matchBuilder_ == null) {
+            if (((bitField0_ & 0x00000020) != 0)) {
+              match_ = java.util.Collections.unmodifiableList(match_);
+              bitField0_ = (bitField0_ & ~0x00000020);
+            }
+            result.match_ = match_;
+          } else {
+            result.match_ = matchBuilder_.build();
+          }
+          if (nodeInstanceBuilder_ == null) {
+            if (((bitField0_ & 0x00000040) != 0)) {
+              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
+              bitField0_ = (bitField0_ & ~0x00000040);
+            }
+            result.nodeInstance_ = nodeInstance_;
+          } else {
+            result.nodeInstance_ = nodeInstanceBuilder_.build();
+          }
           if (((from_bitField0_ & 0x00000080) != 0)) {
             result.hasRuleFlowLister_ = hasRuleFlowLister_;
             to_bitField0_ |= 0x00000020;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup) {
@@ -11077,8 +12029,8 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
         public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup other) {
           if (other == org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.getDefaultInstance()) return this;
           if (other.hasName()) {
-            name_ = other.name_;
             bitField0_ |= 0x00000001;
+            name_ = other.name_;
             onChanged();
           }
           if (other.hasIsActive()) {
@@ -11148,7 +12100,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
           if (other.hasHasRuleFlowLister()) {
             setHasRuleFlowLister(other.getHasRuleFlowLister());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -11163,86 +12115,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  name_ = input.readBytes();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                case 16: {
-                  isActive_ = input.readBool();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  isAutoDeactivate_ = input.readBool();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 32: {
-                  activatedForRecency_ = input.readInt64();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 32
-                case 40: {
-                  clearedForRecency_ = input.readInt64();
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 40
-                case 50: {
-                  org.drools.serialization.protobuf.ProtobufMessages.Activation m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER,
-                          extensionRegistry);
-                  if (matchBuilder_ == null) {
-                    ensureMatchIsMutable();
-                    match_.add(m);
-                  } else {
-                    matchBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 50
-                case 58: {
-                  org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance.PARSER,
-                          extensionRegistry);
-                  if (nodeInstanceBuilder_ == null) {
-                    ensureNodeInstanceIsMutable();
-                    nodeInstance_.add(m);
-                  } else {
-                    nodeInstanceBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 58
-                case 64: {
-                  hasRuleFlowLister_ = input.readBool();
-                  bitField0_ |= 0x00000080;
-                  break;
-                } // case 64
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -11297,9 +12180,11 @@ public java.lang.String getName() {
          */
         public Builder setName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           name_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -11308,8 +12193,8 @@ public Builder setName(
          * @return This builder for chaining.
          */
         public Builder clearName() {
-          name_ = getDefaultInstance().getName();
           bitField0_ = (bitField0_ & ~0x00000001);
+          name_ = getDefaultInstance().getName();
           onChanged();
           return this;
         }
@@ -11320,9 +12205,11 @@ public Builder clearName() {
          */
         public Builder setNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           name_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -11350,9 +12237,8 @@ public boolean getIsActive() {
          * @return This builder for chaining.
          */
         public Builder setIsActive(boolean value) {
-
-          isActive_ = value;
           bitField0_ |= 0x00000002;
+          isActive_ = value;
           onChanged();
           return this;
         }
@@ -11390,9 +12276,8 @@ public boolean getIsAutoDeactivate() {
          * @return This builder for chaining.
          */
         public Builder setIsAutoDeactivate(boolean value) {
-
-          isAutoDeactivate_ = value;
           bitField0_ |= 0x00000004;
+          isAutoDeactivate_ = value;
           onChanged();
           return this;
         }
@@ -11430,9 +12315,8 @@ public long getActivatedForRecency() {
          * @return This builder for chaining.
          */
         public Builder setActivatedForRecency(long value) {
-
-          activatedForRecency_ = value;
           bitField0_ |= 0x00000008;
+          activatedForRecency_ = value;
           onChanged();
           return this;
         }
@@ -11470,9 +12354,8 @@ public long getClearedForRecency() {
          * @return This builder for chaining.
          */
         public Builder setClearedForRecency(long value) {
-
-          clearedForRecency_ = value;
           bitField0_ |= 0x00000010;
+          clearedForRecency_ = value;
           onChanged();
           return this;
         }
@@ -11491,7 +12374,7 @@ public Builder clearClearedForRecency() {
           java.util.Collections.emptyList();
         private void ensureMatchIsMutable() {
           if (!((bitField0_ & 0x00000020) != 0)) {
-            match_ = new java.util.ArrayList(match_);
+            match_ = new java.util.ArrayList<>(match_);
             bitField0_ |= 0x00000020;
            }
         }
@@ -11716,8 +12599,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
             org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
             getMatchFieldBuilder() {
           if (matchBuilder_ == null) {
-            matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+            matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     match_,
                     ((bitField0_ & 0x00000020) != 0),
                     getParentForChildren(),
@@ -11731,7 +12613,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
           java.util.Collections.emptyList();
         private void ensureNodeInstanceIsMutable() {
           if (!((bitField0_ & 0x00000040) != 0)) {
-            nodeInstance_ = new java.util.ArrayList(nodeInstance_);
+            nodeInstance_ = new java.util.ArrayList<>(nodeInstance_);
             bitField0_ |= 0x00000040;
            }
         }
@@ -11956,8 +12838,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Nod
             org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstanceOrBuilder> 
             getNodeInstanceFieldBuilder() {
           if (nodeInstanceBuilder_ == null) {
-            nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.NodeInstanceOrBuilder>(
+            nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     nodeInstance_,
                     ((bitField0_ & 0x00000040) != 0),
                     getParentForChildren(),
@@ -11990,9 +12871,8 @@ public boolean getHasRuleFlowLister() {
          * @return This builder for chaining.
          */
         public Builder setHasRuleFlowLister(boolean value) {
-
-          hasRuleFlowLister_ = value;
           bitField0_ |= 0x00000080;
+          hasRuleFlowLister_ = value;
           onChanged();
           return this;
         }
@@ -12039,18 +12919,7 @@ public AgendaGroup parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new AgendaGroup(input, extensionRegistry);
         }
       };
 
@@ -12112,8 +12981,7 @@ private FocusStack(com.google.protobuf.GeneratedMessageV3.Builder builder) {
         super(builder);
       }
       private FocusStack() {
-        groupName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        groupName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
       }
 
       @java.lang.Override
@@ -12123,6 +12991,61 @@ protected java.lang.Object newInstance(
         return new FocusStack();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private FocusStack(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  groupName_ = new com.google.protobuf.LazyStringArrayList();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                groupName_.add(bs);
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000001) != 0)) {
+            groupName_ = groupName_.getUnmodifiableView();
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_FocusStack_descriptor;
@@ -12137,9 +13060,7 @@ protected java.lang.Object newInstance(
       }
 
       public static final int GROUP_NAME_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private com.google.protobuf.LazyStringArrayList groupName_ =
-          com.google.protobuf.LazyStringArrayList.emptyList();
+      private com.google.protobuf.LazyStringList groupName_;
       /**
        * repeated string group_name = 1;
        * @return A list containing the groupName.
@@ -12190,7 +13111,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < groupName_.size(); i++) {
           com.google.protobuf.GeneratedMessageV3.writeString(output, 1, groupName_.getRaw(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -12207,7 +13128,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getGroupNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -12224,7 +13145,7 @@ public boolean equals(final java.lang.Object obj) {
 
         if (!getGroupNameList()
             .equals(other.getGroupNameList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -12239,7 +13160,7 @@ public int hashCode() {
           hash = (37 * hash) + GROUP_NAME_FIELD_NUMBER;
           hash = (53 * hash) + getGroupNameList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -12356,20 +13277,24 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
-          groupName_ =
-              com.google.protobuf.LazyStringArrayList.emptyList();
+          groupName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -12396,19 +13321,48 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack buil
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
+          int from_bitField0_ = bitField0_;
+          if (((bitField0_ & 0x00000001) != 0)) {
+            groupName_ = groupName_.getUnmodifiableView();
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.groupName_ = groupName_;
           onBuilt();
           return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack result) {
-          int from_bitField0_ = bitField0_;
-          if (((from_bitField0_ & 0x00000001) != 0)) {
-            groupName_.makeImmutable();
-            result.groupName_ = groupName_;
-          }
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack) {
@@ -12424,14 +13378,14 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
           if (!other.groupName_.isEmpty()) {
             if (groupName_.isEmpty()) {
               groupName_ = other.groupName_;
-              bitField0_ |= 0x00000001;
+              bitField0_ = (bitField0_ & ~0x00000001);
             } else {
               ensureGroupNameIsMutable();
               groupName_.addAll(other.groupName_);
             }
             onChanged();
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -12446,47 +13400,27 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  com.google.protobuf.ByteString bs = input.readBytes();
-                  ensureGroupNameIsMutable();
-                  groupName_.add(bs);
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
 
-        private com.google.protobuf.LazyStringArrayList groupName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        private com.google.protobuf.LazyStringList groupName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
         private void ensureGroupNameIsMutable() {
-          if (!groupName_.isModifiable()) {
+          if (!((bitField0_ & 0x00000001) != 0)) {
             groupName_ = new com.google.protobuf.LazyStringArrayList(groupName_);
-          }
-          bitField0_ |= 0x00000001;
+            bitField0_ |= 0x00000001;
+           }
         }
         /**
          * repeated string group_name = 1;
@@ -12494,8 +13428,7 @@ private void ensureGroupNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getGroupNameList() {
-          groupName_.makeImmutable();
-          return groupName_;
+          return groupName_.getUnmodifiableView();
         }
         /**
          * repeated string group_name = 1;
@@ -12529,10 +13462,11 @@ public java.lang.String getGroupName(int index) {
          */
         public Builder setGroupName(
             int index, java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureGroupNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureGroupNameIsMutable();
           groupName_.set(index, value);
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -12543,10 +13477,11 @@ public Builder setGroupName(
          */
         public Builder addGroupName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureGroupNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureGroupNameIsMutable();
           groupName_.add(value);
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -12560,7 +13495,6 @@ public Builder addAllGroupName(
           ensureGroupNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, groupName_);
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -12569,9 +13503,8 @@ public Builder addAllGroupName(
          * @return This builder for chaining.
          */
         public Builder clearGroupName() {
-          groupName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);;
+          groupName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000001);
           onChanged();
           return this;
         }
@@ -12582,10 +13515,11 @@ public Builder clearGroupName() {
          */
         public Builder addGroupNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureGroupNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureGroupNameIsMutable();
           groupName_.add(value);
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -12622,18 +13556,7 @@ public FocusStack parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new FocusStack(input, extensionRegistry);
         }
       };
 
@@ -12769,6 +13692,89 @@ protected java.lang.Object newInstance(
         return new RuleFlowGroup();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private RuleFlowGroup(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000001;
+                name_ = bs;
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                isActive_ = input.readBool();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                isAutoDeactivate_ = input.readBool();
+                break;
+              }
+              case 34: {
+                if (!((mutable_bitField0_ & 0x00000008) != 0)) {
+                  match_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000008;
+                }
+                match_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry));
+                break;
+              }
+              case 42: {
+                if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+                  nodeInstance_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000010;
+                }
+                nodeInstance_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance.PARSER, extensionRegistry));
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000008) != 0)) {
+            match_ = java.util.Collections.unmodifiableList(match_);
+          }
+          if (((mutable_bitField0_ & 0x00000010) != 0)) {
+            nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_RuleFlowGroup_descriptor;
@@ -12855,6 +13861,66 @@ protected java.lang.Object newInstance(
           return new NodeInstance();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private NodeInstance(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 8: {
+                  bitField0_ |= 0x00000001;
+                  processInstanceId_ = input.readInt64();
+                  break;
+                }
+                case 18: {
+                  com.google.protobuf.ByteString bs = input.readBytes();
+                  bitField0_ |= 0x00000002;
+                  nodeInstanceId_ = bs;
+                  break;
+                }
+                case 26: {
+                  com.google.protobuf.ByteString bs = input.readBytes();
+                  bitField0_ |= 0x00000004;
+                  processInstanceStringId_ = bs;
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Agenda_RuleFlowGroup_NodeInstance_descriptor;
@@ -12870,7 +13936,7 @@ protected java.lang.Object newInstance(
 
         private int bitField0_;
         public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
-        private long processInstanceId_ = 0L;
+        private long processInstanceId_;
         /**
          * optional int64 process_instance_id = 1;
          * @return Whether the processInstanceId field is set.
@@ -12889,8 +13955,7 @@ public long getProcessInstanceId() {
         }
 
         public static final int NODE_INSTANCE_ID_FIELD_NUMBER = 2;
-        @SuppressWarnings("serial")
-        private volatile java.lang.Object nodeInstanceId_ = "";
+        private volatile java.lang.Object nodeInstanceId_;
         /**
          * optional string node_instance_id = 2;
          * @return Whether the nodeInstanceId field is set.
@@ -12938,8 +14003,7 @@ public java.lang.String getNodeInstanceId() {
         }
 
         public static final int PROCESS_INSTANCE_STRING_ID_FIELD_NUMBER = 3;
-        @SuppressWarnings("serial")
-        private volatile java.lang.Object processInstanceStringId_ = "";
+        private volatile java.lang.Object processInstanceStringId_;
         /**
          * optional string process_instance_string_id = 3;
          * @return Whether the processInstanceStringId field is set.
@@ -13009,7 +14073,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           if (((bitField0_ & 0x00000004) != 0)) {
             com.google.protobuf.GeneratedMessageV3.writeString(output, 3, processInstanceStringId_);
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -13028,7 +14092,7 @@ public int getSerializedSize() {
           if (((bitField0_ & 0x00000004) != 0)) {
             size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, processInstanceStringId_);
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -13058,7 +14122,7 @@ public boolean equals(final java.lang.Object obj) {
             if (!getProcessInstanceStringId()
                 .equals(other.getProcessInstanceStringId())) return false;
           }
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -13082,7 +14146,7 @@ public int hashCode() {
             hash = (37 * hash) + PROCESS_INSTANCE_STRING_ID_FIELD_NUMBER;
             hash = (53 * hash) + getProcessInstanceStringId().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -13199,21 +14263,28 @@ public static final class Builder extends
 
           // Construct using org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance.newBuilder()
           private Builder() {
-
+            maybeForceBuilderInitialization();
           }
 
           private Builder(
               com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
             super(parent);
-
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessageV3
+                    .alwaysUseFieldBuilders) {
+            }
           }
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
             processInstanceId_ = 0L;
+            bitField0_ = (bitField0_ & ~0x00000001);
             nodeInstanceId_ = "";
+            bitField0_ = (bitField0_ & ~0x00000002);
             processInstanceStringId_ = "";
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
 
@@ -13240,12 +14311,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.N
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance(this);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance result) {
             int from_bitField0_ = bitField0_;
             int to_bitField0_ = 0;
             if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -13253,16 +14318,50 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ag
               to_bitField0_ |= 0x00000001;
             }
             if (((from_bitField0_ & 0x00000002) != 0)) {
-              result.nodeInstanceId_ = nodeInstanceId_;
               to_bitField0_ |= 0x00000002;
             }
+            result.nodeInstanceId_ = nodeInstanceId_;
             if (((from_bitField0_ & 0x00000004) != 0)) {
-              result.processInstanceStringId_ = processInstanceStringId_;
               to_bitField0_ |= 0x00000004;
             }
-            result.bitField0_ |= to_bitField0_;
+            result.processInstanceStringId_ = processInstanceStringId_;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
+          }
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance) {
@@ -13279,16 +14378,16 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
               setProcessInstanceId(other.getProcessInstanceId());
             }
             if (other.hasNodeInstanceId()) {
-              nodeInstanceId_ = other.nodeInstanceId_;
               bitField0_ |= 0x00000002;
+              nodeInstanceId_ = other.nodeInstanceId_;
               onChanged();
             }
             if (other.hasProcessInstanceStringId()) {
-              processInstanceStringId_ = other.processInstanceStringId_;
               bitField0_ |= 0x00000004;
+              processInstanceStringId_ = other.processInstanceStringId_;
               onChanged();
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -13303,45 +14402,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 8: {
-                    processInstanceId_ = input.readInt64();
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 8
-                  case 18: {
-                    nodeInstanceId_ = input.readBytes();
-                    bitField0_ |= 0x00000002;
-                    break;
-                  } // case 18
-                  case 26: {
-                    processInstanceStringId_ = input.readBytes();
-                    bitField0_ |= 0x00000004;
-                    break;
-                  } // case 26
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -13369,9 +14440,8 @@ public long getProcessInstanceId() {
            * @return This builder for chaining.
            */
           public Builder setProcessInstanceId(long value) {
-
-            processInstanceId_ = value;
             bitField0_ |= 0x00000001;
+            processInstanceId_ = value;
             onChanged();
             return this;
           }
@@ -13436,9 +14506,11 @@ public java.lang.String getNodeInstanceId() {
            */
           public Builder setNodeInstanceId(
               java.lang.String value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
             nodeInstanceId_ = value;
-            bitField0_ |= 0x00000002;
             onChanged();
             return this;
           }
@@ -13447,8 +14519,8 @@ public Builder setNodeInstanceId(
            * @return This builder for chaining.
            */
           public Builder clearNodeInstanceId() {
-            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             bitField0_ = (bitField0_ & ~0x00000002);
+            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             onChanged();
             return this;
           }
@@ -13459,9 +14531,11 @@ public Builder clearNodeInstanceId() {
            */
           public Builder setNodeInstanceIdBytes(
               com.google.protobuf.ByteString value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
             nodeInstanceId_ = value;
-            bitField0_ |= 0x00000002;
             onChanged();
             return this;
           }
@@ -13516,9 +14590,11 @@ public java.lang.String getProcessInstanceStringId() {
            */
           public Builder setProcessInstanceStringId(
               java.lang.String value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
             processInstanceStringId_ = value;
-            bitField0_ |= 0x00000004;
             onChanged();
             return this;
           }
@@ -13527,8 +14603,8 @@ public Builder setProcessInstanceStringId(
            * @return This builder for chaining.
            */
           public Builder clearProcessInstanceStringId() {
-            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             bitField0_ = (bitField0_ & ~0x00000004);
+            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             onChanged();
             return this;
           }
@@ -13539,9 +14615,11 @@ public Builder clearProcessInstanceStringId() {
            */
           public Builder setProcessInstanceStringIdBytes(
               com.google.protobuf.ByteString value) {
-            if (value == null) { throw new NullPointerException(); }
+            if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
             processInstanceStringId_ = value;
-            bitField0_ |= 0x00000004;
             onChanged();
             return this;
           }
@@ -13578,18 +14656,7 @@ public NodeInstance parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new NodeInstance(input, extensionRegistry);
           }
         };
 
@@ -13611,8 +14678,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.N
 
       private int bitField0_;
       public static final int NAME_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object name_ = "";
+      private volatile java.lang.Object name_;
       /**
        * optional string name = 1;
        * @return Whether the name field is set.
@@ -13660,7 +14726,7 @@ public java.lang.String getName() {
       }
 
       public static final int IS_ACTIVE_FIELD_NUMBER = 2;
-      private boolean isActive_ = false;
+      private boolean isActive_;
       /**
        * optional bool is_active = 2;
        * @return Whether the isActive field is set.
@@ -13679,7 +14745,7 @@ public boolean getIsActive() {
       }
 
       public static final int IS_AUTO_DEACTIVATE_FIELD_NUMBER = 3;
-      private boolean isAutoDeactivate_ = false;
+      private boolean isAutoDeactivate_;
       /**
        * optional bool is_auto_deactivate = 3;
        * @return Whether the isAutoDeactivate field is set.
@@ -13698,7 +14764,6 @@ public boolean getIsAutoDeactivate() {
       }
 
       public static final int MATCH_FIELD_NUMBER = 4;
-      @SuppressWarnings("serial")
       private java.util.List match_;
       /**
        * repeated .org.drools.serialization.protobuf.Activation match = 4;
@@ -13739,7 +14804,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
       }
 
       public static final int NODE_INSTANCE_FIELD_NUMBER = 5;
-      @SuppressWarnings("serial")
       private java.util.List nodeInstance_;
       /**
        * repeated .org.drools.serialization.protobuf.Agenda.RuleFlowGroup.NodeInstance node_instance = 5;
@@ -13808,7 +14872,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < nodeInstance_.size(); i++) {
           output.writeMessage(5, nodeInstance_.get(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -13836,7 +14900,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(5, nodeInstance_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -13870,7 +14934,7 @@ public boolean equals(final java.lang.Object obj) {
             .equals(other.getMatchList())) return false;
         if (!getNodeInstanceList()
             .equals(other.getNodeInstanceList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -13903,7 +14967,7 @@ public int hashCode() {
           hash = (37 * hash) + NODE_INSTANCE_FIELD_NUMBER;
           hash = (53 * hash) + getNodeInstanceList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -14020,35 +15084,42 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getMatchFieldBuilder();
+            getNodeInstanceFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           name_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
           isActive_ = false;
+          bitField0_ = (bitField0_ & ~0x00000002);
           isAutoDeactivate_ = false;
+          bitField0_ = (bitField0_ & ~0x00000004);
           if (matchBuilder_ == null) {
             match_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000008);
           } else {
-            match_ = null;
             matchBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000008);
           if (nodeInstanceBuilder_ == null) {
             nodeInstance_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000010);
           } else {
-            nodeInstance_ = null;
             nodeInstanceBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000010);
           return this;
         }
 
@@ -14075,13 +15146,20 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup b
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup result) {
+          int from_bitField0_ = bitField0_;
+          int to_bitField0_ = 0;
+          if (((from_bitField0_ & 0x00000001) != 0)) {
+            to_bitField0_ |= 0x00000001;
+          }
+          result.name_ = name_;
+          if (((from_bitField0_ & 0x00000002) != 0)) {
+            result.isActive_ = isActive_;
+            to_bitField0_ |= 0x00000002;
+          }
+          if (((from_bitField0_ & 0x00000004) != 0)) {
+            result.isAutoDeactivate_ = isAutoDeactivate_;
+            to_bitField0_ |= 0x00000004;
+          }
           if (matchBuilder_ == null) {
             if (((bitField0_ & 0x00000008) != 0)) {
               match_ = java.util.Collections.unmodifiableList(match_);
@@ -14100,26 +15178,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
           } else {
             result.nodeInstance_ = nodeInstanceBuilder_.build();
           }
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup result) {
-          int from_bitField0_ = bitField0_;
-          int to_bitField0_ = 0;
-          if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.name_ = name_;
-            to_bitField0_ |= 0x00000001;
-          }
-          if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.isActive_ = isActive_;
-            to_bitField0_ |= 0x00000002;
-          }
-          if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.isAutoDeactivate_ = isAutoDeactivate_;
-            to_bitField0_ |= 0x00000004;
-          }
-          result.bitField0_ |= to_bitField0_;
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup) {
@@ -14133,8 +15228,8 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
         public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup other) {
           if (other == org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.getDefaultInstance()) return this;
           if (other.hasName()) {
-            name_ = other.name_;
             bitField0_ |= 0x00000001;
+            name_ = other.name_;
             onChanged();
           }
           if (other.hasIsActive()) {
@@ -14195,7 +15290,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -14210,71 +15305,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  name_ = input.readBytes();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                case 16: {
-                  isActive_ = input.readBool();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  isAutoDeactivate_ = input.readBool();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 34: {
-                  org.drools.serialization.protobuf.ProtobufMessages.Activation m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER,
-                          extensionRegistry);
-                  if (matchBuilder_ == null) {
-                    ensureMatchIsMutable();
-                    match_.add(m);
-                  } else {
-                    matchBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 34
-                case 42: {
-                  org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance.PARSER,
-                          extensionRegistry);
-                  if (nodeInstanceBuilder_ == null) {
-                    ensureNodeInstanceIsMutable();
-                    nodeInstance_.add(m);
-                  } else {
-                    nodeInstanceBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 42
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -14329,9 +15370,11 @@ public java.lang.String getName() {
          */
         public Builder setName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           name_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -14340,8 +15383,8 @@ public Builder setName(
          * @return This builder for chaining.
          */
         public Builder clearName() {
-          name_ = getDefaultInstance().getName();
           bitField0_ = (bitField0_ & ~0x00000001);
+          name_ = getDefaultInstance().getName();
           onChanged();
           return this;
         }
@@ -14352,9 +15395,11 @@ public Builder clearName() {
          */
         public Builder setNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           name_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -14382,9 +15427,8 @@ public boolean getIsActive() {
          * @return This builder for chaining.
          */
         public Builder setIsActive(boolean value) {
-
-          isActive_ = value;
           bitField0_ |= 0x00000002;
+          isActive_ = value;
           onChanged();
           return this;
         }
@@ -14422,9 +15466,8 @@ public boolean getIsAutoDeactivate() {
          * @return This builder for chaining.
          */
         public Builder setIsAutoDeactivate(boolean value) {
-
-          isAutoDeactivate_ = value;
           bitField0_ |= 0x00000004;
+          isAutoDeactivate_ = value;
           onChanged();
           return this;
         }
@@ -14443,7 +15486,7 @@ public Builder clearIsAutoDeactivate() {
           java.util.Collections.emptyList();
         private void ensureMatchIsMutable() {
           if (!((bitField0_ & 0x00000008) != 0)) {
-            match_ = new java.util.ArrayList(match_);
+            match_ = new java.util.ArrayList<>(match_);
             bitField0_ |= 0x00000008;
            }
         }
@@ -14668,8 +15711,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
             org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
             getMatchFieldBuilder() {
           if (matchBuilder_ == null) {
-            matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+            matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     match_,
                     ((bitField0_ & 0x00000008) != 0),
                     getParentForChildren(),
@@ -14683,7 +15725,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
           java.util.Collections.emptyList();
         private void ensureNodeInstanceIsMutable() {
           if (!((bitField0_ & 0x00000010) != 0)) {
-            nodeInstance_ = new java.util.ArrayList(nodeInstance_);
+            nodeInstance_ = new java.util.ArrayList<>(nodeInstance_);
             bitField0_ |= 0x00000010;
            }
         }
@@ -14908,8 +15950,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.N
             org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstanceOrBuilder> 
             getNodeInstanceFieldBuilder() {
           if (nodeInstanceBuilder_ == null) {
-            nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.NodeInstanceOrBuilder>(
+            nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     nodeInstance_,
                     ((bitField0_ & 0x00000010) != 0),
                     getParentForChildren(),
@@ -14951,18 +15992,7 @@ public RuleFlowGroup parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new RuleFlowGroup(input, extensionRegistry);
         }
       };
 
@@ -14984,7 +16014,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup g
 
     private int bitField0_;
     public static final int DORMANT_ACTIVATIONS_FIELD_NUMBER = 1;
-    private int dormantActivations_ = 0;
+    private int dormantActivations_;
     /**
      * 
      * these 2 fields are just for information
@@ -15011,7 +16041,7 @@ public int getDormantActivations() {
     }
 
     public static final int ACTIVE_ACTIVATIONS_FIELD_NUMBER = 2;
-    private int activeActivations_ = 0;
+    private int activeActivations_;
     /**
      * optional int32 active_activations = 2;
      * @return Whether the activeActivations field is set.
@@ -15030,7 +16060,6 @@ public int getActiveActivations() {
     }
 
     public static final int AGENDA_GROUP_FIELD_NUMBER = 3;
-    @SuppressWarnings("serial")
     private java.util.List agendaGroup_;
     /**
      * repeated .org.drools.serialization.protobuf.Agenda.AgendaGroup agenda_group = 3;
@@ -15097,7 +16126,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStackOrBui
     }
 
     public static final int RULE_FLOW_GROUP_FIELD_NUMBER = 5;
-    @SuppressWarnings("serial")
     private java.util.List ruleFlowGroup_;
     /**
      * repeated .org.drools.serialization.protobuf.Agenda.RuleFlowGroup rule_flow_group = 5;
@@ -15138,7 +16166,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroupOr
     }
 
     public static final int MATCH_FIELD_NUMBER = 6;
-    @SuppressWarnings("serial")
     private java.util.List match_;
     /**
      * repeated .org.drools.serialization.protobuf.Activation match = 6;
@@ -15179,7 +16206,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
     }
 
     public static final int RULE_ACTIVATION_FIELD_NUMBER = 7;
-    @SuppressWarnings("serial")
     private java.util.List ruleActivation_;
     /**
      * repeated .org.drools.serialization.protobuf.Activation rule_activation = 7;
@@ -15254,7 +16280,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < ruleActivation_.size(); i++) {
         output.writeMessage(7, ruleActivation_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -15291,7 +16317,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(7, ruleActivation_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -15329,7 +16355,7 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getMatchList())) return false;
       if (!getRuleActivationList()
           .equals(other.getRuleActivationList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -15368,7 +16394,7 @@ public int hashCode() {
         hash = (37 * hash) + RULE_ACTIVATION_FIELD_NUMBER;
         hash = (53 * hash) + getRuleActivationList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -15510,42 +16536,40 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         dormantActivations_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
         activeActivations_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
         if (agendaGroupBuilder_ == null) {
           agendaGroup_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
         } else {
-          agendaGroup_ = null;
           agendaGroupBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000004);
-        focusStack_ = null;
-        if (focusStackBuilder_ != null) {
-          focusStackBuilder_.dispose();
-          focusStackBuilder_ = null;
+        if (focusStackBuilder_ == null) {
+          focusStack_ = null;
+        } else {
+          focusStackBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000008);
         if (ruleFlowGroupBuilder_ == null) {
           ruleFlowGroup_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
-          ruleFlowGroup_ = null;
           ruleFlowGroupBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000010);
         if (matchBuilder_ == null) {
           match_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
         } else {
-          match_ = null;
           matchBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000020);
         if (ruleActivationBuilder_ == null) {
           ruleActivation_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000040);
         } else {
-          ruleActivation_ = null;
           ruleActivationBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000040);
         return this;
       }
 
@@ -15572,13 +16596,16 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Agenda buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Agenda result = new org.drools.serialization.protobuf.ProtobufMessages.Agenda(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Agenda result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.dormantActivations_ = dormantActivations_;
+          to_bitField0_ |= 0x00000001;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.activeActivations_ = activeActivations_;
+          to_bitField0_ |= 0x00000002;
+        }
         if (agendaGroupBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
             agendaGroup_ = java.util.Collections.unmodifiableList(agendaGroup_);
@@ -15588,6 +16615,14 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.agendaGroup_ = agendaGroupBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          if (focusStackBuilder_ == null) {
+            result.focusStack_ = focusStack_;
+          } else {
+            result.focusStack_ = focusStackBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000004;
+        }
         if (ruleFlowGroupBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0)) {
             ruleFlowGroup_ = java.util.Collections.unmodifiableList(ruleFlowGroup_);
@@ -15615,28 +16650,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.ruleActivation_ = ruleActivationBuilder_.build();
         }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Agenda result) {
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.dormantActivations_ = dormantActivations_;
-          to_bitField0_ |= 0x00000001;
-        }
-        if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.activeActivations_ = activeActivations_;
-          to_bitField0_ |= 0x00000002;
-        }
-        if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.focusStack_ = focusStackBuilder_ == null
-              ? focusStack_
-              : focusStackBuilder_.build();
-          to_bitField0_ |= 0x00000004;
-        }
-        result.bitField0_ |= to_bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Agenda) {
@@ -15762,7 +16812,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -15777,99 +16827,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Agenda parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                dormantActivations_ = input.readInt32();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 16: {
-                activeActivations_ = input.readInt32();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              case 26: {
-                org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.PARSER,
-                        extensionRegistry);
-                if (agendaGroupBuilder_ == null) {
-                  ensureAgendaGroupIsMutable();
-                  agendaGroup_.add(m);
-                } else {
-                  agendaGroupBuilder_.addMessage(m);
-                }
-                break;
-              } // case 26
-              case 34: {
-                input.readMessage(
-                    getFocusStackFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 34
-              case 42: {
-                org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.PARSER,
-                        extensionRegistry);
-                if (ruleFlowGroupBuilder_ == null) {
-                  ensureRuleFlowGroupIsMutable();
-                  ruleFlowGroup_.add(m);
-                } else {
-                  ruleFlowGroupBuilder_.addMessage(m);
-                }
-                break;
-              } // case 42
-              case 50: {
-                org.drools.serialization.protobuf.ProtobufMessages.Activation m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER,
-                        extensionRegistry);
-                if (matchBuilder_ == null) {
-                  ensureMatchIsMutable();
-                  match_.add(m);
-                } else {
-                  matchBuilder_.addMessage(m);
-                }
-                break;
-              } // case 50
-              case 58: {
-                org.drools.serialization.protobuf.ProtobufMessages.Activation m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER,
-                        extensionRegistry);
-                if (ruleActivationBuilder_ == null) {
-                  ensureRuleActivationIsMutable();
-                  ruleActivation_.add(m);
-                } else {
-                  ruleActivationBuilder_.addMessage(m);
-                }
-                break;
-              } // case 58
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Agenda) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -15909,9 +16877,8 @@ public int getDormantActivations() {
        * @return This builder for chaining.
        */
       public Builder setDormantActivations(int value) {
-
-        dormantActivations_ = value;
         bitField0_ |= 0x00000001;
+        dormantActivations_ = value;
         onChanged();
         return this;
       }
@@ -15953,9 +16920,8 @@ public int getActiveActivations() {
        * @return This builder for chaining.
        */
       public Builder setActiveActivations(int value) {
-
-        activeActivations_ = value;
         bitField0_ |= 0x00000002;
+        activeActivations_ = value;
         onChanged();
         return this;
       }
@@ -15974,7 +16940,7 @@ public Builder clearActiveActivations() {
         java.util.Collections.emptyList();
       private void ensureAgendaGroupIsMutable() {
         if (!((bitField0_ & 0x00000004) != 0)) {
-          agendaGroup_ = new java.util.ArrayList(agendaGroup_);
+          agendaGroup_ = new java.util.ArrayList<>(agendaGroup_);
           bitField0_ |= 0x00000004;
          }
       }
@@ -16199,8 +17165,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Bui
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroupOrBuilder> 
           getAgendaGroupFieldBuilder() {
         if (agendaGroupBuilder_ == null) {
-          agendaGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroup.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.AgendaGroupOrBuilder>(
+          agendaGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   agendaGroup_,
                   ((bitField0_ & 0x00000004) != 0),
                   getParentForChildren(),
@@ -16240,11 +17205,11 @@ public Builder setFocusStack(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           focusStack_ = value;
+          onChanged();
         } else {
           focusStackBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -16254,11 +17219,11 @@ public Builder setFocusStack(
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.Builder builderForValue) {
         if (focusStackBuilder_ == null) {
           focusStack_ = builderForValue.build();
+          onChanged();
         } else {
           focusStackBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -16267,30 +17232,31 @@ public Builder setFocusStack(
       public Builder mergeFocusStack(org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack value) {
         if (focusStackBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            focusStack_ != null &&
-            focusStack_ != org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.getDefaultInstance()) {
-            getFocusStackBuilder().mergeFrom(value);
+              focusStack_ != null &&
+              focusStack_ != org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.getDefaultInstance()) {
+            focusStack_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.newBuilder(focusStack_).mergeFrom(value).buildPartial();
           } else {
             focusStack_ = value;
           }
+          onChanged();
         } else {
           focusStackBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Agenda.FocusStack focus_stack = 4;
        */
       public Builder clearFocusStack() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        focusStack_ = null;
-        if (focusStackBuilder_ != null) {
-          focusStackBuilder_.dispose();
-          focusStackBuilder_ = null;
+        if (focusStackBuilder_ == null) {
+          focusStack_ = null;
+          onChanged();
+        } else {
+          focusStackBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -16319,8 +17285,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStackOrBui
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack, org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStackOrBuilder> 
           getFocusStackFieldBuilder() {
         if (focusStackBuilder_ == null) {
-          focusStackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack, org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStack.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStackOrBuilder>(
+          focusStackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getFocusStack(),
                   getParentForChildren(),
                   isClean());
@@ -16333,7 +17298,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.FocusStackOrBui
         java.util.Collections.emptyList();
       private void ensureRuleFlowGroupIsMutable() {
         if (!((bitField0_ & 0x00000010) != 0)) {
-          ruleFlowGroup_ = new java.util.ArrayList(ruleFlowGroup_);
+          ruleFlowGroup_ = new java.util.ArrayList<>(ruleFlowGroup_);
           bitField0_ |= 0x00000010;
          }
       }
@@ -16558,8 +17523,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.B
           org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroupOrBuilder> 
           getRuleFlowGroupFieldBuilder() {
         if (ruleFlowGroupBuilder_ == null) {
-          ruleFlowGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.Builder, org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroupOrBuilder>(
+          ruleFlowGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   ruleFlowGroup_,
                   ((bitField0_ & 0x00000010) != 0),
                   getParentForChildren(),
@@ -16573,7 +17537,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Agenda.RuleFlowGroup.B
         java.util.Collections.emptyList();
       private void ensureMatchIsMutable() {
         if (!((bitField0_ & 0x00000020) != 0)) {
-          match_ = new java.util.ArrayList(match_);
+          match_ = new java.util.ArrayList<>(match_);
           bitField0_ |= 0x00000020;
          }
       }
@@ -16798,8 +17762,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
           org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
           getMatchFieldBuilder() {
         if (matchBuilder_ == null) {
-          matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+          matchBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   match_,
                   ((bitField0_ & 0x00000020) != 0),
                   getParentForChildren(),
@@ -16813,7 +17776,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
         java.util.Collections.emptyList();
       private void ensureRuleActivationIsMutable() {
         if (!((bitField0_ & 0x00000040) != 0)) {
-          ruleActivation_ = new java.util.ArrayList(ruleActivation_);
+          ruleActivation_ = new java.util.ArrayList<>(ruleActivation_);
           bitField0_ |= 0x00000040;
          }
       }
@@ -17038,8 +18001,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder add
           org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
           getRuleActivationFieldBuilder() {
         if (ruleActivationBuilder_ == null) {
-          ruleActivationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+          ruleActivationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   ruleActivation_,
                   ((bitField0_ & 0x00000040) != 0),
                   getParentForChildren(),
@@ -17081,18 +18043,7 @@ public Agenda parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Agenda(input, extensionRegistry);
       }
     };
 
@@ -17221,6 +18172,118 @@ protected java.lang.Object newInstance(
       return new NodeMemory();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private NodeMemory(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              nodeId_ = input.readInt32();
+              break;
+            }
+            case 16: {
+              int rawValue = input.readEnum();
+                @SuppressWarnings("deprecation")
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType value = org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(2, rawValue);
+              } else {
+                bitField0_ |= 0x00000002;
+                nodeType_ = rawValue;
+              }
+              break;
+            }
+            case 26: {
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = accumulate_.toBuilder();
+              }
+              accumulate_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(accumulate_);
+                accumulate_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 34: {
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000008) != 0)) {
+                subBuilder = ria_.toBuilder();
+              }
+              ria_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(ria_);
+                ria_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+            case 42: {
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000010) != 0)) {
+                subBuilder = from_.toBuilder();
+              }
+              from_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(from_);
+                from_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000010;
+              break;
+            }
+            case 50: {
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000020) != 0)) {
+                subBuilder = queryElement_.toBuilder();
+              }
+              queryElement_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(queryElement_);
+                queryElement_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000020;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_descriptor;
@@ -17399,6 +18462,61 @@ protected java.lang.Object newInstance(
         return new AccumulateNodeMemory();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private AccumulateNodeMemory(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  context_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                context_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext.PARSER, extensionRegistry));
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000001) != 0)) {
+            context_ = java.util.Collections.unmodifiableList(context_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_AccumulateNodeMemory_descriptor;
@@ -17468,6 +18586,75 @@ protected java.lang.Object newInstance(
           return new AccumulateContext();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private AccumulateContext(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 10: {
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000001) != 0)) {
+                    subBuilder = tuple_.toBuilder();
+                  }
+                  tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(tuple_);
+                    tuple_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000001;
+                  break;
+                }
+                case 18: {
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000002) != 0)) {
+                    subBuilder = resultHandle_.toBuilder();
+                  }
+                  resultHandle_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(resultHandle_);
+                    resultHandle_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000002;
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_AccumulateNodeMemory_AccumulateContext_descriptor;
@@ -17554,7 +18741,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           if (((bitField0_ & 0x00000002) != 0)) {
             output.writeMessage(2, getResultHandle());
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -17571,7 +18758,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(2, getResultHandle());
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -17596,7 +18783,7 @@ public boolean equals(final java.lang.Object obj) {
             if (!getResultHandle()
                 .equals(other.getResultHandle())) return false;
           }
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -17615,7 +18802,7 @@ public int hashCode() {
             hash = (37 * hash) + RESULT_HANDLE_FIELD_NUMBER;
             hash = (53 * hash) + getResultHandle().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -17750,17 +18937,18 @@ private void maybeForceBuilderInitialization() {
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+            } else {
+              tupleBuilder_.clear();
             }
-            resultHandle_ = null;
-            if (resultHandleBuilder_ != null) {
-              resultHandleBuilder_.dispose();
-              resultHandleBuilder_ = null;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (resultHandleBuilder_ == null) {
+              resultHandle_ = null;
+            } else {
+              resultHandleBuilder_.clear();
             }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
 
@@ -17787,29 +18975,61 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateN
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext(this);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext result) {
             int from_bitField0_ = bitField0_;
             int to_bitField0_ = 0;
             if (((from_bitField0_ & 0x00000001) != 0)) {
-              result.tuple_ = tupleBuilder_ == null
-                  ? tuple_
-                  : tupleBuilder_.build();
+              if (tupleBuilder_ == null) {
+                result.tuple_ = tuple_;
+              } else {
+                result.tuple_ = tupleBuilder_.build();
+              }
               to_bitField0_ |= 0x00000001;
             }
             if (((from_bitField0_ & 0x00000002) != 0)) {
-              result.resultHandle_ = resultHandleBuilder_ == null
-                  ? resultHandle_
-                  : resultHandleBuilder_.build();
+              if (resultHandleBuilder_ == null) {
+                result.resultHandle_ = resultHandle_;
+              } else {
+                result.resultHandle_ = resultHandleBuilder_.build();
+              }
               to_bitField0_ |= 0x00000002;
             }
-            result.bitField0_ |= to_bitField0_;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
+          }
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext) {
@@ -17828,7 +19048,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
             if (other.hasResultHandle()) {
               mergeResultHandle(other.getResultHandle());
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -17843,44 +19063,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 10: {
-                    input.readMessage(
-                        getTupleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 10
-                  case 18: {
-                    input.readMessage(
-                        getResultHandleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000002;
-                    break;
-                  } // case 18
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -17915,11 +19108,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
                 throw new NullPointerException();
               }
               tuple_ = value;
+              onChanged();
             } else {
               tupleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -17929,11 +19122,11 @@ public Builder setTuple(
               org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
             if (tupleBuilder_ == null) {
               tuple_ = builderForValue.build();
+              onChanged();
             } else {
               tupleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -17942,30 +19135,31 @@ public Builder setTuple(
           public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
             if (tupleBuilder_ == null) {
               if (((bitField0_ & 0x00000001) != 0) &&
-                tuple_ != null &&
-                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-                getTupleBuilder().mergeFrom(value);
+                  tuple_ != null &&
+                  tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+                tuple_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
               } else {
                 tuple_ = value;
               }
+              onChanged();
             } else {
               tupleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.Tuple tuple = 1;
            */
           public Builder clearTuple() {
-            bitField0_ = (bitField0_ & ~0x00000001);
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+              onChanged();
+            } else {
+              tupleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000001);
             return this;
           }
           /**
@@ -17994,8 +19188,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
               org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
               getTupleFieldBuilder() {
             if (tupleBuilder_ == null) {
-              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getTuple(),
                       getParentForChildren(),
                       isClean());
@@ -18034,11 +19227,11 @@ public Builder setResultHandle(org.drools.serialization.protobuf.ProtobufMessage
                 throw new NullPointerException();
               }
               resultHandle_ = value;
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -18048,11 +19241,11 @@ public Builder setResultHandle(
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder builderForValue) {
             if (resultHandleBuilder_ == null) {
               resultHandle_ = builderForValue.build();
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -18061,30 +19254,31 @@ public Builder setResultHandle(
           public Builder mergeResultHandle(org.drools.serialization.protobuf.ProtobufMessages.FactHandle value) {
             if (resultHandleBuilder_ == null) {
               if (((bitField0_ & 0x00000002) != 0) &&
-                resultHandle_ != null &&
-                resultHandle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
-                getResultHandleBuilder().mergeFrom(value);
+                  resultHandle_ != null &&
+                  resultHandle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
+                resultHandle_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.newBuilder(resultHandle_).mergeFrom(value).buildPartial();
               } else {
                 resultHandle_ = value;
               }
+              onChanged();
             } else {
               resultHandleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.FactHandle result_handle = 2;
            */
           public Builder clearResultHandle() {
-            bitField0_ = (bitField0_ & ~0x00000002);
-            resultHandle_ = null;
-            if (resultHandleBuilder_ != null) {
-              resultHandleBuilder_.dispose();
-              resultHandleBuilder_ = null;
+            if (resultHandleBuilder_ == null) {
+              resultHandle_ = null;
+              onChanged();
+            } else {
+              resultHandleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
           /**
@@ -18113,8 +19307,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
               getResultHandleFieldBuilder() {
             if (resultHandleBuilder_ == null) {
-              resultHandleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+              resultHandleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getResultHandle(),
                       getParentForChildren(),
                       isClean());
@@ -18155,18 +19348,7 @@ public AccumulateContext parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new AccumulateContext(input, extensionRegistry);
           }
         };
 
@@ -18187,7 +19369,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateN
       }
 
       public static final int CONTEXT_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
       private java.util.List context_;
       /**
        * repeated .org.drools.serialization.protobuf.NodeMemory.AccumulateNodeMemory.AccumulateContext context = 1;
@@ -18244,7 +19425,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < context_.size(); i++) {
           output.writeMessage(1, context_.get(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -18257,7 +19438,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -18274,7 +19455,7 @@ public boolean equals(final java.lang.Object obj) {
 
         if (!getContextList()
             .equals(other.getContextList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -18289,7 +19470,7 @@ public int hashCode() {
           hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
           hash = (53 * hash) + getContextList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -18406,25 +19587,29 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getContextFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           if (contextBuilder_ == null) {
             context_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            context_ = null;
             contextBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -18451,13 +19636,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateN
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory result) {
+          int from_bitField0_ = bitField0_;
           if (contextBuilder_ == null) {
             if (((bitField0_ & 0x00000001) != 0)) {
               context_ = java.util.Collections.unmodifiableList(context_);
@@ -18467,12 +19646,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
           } else {
             result.context_ = contextBuilder_.build();
           }
+          onBuilt();
+          return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory result) {
-          int from_bitField0_ = bitField0_;
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory) {
@@ -18511,7 +19720,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -18526,43 +19735,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext.PARSER,
-                          extensionRegistry);
-                  if (contextBuilder_ == null) {
-                    ensureContextIsMutable();
-                    context_.add(m);
-                  } else {
-                    contextBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -18571,7 +19754,7 @@ public Builder mergeFrom(
           java.util.Collections.emptyList();
         private void ensureContextIsMutable() {
           if (!((bitField0_ & 0x00000001) != 0)) {
-            context_ = new java.util.ArrayList(context_);
+            context_ = new java.util.ArrayList<>(context_);
             bitField0_ |= 0x00000001;
            }
         }
@@ -18796,8 +19979,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateN
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContextOrBuilder> 
             getContextFieldBuilder() {
           if (contextBuilder_ == null) {
-            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.AccumulateContextOrBuilder>(
+            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     context_,
                     ((bitField0_ & 0x00000001) != 0),
                     getParentForChildren(),
@@ -18839,18 +20021,7 @@ public AccumulateNodeMemory parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new AccumulateNodeMemory(input, extensionRegistry);
         }
       };
 
@@ -18921,6 +20092,61 @@ protected java.lang.Object newInstance(
         return new RIANodeMemory();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private RIANodeMemory(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  context_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                context_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext.PARSER, extensionRegistry));
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000001) != 0)) {
+            context_ = java.util.Collections.unmodifiableList(context_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_RIANodeMemory_descriptor;
@@ -18990,6 +20216,75 @@ protected java.lang.Object newInstance(
           return new RIAContext();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private RIAContext(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 10: {
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000001) != 0)) {
+                    subBuilder = tuple_.toBuilder();
+                  }
+                  tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(tuple_);
+                    tuple_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000001;
+                  break;
+                }
+                case 18: {
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000002) != 0)) {
+                    subBuilder = resultHandle_.toBuilder();
+                  }
+                  resultHandle_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(resultHandle_);
+                    resultHandle_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000002;
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_RIANodeMemory_RIAContext_descriptor;
@@ -19076,7 +20371,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           if (((bitField0_ & 0x00000002) != 0)) {
             output.writeMessage(2, getResultHandle());
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -19093,7 +20388,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(2, getResultHandle());
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -19118,7 +20413,7 @@ public boolean equals(final java.lang.Object obj) {
             if (!getResultHandle()
                 .equals(other.getResultHandle())) return false;
           }
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -19137,7 +20432,7 @@ public int hashCode() {
             hash = (37 * hash) + RESULT_HANDLE_FIELD_NUMBER;
             hash = (53 * hash) + getResultHandle().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -19272,17 +20567,18 @@ private void maybeForceBuilderInitialization() {
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+            } else {
+              tupleBuilder_.clear();
             }
-            resultHandle_ = null;
-            if (resultHandleBuilder_ != null) {
-              resultHandleBuilder_.dispose();
-              resultHandleBuilder_ = null;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (resultHandleBuilder_ == null) {
+              resultHandle_ = null;
+            } else {
+              resultHandleBuilder_.clear();
             }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
 
@@ -19309,29 +20605,61 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemo
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext(this);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext result) {
             int from_bitField0_ = bitField0_;
             int to_bitField0_ = 0;
             if (((from_bitField0_ & 0x00000001) != 0)) {
-              result.tuple_ = tupleBuilder_ == null
-                  ? tuple_
-                  : tupleBuilder_.build();
+              if (tupleBuilder_ == null) {
+                result.tuple_ = tuple_;
+              } else {
+                result.tuple_ = tupleBuilder_.build();
+              }
               to_bitField0_ |= 0x00000001;
             }
             if (((from_bitField0_ & 0x00000002) != 0)) {
-              result.resultHandle_ = resultHandleBuilder_ == null
-                  ? resultHandle_
-                  : resultHandleBuilder_.build();
+              if (resultHandleBuilder_ == null) {
+                result.resultHandle_ = resultHandle_;
+              } else {
+                result.resultHandle_ = resultHandleBuilder_.build();
+              }
               to_bitField0_ |= 0x00000002;
             }
-            result.bitField0_ |= to_bitField0_;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
+          }
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext) {
@@ -19350,7 +20678,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
             if (other.hasResultHandle()) {
               mergeResultHandle(other.getResultHandle());
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -19365,44 +20693,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 10: {
-                    input.readMessage(
-                        getTupleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 10
-                  case 18: {
-                    input.readMessage(
-                        getResultHandleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000002;
-                    break;
-                  } // case 18
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -19437,11 +20738,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
                 throw new NullPointerException();
               }
               tuple_ = value;
+              onChanged();
             } else {
               tupleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -19451,11 +20752,11 @@ public Builder setTuple(
               org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
             if (tupleBuilder_ == null) {
               tuple_ = builderForValue.build();
+              onChanged();
             } else {
               tupleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -19464,30 +20765,31 @@ public Builder setTuple(
           public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
             if (tupleBuilder_ == null) {
               if (((bitField0_ & 0x00000001) != 0) &&
-                tuple_ != null &&
-                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-                getTupleBuilder().mergeFrom(value);
+                  tuple_ != null &&
+                  tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+                tuple_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
               } else {
                 tuple_ = value;
               }
+              onChanged();
             } else {
               tupleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.Tuple tuple = 1;
            */
           public Builder clearTuple() {
-            bitField0_ = (bitField0_ & ~0x00000001);
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+              onChanged();
+            } else {
+              tupleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000001);
             return this;
           }
           /**
@@ -19516,8 +20818,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
               org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
               getTupleFieldBuilder() {
             if (tupleBuilder_ == null) {
-              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getTuple(),
                       getParentForChildren(),
                       isClean());
@@ -19556,11 +20857,11 @@ public Builder setResultHandle(org.drools.serialization.protobuf.ProtobufMessage
                 throw new NullPointerException();
               }
               resultHandle_ = value;
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -19570,11 +20871,11 @@ public Builder setResultHandle(
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder builderForValue) {
             if (resultHandleBuilder_ == null) {
               resultHandle_ = builderForValue.build();
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -19583,30 +20884,31 @@ public Builder setResultHandle(
           public Builder mergeResultHandle(org.drools.serialization.protobuf.ProtobufMessages.FactHandle value) {
             if (resultHandleBuilder_ == null) {
               if (((bitField0_ & 0x00000002) != 0) &&
-                resultHandle_ != null &&
-                resultHandle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
-                getResultHandleBuilder().mergeFrom(value);
+                  resultHandle_ != null &&
+                  resultHandle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
+                resultHandle_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.newBuilder(resultHandle_).mergeFrom(value).buildPartial();
               } else {
                 resultHandle_ = value;
               }
+              onChanged();
             } else {
               resultHandleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.FactHandle result_handle = 2;
            */
           public Builder clearResultHandle() {
-            bitField0_ = (bitField0_ & ~0x00000002);
-            resultHandle_ = null;
-            if (resultHandleBuilder_ != null) {
-              resultHandleBuilder_.dispose();
-              resultHandleBuilder_ = null;
+            if (resultHandleBuilder_ == null) {
+              resultHandle_ = null;
+              onChanged();
+            } else {
+              resultHandleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
           /**
@@ -19635,8 +20937,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
               getResultHandleFieldBuilder() {
             if (resultHandleBuilder_ == null) {
-              resultHandleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+              resultHandleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getResultHandle(),
                       getParentForChildren(),
                       isClean());
@@ -19677,18 +20978,7 @@ public RIAContext parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new RIAContext(input, extensionRegistry);
           }
         };
 
@@ -19709,7 +20999,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemo
       }
 
       public static final int CONTEXT_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
       private java.util.List context_;
       /**
        * repeated .org.drools.serialization.protobuf.NodeMemory.RIANodeMemory.RIAContext context = 1;
@@ -19766,7 +21055,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < context_.size(); i++) {
           output.writeMessage(1, context_.get(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -19779,7 +21068,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -19796,7 +21085,7 @@ public boolean equals(final java.lang.Object obj) {
 
         if (!getContextList()
             .equals(other.getContextList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -19811,7 +21100,7 @@ public int hashCode() {
           hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
           hash = (53 * hash) + getContextList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -19928,25 +21217,29 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getContextFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           if (contextBuilder_ == null) {
             context_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            context_ = null;
             contextBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -19973,13 +21266,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemo
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory result) {
+          int from_bitField0_ = bitField0_;
           if (contextBuilder_ == null) {
             if (((bitField0_ & 0x00000001) != 0)) {
               context_ = java.util.Collections.unmodifiableList(context_);
@@ -19989,12 +21276,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
           } else {
             result.context_ = contextBuilder_.build();
           }
+          onBuilt();
+          return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory result) {
-          int from_bitField0_ = bitField0_;
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory) {
@@ -20033,7 +21350,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -20048,43 +21365,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext.PARSER,
-                          extensionRegistry);
-                  if (contextBuilder_ == null) {
-                    ensureContextIsMutable();
-                    context_.add(m);
-                  } else {
-                    contextBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -20093,7 +21384,7 @@ public Builder mergeFrom(
           java.util.Collections.emptyList();
         private void ensureContextIsMutable() {
           if (!((bitField0_ & 0x00000001) != 0)) {
-            context_ = new java.util.ArrayList(context_);
+            context_ = new java.util.ArrayList<>(context_);
             bitField0_ |= 0x00000001;
            }
         }
@@ -20318,8 +21609,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemo
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContextOrBuilder> 
             getContextFieldBuilder() {
           if (contextBuilder_ == null) {
-            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.RIAContextOrBuilder>(
+            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     context_,
                     ((bitField0_ & 0x00000001) != 0),
                     getParentForChildren(),
@@ -20361,18 +21651,7 @@ public RIANodeMemory parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new RIANodeMemory(input, extensionRegistry);
         }
       };
 
@@ -20443,6 +21722,61 @@ protected java.lang.Object newInstance(
         return new FromNodeMemory();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private FromNodeMemory(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  context_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                context_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.PARSER, extensionRegistry));
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000001) != 0)) {
+            context_ = java.util.Collections.unmodifiableList(context_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_FromNodeMemory_descriptor;
@@ -20547,6 +21881,86 @@ protected java.lang.Object newInstance(
           return new FromContext();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private FromContext(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 10: {
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000001) != 0)) {
+                    subBuilder = tuple_.toBuilder();
+                  }
+                  tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(tuple_);
+                    tuple_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000001;
+                  break;
+                }
+                case 18: {
+                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                    handle_ = new java.util.ArrayList<>();
+                    mutable_bitField0_ |= 0x00000002;
+                  }
+                  handle_.add(
+                      input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry));
+                  break;
+                }
+                case 26: {
+                  if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                    object_ = new java.util.ArrayList<>();
+                    mutable_bitField0_ |= 0x00000004;
+                  }
+                  object_.add(
+                      input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject.PARSER, extensionRegistry));
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            if (((mutable_bitField0_ & 0x00000002) != 0)) {
+              handle_ = java.util.Collections.unmodifiableList(handle_);
+            }
+            if (((mutable_bitField0_ & 0x00000004) != 0)) {
+              object_ = java.util.Collections.unmodifiableList(object_);
+            }
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_FromNodeMemory_FromContext_descriptor;
@@ -20609,6 +22023,59 @@ protected java.lang.Object newInstance(
             return new FromObject();
           }
 
+          @java.lang.Override
+          public final com.google.protobuf.UnknownFieldSet
+          getUnknownFields() {
+            return this.unknownFields;
+          }
+          private FromObject(
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            this();
+            if (extensionRegistry == null) {
+              throw new java.lang.NullPointerException();
+            }
+            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;
+                  case 64: {
+                    bitField0_ |= 0x00000001;
+                    strategyIndex_ = input.readInt32();
+                    break;
+                  }
+                  case 74: {
+                    bitField0_ |= 0x00000002;
+                    object_ = input.readBytes();
+                    break;
+                  }
+                  default: {
+                    if (!parseUnknownField(
+                        input, unknownFields, extensionRegistry, tag)) {
+                      done = true;
+                    }
+                    break;
+                  }
+                }
+              }
+            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              throw e.setUnfinishedMessage(this);
+            } catch (java.io.IOException e) {
+              throw new com.google.protobuf.InvalidProtocolBufferException(
+                  e).setUnfinishedMessage(this);
+            } finally {
+              this.unknownFields = unknownFields.build();
+              makeExtensionsImmutable();
+            }
+          }
           public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_FromNodeMemory_FromContext_FromObject_descriptor;
@@ -20624,7 +22091,7 @@ protected java.lang.Object newInstance(
 
           private int bitField0_;
           public static final int STRATEGY_INDEX_FIELD_NUMBER = 8;
-          private int strategyIndex_ = 0;
+          private int strategyIndex_;
           /**
            * optional int32 strategy_index = 8;
            * @return Whether the strategyIndex field is set.
@@ -20643,7 +22110,7 @@ public int getStrategyIndex() {
           }
 
           public static final int OBJECT_FIELD_NUMBER = 9;
-          private com.google.protobuf.ByteString object_ = com.google.protobuf.ByteString.EMPTY;
+          private com.google.protobuf.ByteString object_;
           /**
            * optional bytes object = 9;
            * @return Whether the object field is set.
@@ -20681,7 +22148,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
             if (((bitField0_ & 0x00000002) != 0)) {
               output.writeBytes(9, object_);
             }
-            getUnknownFields().writeTo(output);
+            unknownFields.writeTo(output);
           }
 
           @java.lang.Override
@@ -20698,7 +22165,7 @@ public int getSerializedSize() {
               size += com.google.protobuf.CodedOutputStream
                 .computeBytesSize(9, object_);
             }
-            size += getUnknownFields().getSerializedSize();
+            size += unknownFields.getSerializedSize();
             memoizedSize = size;
             return size;
           }
@@ -20723,7 +22190,7 @@ public boolean equals(final java.lang.Object obj) {
               if (!getObject()
                   .equals(other.getObject())) return false;
             }
-            if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+            if (!unknownFields.equals(other.unknownFields)) return false;
             return true;
           }
 
@@ -20742,7 +22209,7 @@ public int hashCode() {
               hash = (37 * hash) + OBJECT_FIELD_NUMBER;
               hash = (53 * hash) + getObject().hashCode();
             }
-            hash = (29 * hash) + getUnknownFields().hashCode();
+            hash = (29 * hash) + unknownFields.hashCode();
             memoizedHashCode = hash;
             return hash;
           }
@@ -20859,20 +22326,26 @@ public static final class Builder extends
 
             // Construct using org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject.newBuilder()
             private Builder() {
-
+              maybeForceBuilderInitialization();
             }
 
             private Builder(
                 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
               super(parent);
-
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessageV3
+                      .alwaysUseFieldBuilders) {
+              }
             }
             @java.lang.Override
             public Builder clear() {
               super.clear();
-              bitField0_ = 0;
               strategyIndex_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
               object_ = com.google.protobuf.ByteString.EMPTY;
+              bitField0_ = (bitField0_ & ~0x00000002);
               return this;
             }
 
@@ -20899,12 +22372,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
             @java.lang.Override
             public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject buildPartial() {
               org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject(this);
-              if (bitField0_ != 0) { buildPartial0(result); }
-              onBuilt();
-              return result;
-            }
-
-            private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject result) {
               int from_bitField0_ = bitField0_;
               int to_bitField0_ = 0;
               if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -20912,12 +22379,46 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.No
                 to_bitField0_ |= 0x00000001;
               }
               if (((from_bitField0_ & 0x00000002) != 0)) {
-                result.object_ = object_;
                 to_bitField0_ |= 0x00000002;
               }
-              result.bitField0_ |= to_bitField0_;
+              result.object_ = object_;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
 
+            @java.lang.Override
+            public Builder clone() {
+              return super.clone();
+            }
+            @java.lang.Override
+            public Builder setField(
+                com.google.protobuf.Descriptors.FieldDescriptor field,
+                java.lang.Object value) {
+              return super.setField(field, value);
+            }
+            @java.lang.Override
+            public Builder clearField(
+                com.google.protobuf.Descriptors.FieldDescriptor field) {
+              return super.clearField(field);
+            }
+            @java.lang.Override
+            public Builder clearOneof(
+                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+              return super.clearOneof(oneof);
+            }
+            @java.lang.Override
+            public Builder setRepeatedField(
+                com.google.protobuf.Descriptors.FieldDescriptor field,
+                int index, java.lang.Object value) {
+              return super.setRepeatedField(field, index, value);
+            }
+            @java.lang.Override
+            public Builder addRepeatedField(
+                com.google.protobuf.Descriptors.FieldDescriptor field,
+                java.lang.Object value) {
+              return super.addRepeatedField(field, value);
+            }
             @java.lang.Override
             public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject) {
@@ -20936,7 +22437,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               if (other.hasObject()) {
                 setObject(other.getObject());
               }
-              this.mergeUnknownFields(other.getUnknownFields());
+              this.mergeUnknownFields(other.unknownFields);
               onChanged();
               return this;
             }
@@ -20951,40 +22452,17 @@ public Builder mergeFrom(
                 com.google.protobuf.CodedInputStream input,
                 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              if (extensionRegistry == null) {
-                throw new java.lang.NullPointerException();
-              }
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject parsedMessage = null;
               try {
-                boolean done = false;
-                while (!done) {
-                  int tag = input.readTag();
-                  switch (tag) {
-                    case 0:
-                      done = true;
-                      break;
-                    case 64: {
-                      strategyIndex_ = input.readInt32();
-                      bitField0_ |= 0x00000001;
-                      break;
-                    } // case 64
-                    case 74: {
-                      object_ = input.readBytes();
-                      bitField0_ |= 0x00000002;
-                      break;
-                    } // case 74
-                    default: {
-                      if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                        done = true; // was an endgroup tag
-                      }
-                      break;
-                    } // default:
-                  } // switch (tag)
-                } // while (!done)
+                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
               } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+                parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject) e.getUnfinishedMessage();
                 throw e.unwrapIOException();
               } finally {
-                onChanged();
-              } // finally
+                if (parsedMessage != null) {
+                  mergeFrom(parsedMessage);
+                }
+              }
               return this;
             }
             private int bitField0_;
@@ -21012,9 +22490,8 @@ public int getStrategyIndex() {
              * @return This builder for chaining.
              */
             public Builder setStrategyIndex(int value) {
-
-              strategyIndex_ = value;
               bitField0_ |= 0x00000001;
+              strategyIndex_ = value;
               onChanged();
               return this;
             }
@@ -21052,9 +22529,11 @@ public com.google.protobuf.ByteString getObject() {
              * @return This builder for chaining.
              */
             public Builder setObject(com.google.protobuf.ByteString value) {
-              if (value == null) { throw new NullPointerException(); }
+              if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
               object_ = value;
-              bitField0_ |= 0x00000002;
               onChanged();
               return this;
             }
@@ -21101,18 +22580,7 @@ public FromObject parsePartialFrom(
                 com.google.protobuf.CodedInputStream input,
                 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws com.google.protobuf.InvalidProtocolBufferException {
-              Builder builder = newBuilder();
-              try {
-                builder.mergeFrom(input, extensionRegistry);
-              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-                throw e.setUnfinishedMessage(builder.buildPartial());
-              } catch (com.google.protobuf.UninitializedMessageException e) {
-                throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-              } catch (java.io.IOException e) {
-                throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                    .setUnfinishedMessage(builder.buildPartial());
-              }
-              return builder.buildPartial();
+              return new FromObject(input, extensionRegistry);
             }
           };
 
@@ -21160,7 +22628,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
         }
 
         public static final int HANDLE_FIELD_NUMBER = 2;
-        @SuppressWarnings("serial")
         private java.util.List handle_;
         /**
          * repeated .org.drools.serialization.protobuf.FactHandle handle = 2;
@@ -21201,7 +22668,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
         }
 
         public static final int OBJECT_FIELD_NUMBER = 3;
-        @SuppressWarnings("serial")
         private java.util.List object_;
         /**
          * repeated .org.drools.serialization.protobuf.NodeMemory.FromNodeMemory.FromContext.FromObject object = 3;
@@ -21264,7 +22730,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           for (int i = 0; i < object_.size(); i++) {
             output.writeMessage(3, object_.get(i));
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -21285,7 +22751,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(3, object_.get(i));
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -21309,7 +22775,7 @@ public boolean equals(final java.lang.Object obj) {
               .equals(other.getHandleList())) return false;
           if (!getObjectList()
               .equals(other.getObjectList())) return false;
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -21332,7 +22798,7 @@ public int hashCode() {
             hash = (37 * hash) + OBJECT_FIELD_NUMBER;
             hash = (53 * hash) + getObjectList().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -21468,26 +22934,24 @@ private void maybeForceBuilderInitialization() {
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+            } else {
+              tupleBuilder_.clear();
             }
+            bitField0_ = (bitField0_ & ~0x00000001);
             if (handleBuilder_ == null) {
               handle_ = java.util.Collections.emptyList();
+              bitField0_ = (bitField0_ & ~0x00000002);
             } else {
-              handle_ = null;
               handleBuilder_.clear();
             }
-            bitField0_ = (bitField0_ & ~0x00000002);
             if (objectBuilder_ == null) {
               object_ = java.util.Collections.emptyList();
+              bitField0_ = (bitField0_ & ~0x00000004);
             } else {
-              object_ = null;
               objectBuilder_.clear();
             }
-            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
 
@@ -21514,13 +22978,16 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext(this);
-            buildPartialRepeatedFields(result);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext result) {
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) != 0)) {
+              if (tupleBuilder_ == null) {
+                result.tuple_ = tuple_;
+              } else {
+                result.tuple_ = tupleBuilder_.build();
+              }
+              to_bitField0_ |= 0x00000001;
+            }
             if (handleBuilder_ == null) {
               if (((bitField0_ & 0x00000002) != 0)) {
                 handle_ = java.util.Collections.unmodifiableList(handle_);
@@ -21539,20 +23006,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
             } else {
               result.object_ = objectBuilder_.build();
             }
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext result) {
-            int from_bitField0_ = bitField0_;
-            int to_bitField0_ = 0;
-            if (((from_bitField0_ & 0x00000001) != 0)) {
-              result.tuple_ = tupleBuilder_ == null
-                  ? tuple_
-                  : tupleBuilder_.build();
-              to_bitField0_ |= 0x00000001;
-            }
-            result.bitField0_ |= to_bitField0_;
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
           }
-
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext) {
@@ -21620,7 +23110,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
                 }
               }
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -21635,63 +23125,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 10: {
-                    input.readMessage(
-                        getTupleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 10
-                  case 18: {
-                    org.drools.serialization.protobuf.ProtobufMessages.FactHandle m =
-                        input.readMessage(
-                            org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER,
-                            extensionRegistry);
-                    if (handleBuilder_ == null) {
-                      ensureHandleIsMutable();
-                      handle_.add(m);
-                    } else {
-                      handleBuilder_.addMessage(m);
-                    }
-                    break;
-                  } // case 18
-                  case 26: {
-                    org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject m =
-                        input.readMessage(
-                            org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject.PARSER,
-                            extensionRegistry);
-                    if (objectBuilder_ == null) {
-                      ensureObjectIsMutable();
-                      object_.add(m);
-                    } else {
-                      objectBuilder_.addMessage(m);
-                    }
-                    break;
-                  } // case 26
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -21726,11 +23170,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
                 throw new NullPointerException();
               }
               tuple_ = value;
+              onChanged();
             } else {
               tupleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -21740,11 +23184,11 @@ public Builder setTuple(
               org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
             if (tupleBuilder_ == null) {
               tuple_ = builderForValue.build();
+              onChanged();
             } else {
               tupleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -21753,30 +23197,31 @@ public Builder setTuple(
           public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
             if (tupleBuilder_ == null) {
               if (((bitField0_ & 0x00000001) != 0) &&
-                tuple_ != null &&
-                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-                getTupleBuilder().mergeFrom(value);
+                  tuple_ != null &&
+                  tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+                tuple_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
               } else {
                 tuple_ = value;
               }
+              onChanged();
             } else {
               tupleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.Tuple tuple = 1;
            */
           public Builder clearTuple() {
-            bitField0_ = (bitField0_ & ~0x00000001);
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+              onChanged();
+            } else {
+              tupleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000001);
             return this;
           }
           /**
@@ -21805,8 +23250,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
               org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
               getTupleFieldBuilder() {
             if (tupleBuilder_ == null) {
-              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getTuple(),
                       getParentForChildren(),
                       isClean());
@@ -21819,7 +23263,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
             java.util.Collections.emptyList();
           private void ensureHandleIsMutable() {
             if (!((bitField0_ & 0x00000002) != 0)) {
-              handle_ = new java.util.ArrayList(handle_);
+              handle_ = new java.util.ArrayList<>(handle_);
               bitField0_ |= 0x00000002;
              }
           }
@@ -22044,8 +23488,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder add
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
               getHandleFieldBuilder() {
             if (handleBuilder_ == null) {
-              handleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+              handleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                       handle_,
                       ((bitField0_ & 0x00000002) != 0),
                       getParentForChildren(),
@@ -22059,7 +23502,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder add
             java.util.Collections.emptyList();
           private void ensureObjectIsMutable() {
             if (!((bitField0_ & 0x00000004) != 0)) {
-              object_ = new java.util.ArrayList(object_);
+              object_ = new java.util.ArrayList<>(object_);
               bitField0_ |= 0x00000004;
              }
           }
@@ -22284,8 +23727,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
               org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObjectOrBuilder> 
               getObjectFieldBuilder() {
             if (objectBuilder_ == null) {
-              objectBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObject.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.FromObjectOrBuilder>(
+              objectBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                       object_,
                       ((bitField0_ & 0x00000004) != 0),
                       getParentForChildren(),
@@ -22327,18 +23769,7 @@ public FromContext parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new FromContext(input, extensionRegistry);
           }
         };
 
@@ -22359,7 +23790,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
       }
 
       public static final int CONTEXT_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
       private java.util.List context_;
       /**
        * repeated .org.drools.serialization.protobuf.NodeMemory.FromNodeMemory.FromContext context = 1;
@@ -22416,7 +23846,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < context_.size(); i++) {
           output.writeMessage(1, context_.get(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -22429,7 +23859,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -22446,7 +23876,7 @@ public boolean equals(final java.lang.Object obj) {
 
         if (!getContextList()
             .equals(other.getContextList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -22461,7 +23891,7 @@ public int hashCode() {
           hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
           hash = (53 * hash) + getContextList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -22578,25 +24008,29 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getContextFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           if (contextBuilder_ == null) {
             context_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            context_ = null;
             contextBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -22623,13 +24057,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory result) {
+          int from_bitField0_ = bitField0_;
           if (contextBuilder_ == null) {
             if (((bitField0_ & 0x00000001) != 0)) {
               context_ = java.util.Collections.unmodifiableList(context_);
@@ -22639,12 +24067,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
           } else {
             result.context_ = contextBuilder_.build();
           }
+          onBuilt();
+          return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory result) {
-          int from_bitField0_ = bitField0_;
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory) {
@@ -22683,7 +24141,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -22698,43 +24156,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.PARSER,
-                          extensionRegistry);
-                  if (contextBuilder_ == null) {
-                    ensureContextIsMutable();
-                    context_.add(m);
-                  } else {
-                    contextBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -22743,7 +24175,7 @@ public Builder mergeFrom(
           java.util.Collections.emptyList();
         private void ensureContextIsMutable() {
           if (!((bitField0_ & 0x00000001) != 0)) {
-            context_ = new java.util.ArrayList(context_);
+            context_ = new java.util.ArrayList<>(context_);
             bitField0_ |= 0x00000001;
            }
         }
@@ -22968,8 +24400,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContextOrBuilder> 
             getContextFieldBuilder() {
           if (contextBuilder_ == null) {
-            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.FromContextOrBuilder>(
+            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     context_,
                     ((bitField0_ & 0x00000001) != 0),
                     getParentForChildren(),
@@ -23011,18 +24442,7 @@ public FromNodeMemory parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new FromNodeMemory(input, extensionRegistry);
         }
       };
 
@@ -23093,6 +24513,61 @@ protected java.lang.Object newInstance(
         return new QueryElementNodeMemory();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private QueryElementNodeMemory(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  context_ = new java.util.ArrayList<>();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                context_.add(
+                    input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext.PARSER, extensionRegistry));
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000001) != 0)) {
+            context_ = java.util.Collections.unmodifiableList(context_);
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_QueryElementNodeMemory_descriptor;
@@ -23187,6 +24662,87 @@ protected java.lang.Object newInstance(
           return new QueryContext();
         }
 
+        @java.lang.Override
+        public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+          return this.unknownFields;
+        }
+        private QueryContext(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          this();
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
+          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;
+                case 10: {
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000001) != 0)) {
+                    subBuilder = tuple_.toBuilder();
+                  }
+                  tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(tuple_);
+                    tuple_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000001;
+                  break;
+                }
+                case 18: {
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder subBuilder = null;
+                  if (((bitField0_ & 0x00000002) != 0)) {
+                    subBuilder = handle_.toBuilder();
+                  }
+                  handle_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry);
+                  if (subBuilder != null) {
+                    subBuilder.mergeFrom(handle_);
+                    handle_ = subBuilder.buildPartial();
+                  }
+                  bitField0_ |= 0x00000002;
+                  break;
+                }
+                case 26: {
+                  if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                    result_ = new java.util.ArrayList<>();
+                    mutable_bitField0_ |= 0x00000004;
+                  }
+                  result_.add(
+                      input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry));
+                  break;
+                }
+                default: {
+                  if (!parseUnknownField(
+                      input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+              }
+            }
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(this);
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(
+                e).setUnfinishedMessage(this);
+          } finally {
+            if (((mutable_bitField0_ & 0x00000004) != 0)) {
+              result_ = java.util.Collections.unmodifiableList(result_);
+            }
+            this.unknownFields = unknownFields.build();
+            makeExtensionsImmutable();
+          }
+        }
         public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_NodeMemory_QueryElementNodeMemory_QueryContext_descriptor;
@@ -23254,7 +24810,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
         }
 
         public static final int RESULT_FIELD_NUMBER = 3;
-        @SuppressWarnings("serial")
         private java.util.List result_;
         /**
          * repeated .org.drools.serialization.protobuf.FactHandle result = 3;
@@ -23317,7 +24872,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           for (int i = 0; i < result_.size(); i++) {
             output.writeMessage(3, result_.get(i));
           }
-          getUnknownFields().writeTo(output);
+          unknownFields.writeTo(output);
         }
 
         @java.lang.Override
@@ -23338,7 +24893,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(3, result_.get(i));
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -23365,7 +24920,7 @@ public boolean equals(final java.lang.Object obj) {
           }
           if (!getResultList()
               .equals(other.getResultList())) return false;
-          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+          if (!unknownFields.equals(other.unknownFields)) return false;
           return true;
         }
 
@@ -23388,7 +24943,7 @@ public int hashCode() {
             hash = (37 * hash) + RESULT_FIELD_NUMBER;
             hash = (53 * hash) + getResultList().hashCode();
           }
-          hash = (29 * hash) + getUnknownFields().hashCode();
+          hash = (29 * hash) + unknownFields.hashCode();
           memoizedHashCode = hash;
           return hash;
         }
@@ -23524,24 +25079,24 @@ private void maybeForceBuilderInitialization() {
           @java.lang.Override
           public Builder clear() {
             super.clear();
-            bitField0_ = 0;
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+            } else {
+              tupleBuilder_.clear();
             }
-            handle_ = null;
-            if (handleBuilder_ != null) {
-              handleBuilder_.dispose();
-              handleBuilder_ = null;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (handleBuilder_ == null) {
+              handle_ = null;
+            } else {
+              handleBuilder_.clear();
             }
+            bitField0_ = (bitField0_ & ~0x00000002);
             if (resultBuilder_ == null) {
               result_ = java.util.Collections.emptyList();
+              bitField0_ = (bitField0_ & ~0x00000004);
             } else {
-              result_ = null;
               resultBuilder_.clear();
             }
-            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
 
@@ -23568,13 +25123,24 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
           @java.lang.Override
           public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext buildPartial() {
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext(this);
-            buildPartialRepeatedFields(result);
-            if (bitField0_ != 0) { buildPartial0(result); }
-            onBuilt();
-            return result;
-          }
-
-          private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext result) {
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) != 0)) {
+              if (tupleBuilder_ == null) {
+                result.tuple_ = tuple_;
+              } else {
+                result.tuple_ = tupleBuilder_.build();
+              }
+              to_bitField0_ |= 0x00000001;
+            }
+            if (((from_bitField0_ & 0x00000002) != 0)) {
+              if (handleBuilder_ == null) {
+                result.handle_ = handle_;
+              } else {
+                result.handle_ = handleBuilder_.build();
+              }
+              to_bitField0_ |= 0x00000002;
+            }
             if (resultBuilder_ == null) {
               if (((bitField0_ & 0x00000004) != 0)) {
                 result_ = java.util.Collections.unmodifiableList(result_);
@@ -23584,26 +25150,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
             } else {
               result.result_ = resultBuilder_.build();
             }
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
 
-          private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext result) {
-            int from_bitField0_ = bitField0_;
-            int to_bitField0_ = 0;
-            if (((from_bitField0_ & 0x00000001) != 0)) {
-              result.tuple_ = tupleBuilder_ == null
-                  ? tuple_
-                  : tupleBuilder_.build();
-              to_bitField0_ |= 0x00000001;
-            }
-            if (((from_bitField0_ & 0x00000002) != 0)) {
-              result.handle_ = handleBuilder_ == null
-                  ? handle_
-                  : handleBuilder_.build();
-              to_bitField0_ |= 0x00000002;
-            }
-            result.bitField0_ |= to_bitField0_;
+          @java.lang.Override
+          public Builder clone() {
+            return super.clone();
+          }
+          @java.lang.Override
+          public Builder setField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.setField(field, value);
+          }
+          @java.lang.Override
+          public Builder clearField(
+              com.google.protobuf.Descriptors.FieldDescriptor field) {
+            return super.clearField(field);
+          }
+          @java.lang.Override
+          public Builder clearOneof(
+              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+            return super.clearOneof(oneof);
+          }
+          @java.lang.Override
+          public Builder setRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              int index, java.lang.Object value) {
+            return super.setRepeatedField(field, index, value);
+          }
+          @java.lang.Override
+          public Builder addRepeatedField(
+              com.google.protobuf.Descriptors.FieldDescriptor field,
+              java.lang.Object value) {
+            return super.addRepeatedField(field, value);
           }
-
           @java.lang.Override
           public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext) {
@@ -23648,7 +25231,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
                 }
               }
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -23663,57 +25246,17 @@ public Builder mergeFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            if (extensionRegistry == null) {
-              throw new java.lang.NullPointerException();
-            }
+            org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext parsedMessage = null;
             try {
-              boolean done = false;
-              while (!done) {
-                int tag = input.readTag();
-                switch (tag) {
-                  case 0:
-                    done = true;
-                    break;
-                  case 10: {
-                    input.readMessage(
-                        getTupleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000001;
-                    break;
-                  } // case 10
-                  case 18: {
-                    input.readMessage(
-                        getHandleFieldBuilder().getBuilder(),
-                        extensionRegistry);
-                    bitField0_ |= 0x00000002;
-                    break;
-                  } // case 18
-                  case 26: {
-                    org.drools.serialization.protobuf.ProtobufMessages.FactHandle m =
-                        input.readMessage(
-                            org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER,
-                            extensionRegistry);
-                    if (resultBuilder_ == null) {
-                      ensureResultIsMutable();
-                      result_.add(m);
-                    } else {
-                      resultBuilder_.addMessage(m);
-                    }
-                    break;
-                  } // case 26
-                  default: {
-                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                      done = true; // was an endgroup tag
-                    }
-                    break;
-                  } // default:
-                } // switch (tag)
-              } // while (!done)
+              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+              parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext) e.getUnfinishedMessage();
               throw e.unwrapIOException();
             } finally {
-              onChanged();
-            } // finally
+              if (parsedMessage != null) {
+                mergeFrom(parsedMessage);
+              }
+            }
             return this;
           }
           private int bitField0_;
@@ -23748,11 +25291,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
                 throw new NullPointerException();
               }
               tuple_ = value;
+              onChanged();
             } else {
               tupleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -23762,11 +25305,11 @@ public Builder setTuple(
               org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
             if (tupleBuilder_ == null) {
               tuple_ = builderForValue.build();
+              onChanged();
             } else {
               tupleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
@@ -23775,30 +25318,31 @@ public Builder setTuple(
           public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
             if (tupleBuilder_ == null) {
               if (((bitField0_ & 0x00000001) != 0) &&
-                tuple_ != null &&
-                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-                getTupleBuilder().mergeFrom(value);
+                  tuple_ != null &&
+                  tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+                tuple_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
               } else {
                 tuple_ = value;
               }
+              onChanged();
             } else {
               tupleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000001;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.Tuple tuple = 1;
            */
           public Builder clearTuple() {
-            bitField0_ = (bitField0_ & ~0x00000001);
-            tuple_ = null;
-            if (tupleBuilder_ != null) {
-              tupleBuilder_.dispose();
-              tupleBuilder_ = null;
+            if (tupleBuilder_ == null) {
+              tuple_ = null;
+              onChanged();
+            } else {
+              tupleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000001);
             return this;
           }
           /**
@@ -23827,8 +25371,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
               org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
               getTupleFieldBuilder() {
             if (tupleBuilder_ == null) {
-              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+              tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getTuple(),
                       getParentForChildren(),
                       isClean());
@@ -23867,11 +25410,11 @@ public Builder setHandle(org.drools.serialization.protobuf.ProtobufMessages.Fact
                 throw new NullPointerException();
               }
               handle_ = value;
+              onChanged();
             } else {
               handleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -23881,11 +25424,11 @@ public Builder setHandle(
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder builderForValue) {
             if (handleBuilder_ == null) {
               handle_ = builderForValue.build();
+              onChanged();
             } else {
               handleBuilder_.setMessage(builderForValue.build());
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -23894,30 +25437,31 @@ public Builder setHandle(
           public Builder mergeHandle(org.drools.serialization.protobuf.ProtobufMessages.FactHandle value) {
             if (handleBuilder_ == null) {
               if (((bitField0_ & 0x00000002) != 0) &&
-                handle_ != null &&
-                handle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
-                getHandleBuilder().mergeFrom(value);
+                  handle_ != null &&
+                  handle_ != org.drools.serialization.protobuf.ProtobufMessages.FactHandle.getDefaultInstance()) {
+                handle_ =
+                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle.newBuilder(handle_).mergeFrom(value).buildPartial();
               } else {
                 handle_ = value;
               }
+              onChanged();
             } else {
               handleBuilder_.mergeFrom(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
            * optional .org.drools.serialization.protobuf.FactHandle handle = 2;
            */
           public Builder clearHandle() {
-            bitField0_ = (bitField0_ & ~0x00000002);
-            handle_ = null;
-            if (handleBuilder_ != null) {
-              handleBuilder_.dispose();
-              handleBuilder_ = null;
+            if (handleBuilder_ == null) {
+              handle_ = null;
+              onChanged();
+            } else {
+              handleBuilder_.clear();
             }
-            onChanged();
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
           /**
@@ -23946,8 +25490,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
               getHandleFieldBuilder() {
             if (handleBuilder_ == null) {
-              handleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+              handleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                       getHandle(),
                       getParentForChildren(),
                       isClean());
@@ -23960,7 +25503,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder ge
             java.util.Collections.emptyList();
           private void ensureResultIsMutable() {
             if (!((bitField0_ & 0x00000004) != 0)) {
-              result_ = new java.util.ArrayList(result_);
+              result_ = new java.util.ArrayList<>(result_);
               bitField0_ |= 0x00000004;
              }
           }
@@ -24185,8 +25728,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder add
               org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
               getResultFieldBuilder() {
             if (resultBuilder_ == null) {
-              resultBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                  org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+              resultBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                       result_,
                       ((bitField0_ & 0x00000004) != 0),
                       getParentForChildren(),
@@ -24228,18 +25770,7 @@ public QueryContext parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            Builder builder = newBuilder();
-            try {
-              builder.mergeFrom(input, extensionRegistry);
-            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-              throw e.setUnfinishedMessage(builder.buildPartial());
-            } catch (com.google.protobuf.UninitializedMessageException e) {
-              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-            } catch (java.io.IOException e) {
-              throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                  .setUnfinishedMessage(builder.buildPartial());
-            }
-            return builder.buildPartial();
+            return new QueryContext(input, extensionRegistry);
           }
         };
 
@@ -24260,7 +25791,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
       }
 
       public static final int CONTEXT_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
       private java.util.List context_;
       /**
        * repeated .org.drools.serialization.protobuf.NodeMemory.QueryElementNodeMemory.QueryContext context = 1;
@@ -24317,7 +25847,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < context_.size(); i++) {
           output.writeMessage(1, context_.get(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -24330,7 +25860,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -24347,7 +25877,7 @@ public boolean equals(final java.lang.Object obj) {
 
         if (!getContextList()
             .equals(other.getContextList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -24362,7 +25892,7 @@ public int hashCode() {
           hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
           hash = (53 * hash) + getContextList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -24479,25 +26009,29 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+            getContextFieldBuilder();
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           if (contextBuilder_ == null) {
             context_ = java.util.Collections.emptyList();
+            bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            context_ = null;
             contextBuilder_.clear();
           }
-          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -24524,13 +26058,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory(this);
-          buildPartialRepeatedFields(result);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory result) {
+          int from_bitField0_ = bitField0_;
           if (contextBuilder_ == null) {
             if (((bitField0_ & 0x00000001) != 0)) {
               context_ = java.util.Collections.unmodifiableList(context_);
@@ -24540,12 +26068,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
           } else {
             result.context_ = contextBuilder_.build();
           }
+          onBuilt();
+          return result;
         }
 
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory result) {
-          int from_bitField0_ = bitField0_;
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory) {
@@ -24584,7 +26142,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -24599,43 +26157,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext m =
-                      input.readMessage(
-                          org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext.PARSER,
-                          extensionRegistry);
-                  if (contextBuilder_ == null) {
-                    ensureContextIsMutable();
-                    context_.add(m);
-                  } else {
-                    contextBuilder_.addMessage(m);
-                  }
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -24644,7 +26176,7 @@ public Builder mergeFrom(
           java.util.Collections.emptyList();
         private void ensureContextIsMutable() {
           if (!((bitField0_ & 0x00000001) != 0)) {
-            context_ = new java.util.ArrayList(context_);
+            context_ = new java.util.ArrayList<>(context_);
             bitField0_ |= 0x00000001;
            }
         }
@@ -24869,8 +26401,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
             org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContextOrBuilder> 
             getContextFieldBuilder() {
           if (contextBuilder_ == null) {
-            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContext.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.QueryContextOrBuilder>(
+            contextBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                     context_,
                     ((bitField0_ & 0x00000001) != 0),
                     getParentForChildren(),
@@ -24912,18 +26443,7 @@ public QueryElementNodeMemory parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new QueryElementNodeMemory(input, extensionRegistry);
         }
       };
 
@@ -24945,7 +26465,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
 
     private int bitField0_;
     public static final int NODE_ID_FIELD_NUMBER = 1;
-    private int nodeId_ = 0;
+    private int nodeId_;
     /**
      * optional int32 node_id = 1;
      * @return Whether the nodeId field is set.
@@ -24964,7 +26484,7 @@ public int getNodeId() {
     }
 
     public static final int NODE_TYPE_FIELD_NUMBER = 2;
-    private int nodeType_ = 0;
+    private int nodeType_;
     /**
      * optional .org.drools.serialization.protobuf.NodeMemory.NodeType node_type = 2;
      * @return Whether the nodeType field is set.
@@ -24977,7 +26497,8 @@ public int getNodeId() {
      * @return The nodeType.
      */
     @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType getNodeType() {
-      org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType result = org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.forNumber(nodeType_);
+      @SuppressWarnings("deprecation")
+      org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType result = org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.valueOf(nodeType_);
       return result == null ? org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.ACCUMULATE : result;
     }
 
@@ -25117,7 +26638,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000020) != 0)) {
         output.writeMessage(6, getQueryElement());
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -25150,7 +26671,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(6, getQueryElement());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -25194,7 +26715,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getQueryElement()
             .equals(other.getQueryElement())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -25229,7 +26750,7 @@ public int hashCode() {
         hash = (37 * hash) + QUERY_ELEMENT_FIELD_NUMBER;
         hash = (53 * hash) + getQueryElement().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -25366,29 +26887,34 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         nodeId_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
         nodeType_ = 0;
-        accumulate_ = null;
-        if (accumulateBuilder_ != null) {
-          accumulateBuilder_.dispose();
-          accumulateBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (accumulateBuilder_ == null) {
+          accumulate_ = null;
+        } else {
+          accumulateBuilder_.clear();
         }
-        ria_ = null;
-        if (riaBuilder_ != null) {
-          riaBuilder_.dispose();
-          riaBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (riaBuilder_ == null) {
+          ria_ = null;
+        } else {
+          riaBuilder_.clear();
         }
-        from_ = null;
-        if (fromBuilder_ != null) {
-          fromBuilder_.dispose();
-          fromBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        if (fromBuilder_ == null) {
+          from_ = null;
+        } else {
+          fromBuilder_.clear();
         }
-        queryElement_ = null;
-        if (queryElementBuilder_ != null) {
-          queryElementBuilder_.dispose();
-          queryElementBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000010);
+        if (queryElementBuilder_ == null) {
+          queryElement_ = null;
+        } else {
+          queryElementBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000020);
         return this;
       }
 
@@ -25415,12 +26941,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.NodeMemory result = new org.drools.serialization.protobuf.ProtobufMessages.NodeMemory(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -25428,36 +26948,78 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.No
           to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.nodeType_ = nodeType_;
           to_bitField0_ |= 0x00000002;
         }
+        result.nodeType_ = nodeType_;
         if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.accumulate_ = accumulateBuilder_ == null
-              ? accumulate_
-              : accumulateBuilder_.build();
+          if (accumulateBuilder_ == null) {
+            result.accumulate_ = accumulate_;
+          } else {
+            result.accumulate_ = accumulateBuilder_.build();
+          }
           to_bitField0_ |= 0x00000004;
         }
         if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.ria_ = riaBuilder_ == null
-              ? ria_
-              : riaBuilder_.build();
+          if (riaBuilder_ == null) {
+            result.ria_ = ria_;
+          } else {
+            result.ria_ = riaBuilder_.build();
+          }
           to_bitField0_ |= 0x00000008;
         }
         if (((from_bitField0_ & 0x00000010) != 0)) {
-          result.from_ = fromBuilder_ == null
-              ? from_
-              : fromBuilder_.build();
+          if (fromBuilder_ == null) {
+            result.from_ = from_;
+          } else {
+            result.from_ = fromBuilder_.build();
+          }
           to_bitField0_ |= 0x00000010;
         }
         if (((from_bitField0_ & 0x00000020) != 0)) {
-          result.queryElement_ = queryElementBuilder_ == null
-              ? queryElement_
-              : queryElementBuilder_.build();
+          if (queryElementBuilder_ == null) {
+            result.queryElement_ = queryElement_;
+          } else {
+            result.queryElement_ = queryElementBuilder_.build();
+          }
           to_bitField0_ |= 0x00000020;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.NodeMemory) {
@@ -25488,7 +27050,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
         if (other.hasQueryElement()) {
           mergeQueryElement(other.getQueryElement());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -25503,75 +27065,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.NodeMemory parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                nodeId_ = input.readInt32();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 16: {
-                int tmpRaw = input.readEnum();
-                org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType tmpValue =
-                    org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.forNumber(tmpRaw);
-                if (tmpValue == null) {
-                  mergeUnknownVarintField(2, tmpRaw);
-                } else {
-                  nodeType_ = tmpRaw;
-                  bitField0_ |= 0x00000002;
-                }
-                break;
-              } // case 16
-              case 26: {
-                input.readMessage(
-                    getAccumulateFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 26
-              case 34: {
-                input.readMessage(
-                    getRiaFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 34
-              case 42: {
-                input.readMessage(
-                    getFromFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 42
-              case 50: {
-                input.readMessage(
-                    getQueryElementFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000020;
-                break;
-              } // case 50
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.NodeMemory) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -25599,9 +27103,8 @@ public int getNodeId() {
        * @return This builder for chaining.
        */
       public Builder setNodeId(int value) {
-
-        nodeId_ = value;
         bitField0_ |= 0x00000001;
+        nodeId_ = value;
         onChanged();
         return this;
       }
@@ -25630,7 +27133,8 @@ public Builder clearNodeId() {
        */
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType getNodeType() {
-        org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType result = org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.forNumber(nodeType_);
+        @SuppressWarnings("deprecation")
+        org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType result = org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.valueOf(nodeType_);
         return result == null ? org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.NodeType.ACCUMULATE : result;
       }
       /**
@@ -25688,11 +27192,11 @@ public Builder setAccumulate(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           accumulate_ = value;
+          onChanged();
         } else {
           accumulateBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -25702,11 +27206,11 @@ public Builder setAccumulate(
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.Builder builderForValue) {
         if (accumulateBuilder_ == null) {
           accumulate_ = builderForValue.build();
+          onChanged();
         } else {
           accumulateBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -25715,30 +27219,31 @@ public Builder setAccumulate(
       public Builder mergeAccumulate(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory value) {
         if (accumulateBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
-            accumulate_ != null &&
-            accumulate_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.getDefaultInstance()) {
-            getAccumulateBuilder().mergeFrom(value);
+              accumulate_ != null &&
+              accumulate_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.getDefaultInstance()) {
+            accumulate_ =
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.newBuilder(accumulate_).mergeFrom(value).buildPartial();
           } else {
             accumulate_ = value;
           }
+          onChanged();
         } else {
           accumulateBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.NodeMemory.AccumulateNodeMemory accumulate = 3;
        */
       public Builder clearAccumulate() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        accumulate_ = null;
-        if (accumulateBuilder_ != null) {
-          accumulateBuilder_.dispose();
-          accumulateBuilder_ = null;
+        if (accumulateBuilder_ == null) {
+          accumulate_ = null;
+          onChanged();
+        } else {
+          accumulateBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
       /**
@@ -25767,8 +27272,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateN
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemoryOrBuilder> 
           getAccumulateFieldBuilder() {
         if (accumulateBuilder_ == null) {
-          accumulateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.AccumulateNodeMemoryOrBuilder>(
+          accumulateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getAccumulate(),
                   getParentForChildren(),
                   isClean());
@@ -25807,11 +27311,11 @@ public Builder setRia(org.drools.serialization.protobuf.ProtobufMessages.NodeMem
             throw new NullPointerException();
           }
           ria_ = value;
+          onChanged();
         } else {
           riaBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -25821,11 +27325,11 @@ public Builder setRia(
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.Builder builderForValue) {
         if (riaBuilder_ == null) {
           ria_ = builderForValue.build();
+          onChanged();
         } else {
           riaBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -25834,30 +27338,31 @@ public Builder setRia(
       public Builder mergeRia(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory value) {
         if (riaBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            ria_ != null &&
-            ria_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.getDefaultInstance()) {
-            getRiaBuilder().mergeFrom(value);
+              ria_ != null &&
+              ria_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.getDefaultInstance()) {
+            ria_ =
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.newBuilder(ria_).mergeFrom(value).buildPartial();
           } else {
             ria_ = value;
           }
+          onChanged();
         } else {
           riaBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.NodeMemory.RIANodeMemory ria = 4;
        */
       public Builder clearRia() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        ria_ = null;
-        if (riaBuilder_ != null) {
-          riaBuilder_.dispose();
-          riaBuilder_ = null;
+        if (riaBuilder_ == null) {
+          ria_ = null;
+          onChanged();
+        } else {
+          riaBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -25886,8 +27391,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemo
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemoryOrBuilder> 
           getRiaFieldBuilder() {
         if (riaBuilder_ == null) {
-          riaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.RIANodeMemoryOrBuilder>(
+          riaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getRia(),
                   getParentForChildren(),
                   isClean());
@@ -25926,11 +27430,11 @@ public Builder setFrom(org.drools.serialization.protobuf.ProtobufMessages.NodeMe
             throw new NullPointerException();
           }
           from_ = value;
+          onChanged();
         } else {
           fromBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -25940,11 +27444,11 @@ public Builder setFrom(
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.Builder builderForValue) {
         if (fromBuilder_ == null) {
           from_ = builderForValue.build();
+          onChanged();
         } else {
           fromBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -25953,30 +27457,31 @@ public Builder setFrom(
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory value) {
         if (fromBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0) &&
-            from_ != null &&
-            from_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.getDefaultInstance()) {
-            getFromBuilder().mergeFrom(value);
+              from_ != null &&
+              from_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.getDefaultInstance()) {
+            from_ =
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.newBuilder(from_).mergeFrom(value).buildPartial();
           } else {
             from_ = value;
           }
+          onChanged();
         } else {
           fromBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.NodeMemory.FromNodeMemory from = 5;
        */
       public Builder clearFrom() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        from_ = null;
-        if (fromBuilder_ != null) {
-          fromBuilder_.dispose();
-          fromBuilder_ = null;
+        if (fromBuilder_ == null) {
+          from_ = null;
+          onChanged();
+        } else {
+          fromBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
       /**
@@ -26005,8 +27510,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMem
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemoryOrBuilder> 
           getFromFieldBuilder() {
         if (fromBuilder_ == null) {
-          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.FromNodeMemoryOrBuilder>(
+          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getFrom(),
                   getParentForChildren(),
                   isClean());
@@ -26045,11 +27549,11 @@ public Builder setQueryElement(org.drools.serialization.protobuf.ProtobufMessage
             throw new NullPointerException();
           }
           queryElement_ = value;
+          onChanged();
         } else {
           queryElementBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000020;
-        onChanged();
         return this;
       }
       /**
@@ -26059,11 +27563,11 @@ public Builder setQueryElement(
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.Builder builderForValue) {
         if (queryElementBuilder_ == null) {
           queryElement_ = builderForValue.build();
+          onChanged();
         } else {
           queryElementBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000020;
-        onChanged();
         return this;
       }
       /**
@@ -26072,30 +27576,31 @@ public Builder setQueryElement(
       public Builder mergeQueryElement(org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory value) {
         if (queryElementBuilder_ == null) {
           if (((bitField0_ & 0x00000020) != 0) &&
-            queryElement_ != null &&
-            queryElement_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.getDefaultInstance()) {
-            getQueryElementBuilder().mergeFrom(value);
+              queryElement_ != null &&
+              queryElement_ != org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.getDefaultInstance()) {
+            queryElement_ =
+              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.newBuilder(queryElement_).mergeFrom(value).buildPartial();
           } else {
             queryElement_ = value;
           }
+          onChanged();
         } else {
           queryElementBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000020;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.NodeMemory.QueryElementNodeMemory query_element = 6;
        */
       public Builder clearQueryElement() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        queryElement_ = null;
-        if (queryElementBuilder_ != null) {
-          queryElementBuilder_.dispose();
-          queryElementBuilder_ = null;
+        if (queryElementBuilder_ == null) {
+          queryElement_ = null;
+          onChanged();
+        } else {
+          queryElementBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000020);
         return this;
       }
       /**
@@ -26124,8 +27629,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElemen
           org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemoryOrBuilder> 
           getQueryElementFieldBuilder() {
         if (queryElementBuilder_ == null) {
-          queryElementBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemory.Builder, org.drools.serialization.protobuf.ProtobufMessages.NodeMemory.QueryElementNodeMemoryOrBuilder>(
+          queryElementBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getQueryElement(),
                   getParentForChildren(),
                   isClean());
@@ -26166,18 +27670,7 @@ public NodeMemory parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new NodeMemory(input, extensionRegistry);
       }
     };
 
@@ -26310,6 +27803,92 @@ protected java.lang.Object newInstance(
       return new EntryPoint();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private EntryPoint(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              entryPointId_ = bs;
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                handle_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              handle_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER, extensionRegistry));
+              break;
+            }
+            case 26: {
+              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000002) != 0)) {
+                subBuilder = tms_.toBuilder();
+              }
+              tms_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tms_);
+                tms_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
+                otc_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000008;
+              }
+              otc_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          handle_ = java.util.Collections.unmodifiableList(handle_);
+        }
+        if (((mutable_bitField0_ & 0x00000008) != 0)) {
+          otc_ = java.util.Collections.unmodifiableList(otc_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_EntryPoint_descriptor;
@@ -26325,8 +27904,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int ENTRY_POINT_ID_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object entryPointId_ = "";
+    private volatile java.lang.Object entryPointId_;
     /**
      * optional string entry_point_id = 1;
      * @return Whether the entryPointId field is set.
@@ -26374,7 +27952,6 @@ public java.lang.String getEntryPointId() {
     }
 
     public static final int HANDLE_FIELD_NUMBER = 2;
-    @SuppressWarnings("serial")
     private java.util.List handle_;
     /**
      * repeated .org.drools.serialization.protobuf.FactHandle handle = 2;
@@ -26441,7 +28018,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem
     }
 
     public static final int OTC_FIELD_NUMBER = 4;
-    @SuppressWarnings("serial")
     private java.util.List otc_;
     /**
      * repeated .org.drools.serialization.protobuf.ObjectTypeConfiguration otc = 4;
@@ -26507,7 +28083,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < otc_.size(); i++) {
         output.writeMessage(4, otc_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -26531,7 +28107,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, otc_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -26560,7 +28136,7 @@ public boolean equals(final java.lang.Object obj) {
       }
       if (!getOtcList()
           .equals(other.getOtcList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -26587,7 +28163,7 @@ public int hashCode() {
         hash = (37 * hash) + OTC_FIELD_NUMBER;
         hash = (53 * hash) + getOtcList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -26727,27 +28303,26 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         entryPointId_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
         if (handleBuilder_ == null) {
           handle_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
-          handle_ = null;
           handleBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000002);
-        tms_ = null;
-        if (tmsBuilder_ != null) {
-          tmsBuilder_.dispose();
-          tmsBuilder_ = null;
+        if (tmsBuilder_ == null) {
+          tms_ = null;
+        } else {
+          tmsBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000004);
         if (otcBuilder_ == null) {
           otc_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000008);
         } else {
-          otc_ = null;
           otcBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
 
@@ -26774,13 +28349,12 @@ public org.drools.serialization.protobuf.ProtobufMessages.EntryPoint build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.EntryPoint buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.EntryPoint result = new org.drools.serialization.protobuf.ProtobufMessages.EntryPoint(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.EntryPoint result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.entryPointId_ = entryPointId_;
         if (handleBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0)) {
             handle_ = java.util.Collections.unmodifiableList(handle_);
@@ -26790,6 +28364,14 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.handle_ = handleBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          if (tmsBuilder_ == null) {
+            result.tms_ = tms_;
+          } else {
+            result.tms_ = tmsBuilder_.build();
+          }
+          to_bitField0_ |= 0x00000002;
+        }
         if (otcBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0)) {
             otc_ = java.util.Collections.unmodifiableList(otc_);
@@ -26799,24 +28381,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.otc_ = otcBuilder_.build();
         }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.EntryPoint result) {
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.entryPointId_ = entryPointId_;
-          to_bitField0_ |= 0x00000001;
-        }
-        if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.tms_ = tmsBuilder_ == null
-              ? tms_
-              : tmsBuilder_.build();
-          to_bitField0_ |= 0x00000002;
-        }
-        result.bitField0_ |= to_bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.EntryPoint) {
@@ -26830,8 +28431,8 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.EntryPoint other) {
         if (other == org.drools.serialization.protobuf.ProtobufMessages.EntryPoint.getDefaultInstance()) return this;
         if (other.hasEntryPointId()) {
-          entryPointId_ = other.entryPointId_;
           bitField0_ |= 0x00000001;
+          entryPointId_ = other.entryPointId_;
           onChanged();
         }
         if (handleBuilder_ == null) {
@@ -26889,7 +28490,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Entr
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -26904,68 +28505,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.EntryPoint parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                entryPointId_ = input.readBytes();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 18: {
-                org.drools.serialization.protobuf.ProtobufMessages.FactHandle m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.FactHandle.PARSER,
-                        extensionRegistry);
-                if (handleBuilder_ == null) {
-                  ensureHandleIsMutable();
-                  handle_.add(m);
-                } else {
-                  handleBuilder_.addMessage(m);
-                }
-                break;
-              } // case 18
-              case 26: {
-                input.readMessage(
-                    getTmsFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 26
-              case 34: {
-                org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.PARSER,
-                        extensionRegistry);
-                if (otcBuilder_ == null) {
-                  ensureOtcIsMutable();
-                  otc_.add(m);
-                } else {
-                  otcBuilder_.addMessage(m);
-                }
-                break;
-              } // case 34
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.EntryPoint) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -27020,9 +28570,11 @@ public java.lang.String getEntryPointId() {
        */
       public Builder setEntryPointId(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         entryPointId_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -27031,8 +28583,8 @@ public Builder setEntryPointId(
        * @return This builder for chaining.
        */
       public Builder clearEntryPointId() {
-        entryPointId_ = getDefaultInstance().getEntryPointId();
         bitField0_ = (bitField0_ & ~0x00000001);
+        entryPointId_ = getDefaultInstance().getEntryPointId();
         onChanged();
         return this;
       }
@@ -27043,9 +28595,11 @@ public Builder clearEntryPointId() {
        */
       public Builder setEntryPointIdBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         entryPointId_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -27054,7 +28608,7 @@ public Builder setEntryPointIdBytes(
         java.util.Collections.emptyList();
       private void ensureHandleIsMutable() {
         if (!((bitField0_ & 0x00000002) != 0)) {
-          handle_ = new java.util.ArrayList(handle_);
+          handle_ = new java.util.ArrayList<>(handle_);
           bitField0_ |= 0x00000002;
          }
       }
@@ -27279,8 +28833,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder add
           org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder> 
           getHandleFieldBuilder() {
         if (handleBuilder_ == null) {
-          handleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.FactHandle, org.drools.serialization.protobuf.ProtobufMessages.FactHandle.Builder, org.drools.serialization.protobuf.ProtobufMessages.FactHandleOrBuilder>(
+          handleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   handle_,
                   ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
@@ -27320,11 +28873,11 @@ public Builder setTms(org.drools.serialization.protobuf.ProtobufMessages.TruthMa
             throw new NullPointerException();
           }
           tms_ = value;
+          onChanged();
         } else {
           tmsBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -27334,11 +28887,11 @@ public Builder setTms(
           org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder builderForValue) {
         if (tmsBuilder_ == null) {
           tms_ = builderForValue.build();
+          onChanged();
         } else {
           tmsBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -27347,30 +28900,31 @@ public Builder setTms(
       public Builder mergeTms(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem value) {
         if (tmsBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
-            tms_ != null &&
-            tms_ != org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.getDefaultInstance()) {
-            getTmsBuilder().mergeFrom(value);
+              tms_ != null &&
+              tms_ != org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.getDefaultInstance()) {
+            tms_ =
+              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.newBuilder(tms_).mergeFrom(value).buildPartial();
           } else {
             tms_ = value;
           }
+          onChanged();
         } else {
           tmsBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.TruthMaintenanceSystem tms = 3;
        */
       public Builder clearTms() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        tms_ = null;
-        if (tmsBuilder_ != null) {
-          tmsBuilder_.dispose();
-          tmsBuilder_ = null;
+        if (tmsBuilder_ == null) {
+          tms_ = null;
+          onChanged();
+        } else {
+          tmsBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
       /**
@@ -27399,8 +28953,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem
           org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystemOrBuilder> 
           getTmsFieldBuilder() {
         if (tmsBuilder_ == null) {
-          tmsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.Builder, org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystemOrBuilder>(
+          tmsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getTms(),
                   getParentForChildren(),
                   isClean());
@@ -27413,7 +28966,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem
         java.util.Collections.emptyList();
       private void ensureOtcIsMutable() {
         if (!((bitField0_ & 0x00000008) != 0)) {
-          otc_ = new java.util.ArrayList(otc_);
+          otc_ = new java.util.ArrayList<>(otc_);
           bitField0_ |= 0x00000008;
          }
       }
@@ -27638,8 +29191,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguratio
           org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration, org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.Builder, org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfigurationOrBuilder> 
           getOtcFieldBuilder() {
         if (otcBuilder_ == null) {
-          otcBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration, org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.Builder, org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfigurationOrBuilder>(
+          otcBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   otc_,
                   ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
@@ -27681,18 +29233,7 @@ public EntryPoint parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new EntryPoint(input, extensionRegistry);
       }
     };
 
@@ -27911,6 +29452,117 @@ protected java.lang.Object newInstance(
       return new FactHandle();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private FactHandle(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              int rawValue = input.readEnum();
+                @SuppressWarnings("deprecation")
+              org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType value = org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(1, rawValue);
+              } else {
+                bitField0_ |= 0x00000001;
+                type_ = rawValue;
+              }
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              id_ = input.readInt64();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              recency_ = input.readInt64();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000008;
+              timestamp_ = input.readInt64();
+              break;
+            }
+            case 40: {
+              bitField0_ |= 0x00000010;
+              duration_ = input.readInt64();
+              break;
+            }
+            case 48: {
+              bitField0_ |= 0x00000020;
+              isExpired_ = input.readBool();
+              break;
+            }
+            case 56: {
+              bitField0_ |= 0x00000040;
+              activationsCount_ = input.readInt64();
+              break;
+            }
+            case 64: {
+              bitField0_ |= 0x00000080;
+              strategyIndex_ = input.readInt32();
+              break;
+            }
+            case 74: {
+              bitField0_ |= 0x00000100;
+              object_ = input.readBytes();
+              break;
+            }
+            case 82: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000200;
+              entryPoint_ = bs;
+              break;
+            }
+            case 88: {
+              bitField0_ |= 0x00000400;
+              isJustified_ = input.readBool();
+              break;
+            }
+            case 96: {
+              bitField0_ |= 0x00000800;
+              otnCount_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_FactHandle_descriptor;
@@ -28040,7 +29692,7 @@ private HandleType(int value) {
 
     private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
-    private int type_ = 1;
+    private int type_;
     /**
      * optional .org.drools.serialization.protobuf.FactHandle.HandleType type = 1;
      * @return Whether the type field is set.
@@ -28053,12 +29705,13 @@ private HandleType(int value) {
      * @return The type.
      */
     @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType getType() {
-      org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType result = org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.forNumber(type_);
+      @SuppressWarnings("deprecation")
+      org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType result = org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.valueOf(type_);
       return result == null ? org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.INITIAL_FACT : result;
     }
 
     public static final int ID_FIELD_NUMBER = 2;
-    private long id_ = 0L;
+    private long id_;
     /**
      * optional int64 id = 2;
      * @return Whether the id field is set.
@@ -28077,7 +29730,7 @@ public long getId() {
     }
 
     public static final int RECENCY_FIELD_NUMBER = 3;
-    private long recency_ = 0L;
+    private long recency_;
     /**
      * optional int64 recency = 3;
      * @return Whether the recency field is set.
@@ -28096,7 +29749,7 @@ public long getRecency() {
     }
 
     public static final int TIMESTAMP_FIELD_NUMBER = 4;
-    private long timestamp_ = 0L;
+    private long timestamp_;
     /**
      * 
      * event only attributes
@@ -28123,7 +29776,7 @@ public long getTimestamp() {
     }
 
     public static final int DURATION_FIELD_NUMBER = 5;
-    private long duration_ = 0L;
+    private long duration_;
     /**
      * optional int64 duration = 5;
      * @return Whether the duration field is set.
@@ -28142,7 +29795,7 @@ public long getDuration() {
     }
 
     public static final int IS_EXPIRED_FIELD_NUMBER = 6;
-    private boolean isExpired_ = false;
+    private boolean isExpired_;
     /**
      * optional bool is_expired = 6;
      * @return Whether the isExpired field is set.
@@ -28161,7 +29814,7 @@ public boolean getIsExpired() {
     }
 
     public static final int ACTIVATIONS_COUNT_FIELD_NUMBER = 7;
-    private long activationsCount_ = 0L;
+    private long activationsCount_;
     /**
      * optional int64 activations_count = 7;
      * @return Whether the activationsCount field is set.
@@ -28180,7 +29833,7 @@ public long getActivationsCount() {
     }
 
     public static final int STRATEGY_INDEX_FIELD_NUMBER = 8;
-    private int strategyIndex_ = 0;
+    private int strategyIndex_;
     /**
      * 
      * the actual object reference
@@ -28207,7 +29860,7 @@ public int getStrategyIndex() {
     }
 
     public static final int OBJECT_FIELD_NUMBER = 9;
-    private com.google.protobuf.ByteString object_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString object_;
     /**
      * optional bytes object = 9;
      * @return Whether the object field is set.
@@ -28226,8 +29879,7 @@ public com.google.protobuf.ByteString getObject() {
     }
 
     public static final int ENTRY_POINT_FIELD_NUMBER = 10;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object entryPoint_ = "";
+    private volatile java.lang.Object entryPoint_;
     /**
      * 
      * the entry point
@@ -28287,7 +29939,7 @@ public java.lang.String getEntryPoint() {
     }
 
     public static final int IS_JUSTIFIED_FIELD_NUMBER = 11;
-    private boolean isJustified_ = false;
+    private boolean isJustified_;
     /**
      * optional bool is_justified = 11;
      * @return Whether the isJustified field is set.
@@ -28306,7 +29958,7 @@ public boolean getIsJustified() {
     }
 
     public static final int OTN_COUNT_FIELD_NUMBER = 12;
-    private int otnCount_ = 0;
+    private int otnCount_;
     /**
      * optional int32 otn_count = 12;
      * @return Whether the otnCount field is set.
@@ -28374,7 +30026,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000800) != 0)) {
         output.writeInt32(12, otnCount_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -28430,7 +30082,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt32Size(12, otnCount_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -28504,7 +30156,7 @@ public boolean equals(final java.lang.Object obj) {
         if (getOtnCount()
             != other.getOtnCount()) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -28570,7 +30222,7 @@ public int hashCode() {
         hash = (37 * hash) + OTN_COUNT_FIELD_NUMBER;
         hash = (53 * hash) + getOtnCount();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -28691,30 +30343,46 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.FactHandle.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         type_ = 1;
+        bitField0_ = (bitField0_ & ~0x00000001);
         id_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000002);
         recency_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000004);
         timestamp_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000008);
         duration_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000010);
         isExpired_ = false;
+        bitField0_ = (bitField0_ & ~0x00000020);
         activationsCount_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000040);
         strategyIndex_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000080);
         object_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000100);
         entryPoint_ = "";
+        bitField0_ = (bitField0_ & ~0x00000200);
         isJustified_ = false;
+        bitField0_ = (bitField0_ & ~0x00000400);
         otnCount_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000800);
         return this;
       }
 
@@ -28741,18 +30409,12 @@ public org.drools.serialization.protobuf.ProtobufMessages.FactHandle build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.FactHandle buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.FactHandle result = new org.drools.serialization.protobuf.ProtobufMessages.FactHandle(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.FactHandle result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.type_ = type_;
           to_bitField0_ |= 0x00000001;
         }
+        result.type_ = type_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.id_ = id_;
           to_bitField0_ |= 0x00000002;
@@ -28782,13 +30444,13 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Fa
           to_bitField0_ |= 0x00000080;
         }
         if (((from_bitField0_ & 0x00000100) != 0)) {
-          result.object_ = object_;
           to_bitField0_ |= 0x00000100;
         }
+        result.object_ = object_;
         if (((from_bitField0_ & 0x00000200) != 0)) {
-          result.entryPoint_ = entryPoint_;
           to_bitField0_ |= 0x00000200;
         }
+        result.entryPoint_ = entryPoint_;
         if (((from_bitField0_ & 0x00000400) != 0)) {
           result.isJustified_ = isJustified_;
           to_bitField0_ |= 0x00000400;
@@ -28797,9 +30459,43 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Fa
           result.otnCount_ = otnCount_;
           to_bitField0_ |= 0x00000800;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.FactHandle) {
@@ -28840,8 +30536,8 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Fact
           setObject(other.getObject());
         }
         if (other.hasEntryPoint()) {
-          entryPoint_ = other.entryPoint_;
           bitField0_ |= 0x00000200;
+          entryPoint_ = other.entryPoint_;
           onChanged();
         }
         if (other.hasIsJustified()) {
@@ -28850,7 +30546,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Fact
         if (other.hasOtnCount()) {
           setOtnCount(other.getOtnCount());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -28865,97 +30561,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.FactHandle parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                int tmpRaw = input.readEnum();
-                org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType tmpValue =
-                    org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.forNumber(tmpRaw);
-                if (tmpValue == null) {
-                  mergeUnknownVarintField(1, tmpRaw);
-                } else {
-                  type_ = tmpRaw;
-                  bitField0_ |= 0x00000001;
-                }
-                break;
-              } // case 8
-              case 16: {
-                id_ = input.readInt64();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              case 24: {
-                recency_ = input.readInt64();
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 24
-              case 32: {
-                timestamp_ = input.readInt64();
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 32
-              case 40: {
-                duration_ = input.readInt64();
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 40
-              case 48: {
-                isExpired_ = input.readBool();
-                bitField0_ |= 0x00000020;
-                break;
-              } // case 48
-              case 56: {
-                activationsCount_ = input.readInt64();
-                bitField0_ |= 0x00000040;
-                break;
-              } // case 56
-              case 64: {
-                strategyIndex_ = input.readInt32();
-                bitField0_ |= 0x00000080;
-                break;
-              } // case 64
-              case 74: {
-                object_ = input.readBytes();
-                bitField0_ |= 0x00000100;
-                break;
-              } // case 74
-              case 82: {
-                entryPoint_ = input.readBytes();
-                bitField0_ |= 0x00000200;
-                break;
-              } // case 82
-              case 88: {
-                isJustified_ = input.readBool();
-                bitField0_ |= 0x00000400;
-                break;
-              } // case 88
-              case 96: {
-                otnCount_ = input.readInt32();
-                bitField0_ |= 0x00000800;
-                break;
-              } // case 96
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.FactHandle) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -28974,7 +30590,8 @@ public Builder mergeFrom(
        */
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType getType() {
-        org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType result = org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.forNumber(type_);
+        @SuppressWarnings("deprecation")
+        org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType result = org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.valueOf(type_);
         return result == null ? org.drools.serialization.protobuf.ProtobufMessages.FactHandle.HandleType.INITIAL_FACT : result;
       }
       /**
@@ -29025,9 +30642,8 @@ public long getId() {
        * @return This builder for chaining.
        */
       public Builder setId(long value) {
-
-        id_ = value;
         bitField0_ |= 0x00000002;
+        id_ = value;
         onChanged();
         return this;
       }
@@ -29065,9 +30681,8 @@ public long getRecency() {
        * @return This builder for chaining.
        */
       public Builder setRecency(long value) {
-
-        recency_ = value;
         bitField0_ |= 0x00000004;
+        recency_ = value;
         onChanged();
         return this;
       }
@@ -29117,9 +30732,8 @@ public long getTimestamp() {
        * @return This builder for chaining.
        */
       public Builder setTimestamp(long value) {
-
-        timestamp_ = value;
         bitField0_ |= 0x00000008;
+        timestamp_ = value;
         onChanged();
         return this;
       }
@@ -29161,9 +30775,8 @@ public long getDuration() {
        * @return This builder for chaining.
        */
       public Builder setDuration(long value) {
-
-        duration_ = value;
         bitField0_ |= 0x00000010;
+        duration_ = value;
         onChanged();
         return this;
       }
@@ -29201,9 +30814,8 @@ public boolean getIsExpired() {
        * @return This builder for chaining.
        */
       public Builder setIsExpired(boolean value) {
-
-        isExpired_ = value;
         bitField0_ |= 0x00000020;
+        isExpired_ = value;
         onChanged();
         return this;
       }
@@ -29241,9 +30853,8 @@ public long getActivationsCount() {
        * @return This builder for chaining.
        */
       public Builder setActivationsCount(long value) {
-
-        activationsCount_ = value;
         bitField0_ |= 0x00000040;
+        activationsCount_ = value;
         onChanged();
         return this;
       }
@@ -29293,9 +30904,8 @@ public int getStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setStrategyIndex(int value) {
-
-        strategyIndex_ = value;
         bitField0_ |= 0x00000080;
+        strategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -29337,9 +30947,11 @@ public com.google.protobuf.ByteString getObject() {
        * @return This builder for chaining.
        */
       public Builder setObject(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000100;
         object_ = value;
-        bitField0_ |= 0x00000100;
         onChanged();
         return this;
       }
@@ -29420,9 +31032,11 @@ public java.lang.String getEntryPoint() {
        */
       public Builder setEntryPoint(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000200;
         entryPoint_ = value;
-        bitField0_ |= 0x00000200;
         onChanged();
         return this;
       }
@@ -29435,8 +31049,8 @@ public Builder setEntryPoint(
        * @return This builder for chaining.
        */
       public Builder clearEntryPoint() {
-        entryPoint_ = getDefaultInstance().getEntryPoint();
         bitField0_ = (bitField0_ & ~0x00000200);
+        entryPoint_ = getDefaultInstance().getEntryPoint();
         onChanged();
         return this;
       }
@@ -29451,9 +31065,11 @@ public Builder clearEntryPoint() {
        */
       public Builder setEntryPointBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000200;
         entryPoint_ = value;
-        bitField0_ |= 0x00000200;
         onChanged();
         return this;
       }
@@ -29481,9 +31097,8 @@ public boolean getIsJustified() {
        * @return This builder for chaining.
        */
       public Builder setIsJustified(boolean value) {
-
-        isJustified_ = value;
         bitField0_ |= 0x00000400;
+        isJustified_ = value;
         onChanged();
         return this;
       }
@@ -29521,9 +31136,8 @@ public int getOtnCount() {
        * @return This builder for chaining.
        */
       public Builder setOtnCount(int value) {
-
-        otnCount_ = value;
         bitField0_ |= 0x00000800;
+        otnCount_ = value;
         onChanged();
         return this;
       }
@@ -29570,18 +31184,7 @@ public FactHandle parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new FactHandle(input, extensionRegistry);
       }
     };
 
@@ -29782,6 +31385,124 @@ protected java.lang.Object newInstance(
       return new Activation();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Activation(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 18: {
+              org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000001) != 0)) {
+                subBuilder = tuple_.toBuilder();
+              }
+              tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tuple_);
+                tuple_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000001;
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000002;
+              salience_ = input.readInt32();
+              break;
+            }
+            case 34: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000004;
+              packageName_ = bs;
+              break;
+            }
+            case 42: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000008;
+              ruleName_ = bs;
+              break;
+            }
+            case 58: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000010;
+              activationGroup_ = bs;
+              break;
+            }
+            case 64: {
+              bitField0_ |= 0x00000020;
+              isActivated_ = input.readBool();
+              break;
+            }
+            case 72: {
+              bitField0_ |= 0x00000040;
+              handleId_ = input.readInt64();
+              break;
+            }
+            case 80: {
+              if (!((mutable_bitField0_ & 0x00000080) != 0)) {
+                logicalDependency_ = newLongList();
+                mutable_bitField0_ |= 0x00000080;
+              }
+              logicalDependency_.addLong(input.readInt64());
+              break;
+            }
+            case 82: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000080) != 0) && input.getBytesUntilLimit() > 0) {
+                logicalDependency_ = newLongList();
+                mutable_bitField0_ |= 0x00000080;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                logicalDependency_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 88: {
+              bitField0_ |= 0x00000080;
+              evaluated_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000080) != 0)) {
+          logicalDependency_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Activation_descriptor;
@@ -29835,7 +31556,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
     }
 
     public static final int SALIENCE_FIELD_NUMBER = 3;
-    private int salience_ = 0;
+    private int salience_;
     /**
      * optional int32 salience = 3;
      * @return Whether the salience field is set.
@@ -29854,8 +31575,7 @@ public int getSalience() {
     }
 
     public static final int PACKAGE_NAME_FIELD_NUMBER = 4;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object packageName_ = "";
+    private volatile java.lang.Object packageName_;
     /**
      * optional string package_name = 4;
      * @return Whether the packageName field is set.
@@ -29903,8 +31623,7 @@ public java.lang.String getPackageName() {
     }
 
     public static final int RULE_NAME_FIELD_NUMBER = 5;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object ruleName_ = "";
+    private volatile java.lang.Object ruleName_;
     /**
      * optional string rule_name = 5;
      * @return Whether the ruleName field is set.
@@ -29952,8 +31671,7 @@ public java.lang.String getRuleName() {
     }
 
     public static final int ACTIVATION_GROUP_FIELD_NUMBER = 7;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object activationGroup_ = "";
+    private volatile java.lang.Object activationGroup_;
     /**
      * 
      *optional int64 propagation_number = 6;
@@ -30013,7 +31731,7 @@ public java.lang.String getActivationGroup() {
     }
 
     public static final int IS_ACTIVATED_FIELD_NUMBER = 8;
-    private boolean isActivated_ = false;
+    private boolean isActivated_;
     /**
      * optional bool is_activated = 8;
      * @return Whether the isActivated field is set.
@@ -30032,7 +31750,7 @@ public boolean getIsActivated() {
     }
 
     public static final int HANDLE_ID_FIELD_NUMBER = 9;
-    private long handleId_ = 0L;
+    private long handleId_;
     /**
      * optional int64 handle_id = 9;
      * @return Whether the handleId field is set.
@@ -30051,7 +31769,6 @@ public long getHandleId() {
     }
 
     public static final int LOGICAL_DEPENDENCY_FIELD_NUMBER = 10;
-    @SuppressWarnings("serial")
     private com.google.protobuf.Internal.LongList logicalDependency_;
     /**
      * repeated int64 logical_dependency = 10;
@@ -30079,7 +31796,7 @@ public long getLogicalDependency(int index) {
     }
 
     public static final int EVALUATED_FIELD_NUMBER = 11;
-    private boolean evaluated_ = false;
+    private boolean evaluated_;
     /**
      * optional bool evaluated = 11;
      * @return Whether the evaluated field is set.
@@ -30138,7 +31855,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000080) != 0)) {
         output.writeBool(11, evaluated_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -30185,7 +31902,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(11, evaluated_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -30242,7 +31959,7 @@ public boolean equals(final java.lang.Object obj) {
         if (getEvaluated()
             != other.getEvaluated()) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -30292,7 +32009,7 @@ public int hashCode() {
         hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
             getEvaluated());
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -30426,20 +32143,28 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
-        tuple_ = null;
-        if (tupleBuilder_ != null) {
-          tupleBuilder_.dispose();
-          tupleBuilder_ = null;
+        if (tupleBuilder_ == null) {
+          tuple_ = null;
+        } else {
+          tupleBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000001);
         salience_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
         packageName_ = "";
+        bitField0_ = (bitField0_ & ~0x00000004);
         ruleName_ = "";
+        bitField0_ = (bitField0_ & ~0x00000008);
         activationGroup_ = "";
+        bitField0_ = (bitField0_ & ~0x00000010);
         isActivated_ = false;
+        bitField0_ = (bitField0_ & ~0x00000020);
         handleId_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000040);
         logicalDependency_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000080);
         evaluated_ = false;
+        bitField0_ = (bitField0_ & ~0x00000100);
         return this;
       }
 
@@ -30466,27 +32191,14 @@ public org.drools.serialization.protobuf.ProtobufMessages.Activation build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Activation buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Activation result = new org.drools.serialization.protobuf.ProtobufMessages.Activation(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Activation result) {
-        if (((bitField0_ & 0x00000080) != 0)) {
-          logicalDependency_.makeImmutable();
-          bitField0_ = (bitField0_ & ~0x00000080);
-        }
-        result.logicalDependency_ = logicalDependency_;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Activation result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.tuple_ = tupleBuilder_ == null
-              ? tuple_
-              : tupleBuilder_.build();
+          if (tupleBuilder_ == null) {
+            result.tuple_ = tuple_;
+          } else {
+            result.tuple_ = tupleBuilder_.build();
+          }
           to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
@@ -30494,17 +32206,17 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
           to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.packageName_ = packageName_;
           to_bitField0_ |= 0x00000004;
         }
+        result.packageName_ = packageName_;
         if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.ruleName_ = ruleName_;
           to_bitField0_ |= 0x00000008;
         }
+        result.ruleName_ = ruleName_;
         if (((from_bitField0_ & 0x00000010) != 0)) {
-          result.activationGroup_ = activationGroup_;
           to_bitField0_ |= 0x00000010;
         }
+        result.activationGroup_ = activationGroup_;
         if (((from_bitField0_ & 0x00000020) != 0)) {
           result.isActivated_ = isActivated_;
           to_bitField0_ |= 0x00000020;
@@ -30513,13 +32225,52 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
           result.handleId_ = handleId_;
           to_bitField0_ |= 0x00000040;
         }
+        if (((bitField0_ & 0x00000080) != 0)) {
+          logicalDependency_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000080);
+        }
+        result.logicalDependency_ = logicalDependency_;
         if (((from_bitField0_ & 0x00000100) != 0)) {
           result.evaluated_ = evaluated_;
           to_bitField0_ |= 0x00000080;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Activation) {
@@ -30539,18 +32290,18 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           setSalience(other.getSalience());
         }
         if (other.hasPackageName()) {
-          packageName_ = other.packageName_;
           bitField0_ |= 0x00000004;
+          packageName_ = other.packageName_;
           onChanged();
         }
         if (other.hasRuleName()) {
-          ruleName_ = other.ruleName_;
           bitField0_ |= 0x00000008;
+          ruleName_ = other.ruleName_;
           onChanged();
         }
         if (other.hasActivationGroup()) {
-          activationGroup_ = other.activationGroup_;
           bitField0_ |= 0x00000010;
+          activationGroup_ = other.activationGroup_;
           onChanged();
         }
         if (other.hasIsActivated()) {
@@ -30572,7 +32323,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
         if (other.hasEvaluated()) {
           setEvaluated(other.getEvaluated());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -30587,88 +32338,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Activation parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 18: {
-                input.readMessage(
-                    getTupleFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 18
-              case 24: {
-                salience_ = input.readInt32();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 24
-              case 34: {
-                packageName_ = input.readBytes();
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 34
-              case 42: {
-                ruleName_ = input.readBytes();
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 42
-              case 58: {
-                activationGroup_ = input.readBytes();
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 58
-              case 64: {
-                isActivated_ = input.readBool();
-                bitField0_ |= 0x00000020;
-                break;
-              } // case 64
-              case 72: {
-                handleId_ = input.readInt64();
-                bitField0_ |= 0x00000040;
-                break;
-              } // case 72
-              case 80: {
-                long v = input.readInt64();
-                ensureLogicalDependencyIsMutable();
-                logicalDependency_.addLong(v);
-                break;
-              } // case 80
-              case 82: {
-                int length = input.readRawVarint32();
-                int limit = input.pushLimit(length);
-                ensureLogicalDependencyIsMutable();
-                while (input.getBytesUntilLimit() > 0) {
-                  logicalDependency_.addLong(input.readInt64());
-                }
-                input.popLimit(limit);
-                break;
-              } // case 82
-              case 88: {
-                evaluated_ = input.readBool();
-                bitField0_ |= 0x00000100;
-                break;
-              } // case 88
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Activation) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -30715,11 +32395,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
             throw new NullPointerException();
           }
           tuple_ = value;
+          onChanged();
         } else {
           tupleBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -30733,11 +32413,11 @@ public Builder setTuple(
           org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
         if (tupleBuilder_ == null) {
           tuple_ = builderForValue.build();
+          onChanged();
         } else {
           tupleBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -30750,17 +32430,18 @@ public Builder setTuple(
       public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
         if (tupleBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0) &&
-            tuple_ != null &&
-            tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-            getTupleBuilder().mergeFrom(value);
+              tuple_ != null &&
+              tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+            tuple_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
           } else {
             tuple_ = value;
           }
+          onChanged();
         } else {
           tupleBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -30771,13 +32452,13 @@ public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tup
        * optional .org.drools.serialization.protobuf.Tuple tuple = 2;
        */
       public Builder clearTuple() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        tuple_ = null;
-        if (tupleBuilder_ != null) {
-          tupleBuilder_.dispose();
-          tupleBuilder_ = null;
+        if (tupleBuilder_ == null) {
+          tuple_ = null;
+          onChanged();
+        } else {
+          tupleBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000001);
         return this;
       }
       /**
@@ -30818,8 +32499,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
           org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
           getTupleFieldBuilder() {
         if (tupleBuilder_ == null) {
-          tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+          tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getTuple(),
                   getParentForChildren(),
                   isClean());
@@ -30851,9 +32531,8 @@ public int getSalience() {
        * @return This builder for chaining.
        */
       public Builder setSalience(int value) {
-
-        salience_ = value;
         bitField0_ |= 0x00000002;
+        salience_ = value;
         onChanged();
         return this;
       }
@@ -30918,9 +32597,11 @@ public java.lang.String getPackageName() {
        */
       public Builder setPackageName(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
         packageName_ = value;
-        bitField0_ |= 0x00000004;
         onChanged();
         return this;
       }
@@ -30929,8 +32610,8 @@ public Builder setPackageName(
        * @return This builder for chaining.
        */
       public Builder clearPackageName() {
-        packageName_ = getDefaultInstance().getPackageName();
         bitField0_ = (bitField0_ & ~0x00000004);
+        packageName_ = getDefaultInstance().getPackageName();
         onChanged();
         return this;
       }
@@ -30941,9 +32622,11 @@ public Builder clearPackageName() {
        */
       public Builder setPackageNameBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
         packageName_ = value;
-        bitField0_ |= 0x00000004;
         onChanged();
         return this;
       }
@@ -30998,9 +32681,11 @@ public java.lang.String getRuleName() {
        */
       public Builder setRuleName(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000008;
         ruleName_ = value;
-        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -31009,8 +32694,8 @@ public Builder setRuleName(
        * @return This builder for chaining.
        */
       public Builder clearRuleName() {
-        ruleName_ = getDefaultInstance().getRuleName();
         bitField0_ = (bitField0_ & ~0x00000008);
+        ruleName_ = getDefaultInstance().getRuleName();
         onChanged();
         return this;
       }
@@ -31021,9 +32706,11 @@ public Builder clearRuleName() {
        */
       public Builder setRuleNameBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000008;
         ruleName_ = value;
-        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -31094,9 +32781,11 @@ public java.lang.String getActivationGroup() {
        */
       public Builder setActivationGroup(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
         activationGroup_ = value;
-        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -31109,8 +32798,8 @@ public Builder setActivationGroup(
        * @return This builder for chaining.
        */
       public Builder clearActivationGroup() {
-        activationGroup_ = getDefaultInstance().getActivationGroup();
         bitField0_ = (bitField0_ & ~0x00000010);
+        activationGroup_ = getDefaultInstance().getActivationGroup();
         onChanged();
         return this;
       }
@@ -31125,9 +32814,11 @@ public Builder clearActivationGroup() {
        */
       public Builder setActivationGroupBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
         activationGroup_ = value;
-        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -31155,9 +32846,8 @@ public boolean getIsActivated() {
        * @return This builder for chaining.
        */
       public Builder setIsActivated(boolean value) {
-
-        isActivated_ = value;
         bitField0_ |= 0x00000020;
+        isActivated_ = value;
         onChanged();
         return this;
       }
@@ -31195,9 +32885,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000040;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -31217,7 +32906,7 @@ private void ensureLogicalDependencyIsMutable() {
         if (!((bitField0_ & 0x00000080) != 0)) {
           logicalDependency_ = mutableCopy(logicalDependency_);
           bitField0_ |= 0x00000080;
-        }
+         }
       }
       /**
        * repeated int64 logical_dependency = 10;
@@ -31251,7 +32940,6 @@ public long getLogicalDependency(int index) {
        */
       public Builder setLogicalDependency(
           int index, long value) {
-
         ensureLogicalDependencyIsMutable();
         logicalDependency_.setLong(index, value);
         onChanged();
@@ -31263,7 +32951,6 @@ public Builder setLogicalDependency(
        * @return This builder for chaining.
        */
       public Builder addLogicalDependency(long value) {
-
         ensureLogicalDependencyIsMutable();
         logicalDependency_.addLong(value);
         onChanged();
@@ -31316,9 +33003,8 @@ public boolean getEvaluated() {
        * @return This builder for chaining.
        */
       public Builder setEvaluated(boolean value) {
-
-        evaluated_ = value;
         bitField0_ |= 0x00000100;
+        evaluated_ = value;
         onChanged();
         return this;
       }
@@ -31365,18 +33051,7 @@ public Activation parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Activation(input, extensionRegistry);
       }
     };
 
@@ -31465,6 +33140,85 @@ protected java.lang.Object newInstance(
       return new Tuple();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Tuple(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                handleId_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              handleId_.addLong(input.readInt64());
+              break;
+            }
+            case 10: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                handleId_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                handleId_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                object_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              object_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          handleId_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          object_ = java.util.Collections.unmodifiableList(object_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Tuple_descriptor;
@@ -31479,7 +33233,6 @@ protected java.lang.Object newInstance(
     }
 
     public static final int HANDLE_ID_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
     private com.google.protobuf.Internal.LongList handleId_;
     /**
      * repeated int64 handle_id = 1;
@@ -31507,7 +33260,6 @@ public long getHandleId(int index) {
     }
 
     public static final int OBJECT_FIELD_NUMBER = 2;
-    @SuppressWarnings("serial")
     private java.util.List object_;
     /**
      * repeated .org.drools.serialization.protobuf.SerializedObject object = 2;
@@ -31567,7 +33319,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < object_.size(); i++) {
         output.writeMessage(2, object_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -31589,7 +33341,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, object_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -31608,7 +33360,7 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getHandleIdList())) return false;
       if (!getObjectList()
           .equals(other.getObjectList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -31627,7 +33379,7 @@ public int hashCode() {
         hash = (37 * hash) + OBJECT_FIELD_NUMBER;
         hash = (53 * hash) + getObjectList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -31744,26 +33496,31 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getObjectFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         handleId_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
         if (objectBuilder_ == null) {
           object_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
-          object_ = null;
           objectBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -31790,13 +33547,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Tuple build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Tuple buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Tuple result = new org.drools.serialization.protobuf.ProtobufMessages.Tuple(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Tuple result) {
+        int from_bitField0_ = bitField0_;
         if (((bitField0_ & 0x00000001) != 0)) {
           handleId_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000001);
@@ -31811,12 +33562,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.object_ = objectBuilder_.build();
         }
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Tuple result) {
-        int from_bitField0_ = bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Tuple) {
@@ -31865,7 +33646,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Tupl
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -31880,59 +33661,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Tuple parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                long v = input.readInt64();
-                ensureHandleIdIsMutable();
-                handleId_.addLong(v);
-                break;
-              } // case 8
-              case 10: {
-                int length = input.readRawVarint32();
-                int limit = input.pushLimit(length);
-                ensureHandleIdIsMutable();
-                while (input.getBytesUntilLimit() > 0) {
-                  handleId_.addLong(input.readInt64());
-                }
-                input.popLimit(limit);
-                break;
-              } // case 10
-              case 18: {
-                org.drools.serialization.protobuf.ProtobufMessages.SerializedObject m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.PARSER,
-                        extensionRegistry);
-                if (objectBuilder_ == null) {
-                  ensureObjectIsMutable();
-                  object_.add(m);
-                } else {
-                  objectBuilder_.addMessage(m);
-                }
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Tuple) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -31942,7 +33681,7 @@ private void ensureHandleIdIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
           handleId_ = mutableCopy(handleId_);
           bitField0_ |= 0x00000001;
-        }
+         }
       }
       /**
        * repeated int64 handle_id = 1;
@@ -31976,7 +33715,6 @@ public long getHandleId(int index) {
        */
       public Builder setHandleId(
           int index, long value) {
-
         ensureHandleIdIsMutable();
         handleId_.setLong(index, value);
         onChanged();
@@ -31988,7 +33726,6 @@ public Builder setHandleId(
        * @return This builder for chaining.
        */
       public Builder addHandleId(long value) {
-
         ensureHandleIdIsMutable();
         handleId_.addLong(value);
         onChanged();
@@ -32022,7 +33759,7 @@ public Builder clearHandleId() {
         java.util.Collections.emptyList();
       private void ensureObjectIsMutable() {
         if (!((bitField0_ & 0x00000002) != 0)) {
-          object_ = new java.util.ArrayList(object_);
+          object_ = new java.util.ArrayList<>(object_);
           bitField0_ |= 0x00000002;
          }
       }
@@ -32247,8 +33984,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.Build
           org.drools.serialization.protobuf.ProtobufMessages.SerializedObject, org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.Builder, org.drools.serialization.protobuf.ProtobufMessages.SerializedObjectOrBuilder> 
           getObjectFieldBuilder() {
         if (objectBuilder_ == null) {
-          objectBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.SerializedObject, org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.Builder, org.drools.serialization.protobuf.ProtobufMessages.SerializedObjectOrBuilder>(
+          objectBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   object_,
                   ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
@@ -32290,18 +34026,7 @@ public Tuple parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Tuple(input, extensionRegistry);
       }
     };
 
@@ -32370,6 +34095,59 @@ protected java.lang.Object newInstance(
       return new SerializedObject();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SerializedObject(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              strategyIndex_ = input.readInt32();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              object_ = input.readBytes();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_SerializedObject_descriptor;
@@ -32385,7 +34163,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int STRATEGY_INDEX_FIELD_NUMBER = 1;
-    private int strategyIndex_ = 0;
+    private int strategyIndex_;
     /**
      * optional int32 strategy_index = 1;
      * @return Whether the strategyIndex field is set.
@@ -32404,7 +34182,7 @@ public int getStrategyIndex() {
     }
 
     public static final int OBJECT_FIELD_NUMBER = 2;
-    private com.google.protobuf.ByteString object_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString object_;
     /**
      * optional bytes object = 2;
      * @return Whether the object field is set.
@@ -32442,7 +34220,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000002) != 0)) {
         output.writeBytes(2, object_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -32459,7 +34237,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, object_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -32484,7 +34262,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getObject()
             .equals(other.getObject())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -32503,7 +34281,7 @@ public int hashCode() {
         hash = (37 * hash) + OBJECT_FIELD_NUMBER;
         hash = (53 * hash) + getObject().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -32620,20 +34398,26 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.SerializedObject.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         strategyIndex_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
         object_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -32660,12 +34444,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.SerializedObject build
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.SerializedObject buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.SerializedObject result = new org.drools.serialization.protobuf.ProtobufMessages.SerializedObject(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.SerializedObject result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -32673,12 +34451,46 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Se
           to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.object_ = object_;
           to_bitField0_ |= 0x00000002;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.object_ = object_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.SerializedObject) {
@@ -32697,7 +34509,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Seri
         if (other.hasObject()) {
           setObject(other.getObject());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -32712,40 +34524,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.SerializedObject parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                strategyIndex_ = input.readInt32();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 18: {
-                object_ = input.readBytes();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.SerializedObject) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -32773,9 +34562,8 @@ public int getStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setStrategyIndex(int value) {
-
-        strategyIndex_ = value;
         bitField0_ |= 0x00000001;
+        strategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -32813,9 +34601,11 @@ public com.google.protobuf.ByteString getObject() {
        * @return This builder for chaining.
        */
       public Builder setObject(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
         object_ = value;
-        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -32862,18 +34652,7 @@ public SerializedObject parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new SerializedObject(input, extensionRegistry);
       }
     };
 
@@ -32969,6 +34748,73 @@ protected java.lang.Object newInstance(
       return new TruthMaintenanceSystem();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TruthMaintenanceSystem(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                key_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              key_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.PARSER, extensionRegistry));
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                oBSOLETEJustification_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              oBSOLETEJustification_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          key_ = java.util.Collections.unmodifiableList(key_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          oBSOLETEJustification_ = java.util.Collections.unmodifiableList(oBSOLETEJustification_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_TruthMaintenanceSystem_descriptor;
@@ -32983,7 +34829,6 @@ protected java.lang.Object newInstance(
     }
 
     public static final int KEY_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
     private java.util.List key_;
     /**
      * repeated .org.drools.serialization.protobuf.EqualityKey key = 1;
@@ -33024,7 +34869,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.EqualityKeyOrBuilder g
     }
 
     public static final int OBSOLETE_JUSTIFICATION_FIELD_NUMBER = 2;
-    @SuppressWarnings("serial")
     private java.util.List oBSOLETEJustification_;
     /**
      * repeated .org.drools.serialization.protobuf.BeliefSet OBSOLETE_justification = 2;
@@ -33084,7 +34928,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < oBSOLETEJustification_.size(); i++) {
         output.writeMessage(2, oBSOLETEJustification_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -33101,7 +34945,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, oBSOLETEJustification_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -33120,7 +34964,7 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getKeyList())) return false;
       if (!getOBSOLETEJustificationList()
           .equals(other.getOBSOLETEJustificationList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -33139,7 +34983,7 @@ public int hashCode() {
         hash = (37 * hash) + OBSOLETE_JUSTIFICATION_FIELD_NUMBER;
         hash = (53 * hash) + getOBSOLETEJustificationList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -33256,32 +35100,36 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getKeyFieldBuilder();
+          getOBSOLETEJustificationFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         if (keyBuilder_ == null) {
           key_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
-          key_ = null;
           keyBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000001);
         if (oBSOLETEJustificationBuilder_ == null) {
           oBSOLETEJustification_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
-          oBSOLETEJustification_ = null;
           oBSOLETEJustificationBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -33308,13 +35156,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem result = new org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem result) {
+        int from_bitField0_ = bitField0_;
         if (keyBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             key_ = java.util.Collections.unmodifiableList(key_);
@@ -33333,12 +35175,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.oBSOLETEJustification_ = oBSOLETEJustificationBuilder_.build();
         }
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem result) {
-        int from_bitField0_ = bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem) {
@@ -33403,7 +35275,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trut
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -33418,56 +35290,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                org.drools.serialization.protobuf.ProtobufMessages.EqualityKey m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.PARSER,
-                        extensionRegistry);
-                if (keyBuilder_ == null) {
-                  ensureKeyIsMutable();
-                  key_.add(m);
-                } else {
-                  keyBuilder_.addMessage(m);
-                }
-                break;
-              } // case 10
-              case 18: {
-                org.drools.serialization.protobuf.ProtobufMessages.BeliefSet m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.PARSER,
-                        extensionRegistry);
-                if (oBSOLETEJustificationBuilder_ == null) {
-                  ensureOBSOLETEJustificationIsMutable();
-                  oBSOLETEJustification_.add(m);
-                } else {
-                  oBSOLETEJustificationBuilder_.addMessage(m);
-                }
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.TruthMaintenanceSystem) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -33476,7 +35309,7 @@ public Builder mergeFrom(
         java.util.Collections.emptyList();
       private void ensureKeyIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          key_ = new java.util.ArrayList(key_);
+          key_ = new java.util.ArrayList<>(key_);
           bitField0_ |= 0x00000001;
          }
       }
@@ -33701,8 +35534,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.Builder ad
           org.drools.serialization.protobuf.ProtobufMessages.EqualityKey, org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.Builder, org.drools.serialization.protobuf.ProtobufMessages.EqualityKeyOrBuilder> 
           getKeyFieldBuilder() {
         if (keyBuilder_ == null) {
-          keyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.EqualityKey, org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.Builder, org.drools.serialization.protobuf.ProtobufMessages.EqualityKeyOrBuilder>(
+          keyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   key_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
@@ -33716,7 +35548,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.EqualityKey.Builder ad
         java.util.Collections.emptyList();
       private void ensureOBSOLETEJustificationIsMutable() {
         if (!((bitField0_ & 0x00000002) != 0)) {
-          oBSOLETEJustification_ = new java.util.ArrayList(oBSOLETEJustification_);
+          oBSOLETEJustification_ = new java.util.ArrayList<>(oBSOLETEJustification_);
           bitField0_ |= 0x00000002;
          }
       }
@@ -33941,8 +35773,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder addO
           org.drools.serialization.protobuf.ProtobufMessages.BeliefSet, org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder, org.drools.serialization.protobuf.ProtobufMessages.BeliefSetOrBuilder> 
           getOBSOLETEJustificationFieldBuilder() {
         if (oBSOLETEJustificationBuilder_ == null) {
-          oBSOLETEJustificationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.BeliefSet, org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder, org.drools.serialization.protobuf.ProtobufMessages.BeliefSetOrBuilder>(
+          oBSOLETEJustificationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   oBSOLETEJustification_,
                   ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
@@ -33984,18 +35815,7 @@ public TruthMaintenanceSystem parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new TruthMaintenanceSystem(input, extensionRegistry);
       }
     };
 
@@ -34070,6 +35890,60 @@ protected java.lang.Object newInstance(
       return new ObjectTypeConfiguration();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ObjectTypeConfiguration(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              type_ = bs;
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              tmsEnabled_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ObjectTypeConfiguration_descriptor;
@@ -34085,8 +35959,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
-    private volatile java.lang.Object type_ = "";
+    private volatile java.lang.Object type_;
     /**
      * optional string type = 1;
      * @return Whether the type field is set.
@@ -34134,7 +36007,7 @@ public java.lang.String getType() {
     }
 
     public static final int TMS_ENABLED_FIELD_NUMBER = 2;
-    private boolean tmsEnabled_ = false;
+    private boolean tmsEnabled_;
     /**
      * optional bool tms_enabled = 2;
      * @return Whether the tmsEnabled field is set.
@@ -34172,7 +36045,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000002) != 0)) {
         output.writeBool(2, tmsEnabled_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -34188,7 +36061,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(2, tmsEnabled_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -34213,7 +36086,7 @@ public boolean equals(final java.lang.Object obj) {
         if (getTmsEnabled()
             != other.getTmsEnabled()) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -34233,7 +36106,7 @@ public int hashCode() {
         hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
             getTmsEnabled());
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -34350,20 +36223,26 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         type_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
         tmsEnabled_ = false;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -34390,25 +36269,53 @@ public org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguratio
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration result = new org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.type_ = type_;
           to_bitField0_ |= 0x00000001;
         }
+        result.type_ = type_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.tmsEnabled_ = tmsEnabled_;
           to_bitField0_ |= 0x00000002;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration) {
@@ -34422,14 +36329,14 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration other) {
         if (other == org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration.getDefaultInstance()) return this;
         if (other.hasType()) {
-          type_ = other.type_;
           bitField0_ |= 0x00000001;
+          type_ = other.type_;
           onChanged();
         }
         if (other.hasTmsEnabled()) {
           setTmsEnabled(other.getTmsEnabled());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -34444,40 +36351,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                type_ = input.readBytes();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 10
-              case 16: {
-                tmsEnabled_ = input.readBool();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ObjectTypeConfiguration) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -34532,9 +36416,11 @@ public java.lang.String getType() {
        */
       public Builder setType(
           java.lang.String value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         type_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -34543,8 +36429,8 @@ public Builder setType(
        * @return This builder for chaining.
        */
       public Builder clearType() {
-        type_ = getDefaultInstance().getType();
         bitField0_ = (bitField0_ & ~0x00000001);
+        type_ = getDefaultInstance().getType();
         onChanged();
         return this;
       }
@@ -34555,9 +36441,11 @@ public Builder clearType() {
        */
       public Builder setTypeBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
         type_ = value;
-        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -34585,9 +36473,8 @@ public boolean getTmsEnabled() {
        * @return This builder for chaining.
        */
       public Builder setTmsEnabled(boolean value) {
-
-        tmsEnabled_ = value;
         bitField0_ |= 0x00000002;
+        tmsEnabled_ = value;
         onChanged();
         return this;
       }
@@ -34634,18 +36521,7 @@ public ObjectTypeConfiguration parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new ObjectTypeConfiguration(input, extensionRegistry);
       }
     };
 
@@ -34746,6 +36622,96 @@ protected java.lang.Object newInstance(
       return new EqualityKey();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private EqualityKey(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              status_ = input.readInt32();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              handleId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                otherHandle_ = newLongList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              otherHandle_.addLong(input.readInt64());
+              break;
+            }
+            case 26: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
+                otherHandle_ = newLongList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                otherHandle_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 34: {
+              org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = beliefSet_.toBuilder();
+              }
+              beliefSet_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(beliefSet_);
+                beliefSet_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          otherHandle_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_EqualityKey_descriptor;
@@ -34761,7 +36727,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int STATUS_FIELD_NUMBER = 1;
-    private int status_ = 0;
+    private int status_;
     /**
      * optional int32 status = 1;
      * @return Whether the status field is set.
@@ -34780,7 +36746,7 @@ public int getStatus() {
     }
 
     public static final int HANDLE_ID_FIELD_NUMBER = 2;
-    private long handleId_ = 0L;
+    private long handleId_;
     /**
      * optional int64 handle_id = 2;
      * @return Whether the handleId field is set.
@@ -34799,7 +36765,6 @@ public long getHandleId() {
     }
 
     public static final int OTHER_HANDLE_FIELD_NUMBER = 3;
-    @SuppressWarnings("serial")
     private com.google.protobuf.Internal.LongList otherHandle_;
     /**
      * repeated int64 other_handle = 3;
@@ -34878,7 +36843,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(4, getBeliefSet());
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -34908,7 +36873,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getBeliefSet());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -34940,7 +36905,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getBeliefSet()
             .equals(other.getBeliefSet())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -34968,7 +36933,7 @@ public int hashCode() {
         hash = (37 * hash) + BELIEFSET_FIELD_NUMBER;
         hash = (53 * hash) + getBeliefSet().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -35102,15 +37067,18 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         status_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
         handleId_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000002);
         otherHandle_ = emptyLongList();
-        beliefSet_ = null;
-        if (beliefSetBuilder_ != null) {
-          beliefSetBuilder_.dispose();
-          beliefSetBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (beliefSetBuilder_ == null) {
+          beliefSet_ = null;
+        } else {
+          beliefSetBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
 
@@ -35137,21 +37105,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.EqualityKey build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.EqualityKey buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.EqualityKey result = new org.drools.serialization.protobuf.ProtobufMessages.EqualityKey(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.EqualityKey result) {
-        if (((bitField0_ & 0x00000004) != 0)) {
-          otherHandle_.makeImmutable();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        }
-        result.otherHandle_ = otherHandle_;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.EqualityKey result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -35162,15 +37115,56 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Eq
           result.handleId_ = handleId_;
           to_bitField0_ |= 0x00000002;
         }
+        if (((bitField0_ & 0x00000004) != 0)) {
+          otherHandle_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        }
+        result.otherHandle_ = otherHandle_;
         if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.beliefSet_ = beliefSetBuilder_ == null
-              ? beliefSet_
-              : beliefSetBuilder_.build();
+          if (beliefSetBuilder_ == null) {
+            result.beliefSet_ = beliefSet_;
+          } else {
+            result.beliefSet_ = beliefSetBuilder_.build();
+          }
           to_bitField0_ |= 0x00000004;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.EqualityKey) {
@@ -35202,7 +37196,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Equa
         if (other.hasBeliefSet()) {
           mergeBeliefSet(other.getBeliefSet());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -35217,63 +37211,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.EqualityKey parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                status_ = input.readInt32();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 16: {
-                handleId_ = input.readInt64();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 16
-              case 24: {
-                long v = input.readInt64();
-                ensureOtherHandleIsMutable();
-                otherHandle_.addLong(v);
-                break;
-              } // case 24
-              case 26: {
-                int length = input.readRawVarint32();
-                int limit = input.pushLimit(length);
-                ensureOtherHandleIsMutable();
-                while (input.getBytesUntilLimit() > 0) {
-                  otherHandle_.addLong(input.readInt64());
-                }
-                input.popLimit(limit);
-                break;
-              } // case 26
-              case 34: {
-                input.readMessage(
-                    getBeliefSetFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 34
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.EqualityKey) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -35301,9 +37249,8 @@ public int getStatus() {
        * @return This builder for chaining.
        */
       public Builder setStatus(int value) {
-
-        status_ = value;
         bitField0_ |= 0x00000001;
+        status_ = value;
         onChanged();
         return this;
       }
@@ -35341,9 +37288,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000002;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -35363,7 +37309,7 @@ private void ensureOtherHandleIsMutable() {
         if (!((bitField0_ & 0x00000004) != 0)) {
           otherHandle_ = mutableCopy(otherHandle_);
           bitField0_ |= 0x00000004;
-        }
+         }
       }
       /**
        * repeated int64 other_handle = 3;
@@ -35397,7 +37343,6 @@ public long getOtherHandle(int index) {
        */
       public Builder setOtherHandle(
           int index, long value) {
-
         ensureOtherHandleIsMutable();
         otherHandle_.setLong(index, value);
         onChanged();
@@ -35409,7 +37354,6 @@ public Builder setOtherHandle(
        * @return This builder for chaining.
        */
       public Builder addOtherHandle(long value) {
-
         ensureOtherHandleIsMutable();
         otherHandle_.addLong(value);
         onChanged();
@@ -35469,11 +37413,11 @@ public Builder setBeliefSet(org.drools.serialization.protobuf.ProtobufMessages.B
             throw new NullPointerException();
           }
           beliefSet_ = value;
+          onChanged();
         } else {
           beliefSetBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -35483,11 +37427,11 @@ public Builder setBeliefSet(
           org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder builderForValue) {
         if (beliefSetBuilder_ == null) {
           beliefSet_ = builderForValue.build();
+          onChanged();
         } else {
           beliefSetBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -35496,30 +37440,31 @@ public Builder setBeliefSet(
       public Builder mergeBeliefSet(org.drools.serialization.protobuf.ProtobufMessages.BeliefSet value) {
         if (beliefSetBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            beliefSet_ != null &&
-            beliefSet_ != org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.getDefaultInstance()) {
-            getBeliefSetBuilder().mergeFrom(value);
+              beliefSet_ != null &&
+              beliefSet_ != org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.getDefaultInstance()) {
+            beliefSet_ =
+              org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.newBuilder(beliefSet_).mergeFrom(value).buildPartial();
           } else {
             beliefSet_ = value;
           }
+          onChanged();
         } else {
           beliefSetBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.BeliefSet beliefSet = 4;
        */
       public Builder clearBeliefSet() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        beliefSet_ = null;
-        if (beliefSetBuilder_ != null) {
-          beliefSetBuilder_.dispose();
-          beliefSetBuilder_ = null;
+        if (beliefSetBuilder_ == null) {
+          beliefSet_ = null;
+          onChanged();
+        } else {
+          beliefSetBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -35548,8 +37493,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.BeliefSetOrBuilder get
           org.drools.serialization.protobuf.ProtobufMessages.BeliefSet, org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder, org.drools.serialization.protobuf.ProtobufMessages.BeliefSetOrBuilder> 
           getBeliefSetFieldBuilder() {
         if (beliefSetBuilder_ == null) {
-          beliefSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.BeliefSet, org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.Builder, org.drools.serialization.protobuf.ProtobufMessages.BeliefSetOrBuilder>(
+          beliefSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getBeliefSet(),
                   getParentForChildren(),
                   isClean());
@@ -35590,18 +37534,7 @@ public EqualityKey parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new EqualityKey(input, extensionRegistry);
       }
     };
 
@@ -35683,6 +37616,66 @@ protected java.lang.Object newInstance(
       return new BeliefSet();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BeliefSet(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              bitField0_ |= 0x00000001;
+              handleId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                logicalDependency_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              logicalDependency_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          logicalDependency_ = java.util.Collections.unmodifiableList(logicalDependency_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_BeliefSet_descriptor;
@@ -35698,7 +37691,7 @@ protected java.lang.Object newInstance(
 
     private int bitField0_;
     public static final int HANDLE_ID_FIELD_NUMBER = 1;
-    private long handleId_ = 0L;
+    private long handleId_;
     /**
      * optional int64 handle_id = 1;
      * @return Whether the handleId field is set.
@@ -35717,7 +37710,6 @@ public long getHandleId() {
     }
 
     public static final int LOGICALDEPENDENCY_FIELD_NUMBER = 2;
-    @SuppressWarnings("serial")
     private java.util.List logicalDependency_;
     /**
      * repeated .org.drools.serialization.protobuf.LogicalDependency logicalDependency = 2;
@@ -35777,7 +37769,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < logicalDependency_.size(); i++) {
         output.writeMessage(2, logicalDependency_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -35794,7 +37786,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, logicalDependency_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -35816,7 +37808,7 @@ public boolean equals(final java.lang.Object obj) {
       }
       if (!getLogicalDependencyList()
           .equals(other.getLogicalDependencyList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -35836,7 +37828,7 @@ public int hashCode() {
         hash = (37 * hash) + LOGICALDEPENDENCY_FIELD_NUMBER;
         hash = (53 * hash) + getLogicalDependencyList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -35953,26 +37945,31 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.BeliefSet.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLogicalDependencyFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         handleId_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000001);
         if (logicalDependencyBuilder_ == null) {
           logicalDependency_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
-          logicalDependency_ = null;
           logicalDependencyBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -35999,13 +37996,12 @@ public org.drools.serialization.protobuf.ProtobufMessages.BeliefSet build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.BeliefSet buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.BeliefSet result = new org.drools.serialization.protobuf.ProtobufMessages.BeliefSet(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.BeliefSet result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.handleId_ = handleId_;
+          to_bitField0_ |= 0x00000001;
+        }
         if (logicalDependencyBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0)) {
             logicalDependency_ = java.util.Collections.unmodifiableList(logicalDependency_);
@@ -36015,18 +38011,43 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.logicalDependency_ = logicalDependencyBuilder_.build();
         }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.BeliefSet result) {
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.handleId_ = handleId_;
-          to_bitField0_ |= 0x00000001;
-        }
-        result.bitField0_ |= to_bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.BeliefSet) {
@@ -36068,7 +38089,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Beli
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -36083,48 +38104,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.BeliefSet parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                handleId_ = input.readInt64();
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 8
-              case 18: {
-                org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency.PARSER,
-                        extensionRegistry);
-                if (logicalDependencyBuilder_ == null) {
-                  ensureLogicalDependencyIsMutable();
-                  logicalDependency_.add(m);
-                } else {
-                  logicalDependencyBuilder_.addMessage(m);
-                }
-                break;
-              } // case 18
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.BeliefSet) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -36152,9 +38142,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000001;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -36173,7 +38162,7 @@ public Builder clearHandleId() {
         java.util.Collections.emptyList();
       private void ensureLogicalDependencyIsMutable() {
         if (!((bitField0_ & 0x00000002) != 0)) {
-          logicalDependency_ = new java.util.ArrayList(logicalDependency_);
+          logicalDependency_ = new java.util.ArrayList<>(logicalDependency_);
           bitField0_ |= 0x00000002;
          }
       }
@@ -36398,8 +38387,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency.Buil
           org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency, org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency.Builder, org.drools.serialization.protobuf.ProtobufMessages.LogicalDependencyOrBuilder> 
           getLogicalDependencyFieldBuilder() {
         if (logicalDependencyBuilder_ == null) {
-          logicalDependencyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency, org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency.Builder, org.drools.serialization.protobuf.ProtobufMessages.LogicalDependencyOrBuilder>(
+          logicalDependencyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   logicalDependency_,
                   ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
@@ -36441,18 +38429,7 @@ public BeliefSet parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new BeliefSet(input, extensionRegistry);
       }
     };
 
@@ -36575,6 +38552,82 @@ protected java.lang.Object newInstance(
       return new LogicalDependency();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private LogicalDependency(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 18: {
+              org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000001) != 0)) {
+                subBuilder = activation_.toBuilder();
+              }
+              activation_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(activation_);
+                activation_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000001;
+              break;
+            }
+            case 64: {
+              bitField0_ |= 0x00000002;
+              objectStrategyIndex_ = input.readInt32();
+              break;
+            }
+            case 74: {
+              bitField0_ |= 0x00000004;
+              object_ = input.readBytes();
+              break;
+            }
+            case 80: {
+              bitField0_ |= 0x00000008;
+              valueStrategyIndex_ = input.readInt32();
+              break;
+            }
+            case 90: {
+              bitField0_ |= 0x00000010;
+              value_ = input.readBytes();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_LogicalDependency_descriptor;
@@ -36616,7 +38669,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
     }
 
     public static final int OBJECT_STRATEGY_INDEX_FIELD_NUMBER = 8;
-    private int objectStrategyIndex_ = 0;
+    private int objectStrategyIndex_;
     /**
      * 
      * the actual object reference
@@ -36643,7 +38696,7 @@ public int getObjectStrategyIndex() {
     }
 
     public static final int OBJECT_FIELD_NUMBER = 9;
-    private com.google.protobuf.ByteString object_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString object_;
     /**
      * optional bytes object = 9;
      * @return Whether the object field is set.
@@ -36662,7 +38715,7 @@ public com.google.protobuf.ByteString getObject() {
     }
 
     public static final int VALUE_STRATEGY_INDEX_FIELD_NUMBER = 10;
-    private int valueStrategyIndex_ = 0;
+    private int valueStrategyIndex_;
     /**
      * 
      * the actual value reference
@@ -36689,7 +38742,7 @@ public int getValueStrategyIndex() {
     }
 
     public static final int VALUE_FIELD_NUMBER = 11;
-    private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
+    private com.google.protobuf.ByteString value_;
     /**
      * optional bytes value = 11;
      * @return Whether the value field is set.
@@ -36736,7 +38789,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000010) != 0)) {
         output.writeBytes(11, value_);
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -36765,7 +38818,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(11, value_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -36805,7 +38858,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getValue()
             .equals(other.getValue())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -36836,7 +38889,7 @@ public int hashCode() {
         hash = (37 * hash) + VALUE_FIELD_NUMBER;
         hash = (53 * hash) + getValue().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -36970,16 +39023,20 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
-        activation_ = null;
-        if (activationBuilder_ != null) {
-          activationBuilder_.dispose();
-          activationBuilder_ = null;
+        if (activationBuilder_ == null) {
+          activation_ = null;
+        } else {
+          activationBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000001);
         objectStrategyIndex_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
         object_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000004);
         valueStrategyIndex_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000008);
         value_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
 
@@ -37006,18 +39063,14 @@ public org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency buil
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency result = new org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.activation_ = activationBuilder_ == null
-              ? activation_
-              : activationBuilder_.build();
+          if (activationBuilder_ == null) {
+            result.activation_ = activation_;
+          } else {
+            result.activation_ = activationBuilder_.build();
+          }
           to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
@@ -37025,20 +39078,54 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Lo
           to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.object_ = object_;
           to_bitField0_ |= 0x00000004;
         }
+        result.object_ = object_;
         if (((from_bitField0_ & 0x00000008) != 0)) {
           result.valueStrategyIndex_ = valueStrategyIndex_;
           to_bitField0_ |= 0x00000008;
         }
         if (((from_bitField0_ & 0x00000010) != 0)) {
-          result.value_ = value_;
           to_bitField0_ |= 0x00000010;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.value_ = value_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency) {
@@ -37066,7 +39153,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Logi
         if (other.hasValue()) {
           setValue(other.getValue());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -37081,57 +39168,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 18: {
-                input.readMessage(
-                    getActivationFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000001;
-                break;
-              } // case 18
-              case 64: {
-                objectStrategyIndex_ = input.readInt32();
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 64
-              case 74: {
-                object_ = input.readBytes();
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 74
-              case 80: {
-                valueStrategyIndex_ = input.readInt32();
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 80
-              case 90: {
-                value_ = input.readBytes();
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 90
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.LogicalDependency) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -37166,11 +39213,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           activation_ = value;
+          onChanged();
         } else {
           activationBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -37180,11 +39227,11 @@ public Builder setActivation(
           org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder builderForValue) {
         if (activationBuilder_ == null) {
           activation_ = builderForValue.build();
+          onChanged();
         } else {
           activationBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -37193,30 +39240,31 @@ public Builder setActivation(
       public Builder mergeActivation(org.drools.serialization.protobuf.ProtobufMessages.Activation value) {
         if (activationBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0) &&
-            activation_ != null &&
-            activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
-            getActivationBuilder().mergeFrom(value);
+              activation_ != null &&
+              activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
+            activation_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Activation.newBuilder(activation_).mergeFrom(value).buildPartial();
           } else {
             activation_ = value;
           }
+          onChanged();
         } else {
           activationBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Activation activation = 2;
        */
       public Builder clearActivation() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        activation_ = null;
-        if (activationBuilder_ != null) {
-          activationBuilder_.dispose();
-          activationBuilder_ = null;
+        if (activationBuilder_ == null) {
+          activation_ = null;
+          onChanged();
+        } else {
+          activationBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000001);
         return this;
       }
       /**
@@ -37245,8 +39293,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
           org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
           getActivationFieldBuilder() {
         if (activationBuilder_ == null) {
-          activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+          activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getActivation(),
                   getParentForChildren(),
                   isClean());
@@ -37290,9 +39337,8 @@ public int getObjectStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setObjectStrategyIndex(int value) {
-
-        objectStrategyIndex_ = value;
         bitField0_ |= 0x00000002;
+        objectStrategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -37334,9 +39380,11 @@ public com.google.protobuf.ByteString getObject() {
        * @return This builder for chaining.
        */
       public Builder setObject(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
         object_ = value;
-        bitField0_ |= 0x00000004;
         onChanged();
         return this;
       }
@@ -37386,9 +39434,8 @@ public int getValueStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setValueStrategyIndex(int value) {
-
-        valueStrategyIndex_ = value;
         bitField0_ |= 0x00000008;
+        valueStrategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -37430,9 +39477,11 @@ public com.google.protobuf.ByteString getValue() {
        * @return This builder for chaining.
        */
       public Builder setValue(com.google.protobuf.ByteString value) {
-        if (value == null) { throw new NullPointerException(); }
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
         value_ = value;
-        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -37479,18 +39528,7 @@ public LogicalDependency parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new LogicalDependency(input, extensionRegistry);
       }
     };
 
@@ -37561,6 +39599,61 @@ protected java.lang.Object newInstance(
       return new ActionQueue();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ActionQueue(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                action_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              action_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          action_ = java.util.Collections.unmodifiableList(action_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_descriptor;
@@ -37902,6 +39995,165 @@ protected java.lang.Object newInstance(
         return new Action();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Action(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                int rawValue = input.readEnum();
+                  @SuppressWarnings("deprecation")
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType value = org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.valueOf(rawValue);
+                if (value == null) {
+                  unknownFields.mergeVarintField(1, rawValue);
+                } else {
+                  bitField0_ |= 0x00000001;
+                  type_ = rawValue;
+                }
+                break;
+              }
+              case 18: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000002) != 0)) {
+                  subBuilder = behaviorExpire_.toBuilder();
+                }
+                behaviorExpire_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(behaviorExpire_);
+                  behaviorExpire_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000002;
+                break;
+              }
+              case 26: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000004) != 0)) {
+                  subBuilder = deactivateCallback_.toBuilder();
+                }
+                deactivateCallback_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(deactivateCallback_);
+                  deactivateCallback_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000004;
+                break;
+              }
+              case 34: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000008) != 0)) {
+                  subBuilder = logicalRetract_.toBuilder();
+                }
+                logicalRetract_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(logicalRetract_);
+                  logicalRetract_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000008;
+                break;
+              }
+              case 42: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000010) != 0)) {
+                  subBuilder = propagate_.toBuilder();
+                }
+                propagate_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(propagate_);
+                  propagate_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000010;
+                break;
+              }
+              case 50: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000020) != 0)) {
+                  subBuilder = assert_.toBuilder();
+                }
+                assert_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(assert_);
+                  assert_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000020;
+                break;
+              }
+              case 58: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000040) != 0)) {
+                  subBuilder = expire_.toBuilder();
+                }
+                expire_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(expire_);
+                  expire_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000040;
+                break;
+              }
+              case 66: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000080) != 0)) {
+                  subBuilder = signal_.toBuilder();
+                }
+                signal_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(signal_);
+                  signal_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000080;
+                break;
+              }
+              case 74: {
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000100) != 0)) {
+                  subBuilder = signalProcessInstance_.toBuilder();
+                }
+                signalProcessInstance_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(signalProcessInstance_);
+                  signalProcessInstance_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000100;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_Action_descriptor;
@@ -37917,7 +40169,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int TYPE_FIELD_NUMBER = 1;
-      private int type_ = 1;
+      private int type_;
       /**
        * 
        * must always have a type to switch
@@ -37938,7 +40190,8 @@ protected java.lang.Object newInstance(
        * @return The type.
        */
       @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType getType() {
-        org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType result = org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.forNumber(type_);
+        @SuppressWarnings("deprecation")
+        org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType result = org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.valueOf(type_);
         return result == null ? org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.BEHAVIOR_EXPIRE : result;
       }
 
@@ -38203,7 +40456,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000100) != 0)) {
           output.writeMessage(9, getSignalProcessInstance());
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -38248,7 +40501,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(9, getSignalProcessInstance());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -38307,7 +40560,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getSignalProcessInstance()
               .equals(other.getSignalProcessInstance())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -38354,7 +40607,7 @@ public int hashCode() {
           hash = (37 * hash) + SIGNAL_PROCESS_INSTANCE_FIELD_NUMBER;
           hash = (53 * hash) + getSignalProcessInstance().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -38495,48 +40748,56 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           type_ = 1;
-          behaviorExpire_ = null;
-          if (behaviorExpireBuilder_ != null) {
-            behaviorExpireBuilder_.dispose();
-            behaviorExpireBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (behaviorExpireBuilder_ == null) {
+            behaviorExpire_ = null;
+          } else {
+            behaviorExpireBuilder_.clear();
           }
-          deactivateCallback_ = null;
-          if (deactivateCallbackBuilder_ != null) {
-            deactivateCallbackBuilder_.dispose();
-            deactivateCallbackBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000002);
+          if (deactivateCallbackBuilder_ == null) {
+            deactivateCallback_ = null;
+          } else {
+            deactivateCallbackBuilder_.clear();
           }
-          logicalRetract_ = null;
-          if (logicalRetractBuilder_ != null) {
-            logicalRetractBuilder_.dispose();
-            logicalRetractBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000004);
+          if (logicalRetractBuilder_ == null) {
+            logicalRetract_ = null;
+          } else {
+            logicalRetractBuilder_.clear();
           }
-          propagate_ = null;
-          if (propagateBuilder_ != null) {
-            propagateBuilder_.dispose();
-            propagateBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000008);
+          if (propagateBuilder_ == null) {
+            propagate_ = null;
+          } else {
+            propagateBuilder_.clear();
           }
-          assert_ = null;
-          if (assertBuilder_ != null) {
-            assertBuilder_.dispose();
-            assertBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000010);
+          if (assertBuilder_ == null) {
+            assert_ = null;
+          } else {
+            assertBuilder_.clear();
           }
-          expire_ = null;
-          if (expireBuilder_ != null) {
-            expireBuilder_.dispose();
-            expireBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000020);
+          if (expireBuilder_ == null) {
+            expire_ = null;
+          } else {
+            expireBuilder_.clear();
           }
-          signal_ = null;
-          if (signalBuilder_ != null) {
-            signalBuilder_.dispose();
-            signalBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000040);
+          if (signalBuilder_ == null) {
+            signal_ = null;
+          } else {
+            signalBuilder_.clear();
           }
-          signalProcessInstance_ = null;
-          if (signalProcessInstanceBuilder_ != null) {
-            signalProcessInstanceBuilder_.dispose();
-            signalProcessInstanceBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000080);
+          if (signalProcessInstanceBuilder_ == null) {
+            signalProcessInstance_ = null;
+          } else {
+            signalProcessInstanceBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000100);
           return this;
         }
 
@@ -38563,69 +40824,113 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.type_ = type_;
             to_bitField0_ |= 0x00000001;
           }
+          result.type_ = type_;
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.behaviorExpire_ = behaviorExpireBuilder_ == null
-                ? behaviorExpire_
-                : behaviorExpireBuilder_.build();
+            if (behaviorExpireBuilder_ == null) {
+              result.behaviorExpire_ = behaviorExpire_;
+            } else {
+              result.behaviorExpire_ = behaviorExpireBuilder_.build();
+            }
             to_bitField0_ |= 0x00000002;
           }
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.deactivateCallback_ = deactivateCallbackBuilder_ == null
-                ? deactivateCallback_
-                : deactivateCallbackBuilder_.build();
+            if (deactivateCallbackBuilder_ == null) {
+              result.deactivateCallback_ = deactivateCallback_;
+            } else {
+              result.deactivateCallback_ = deactivateCallbackBuilder_.build();
+            }
             to_bitField0_ |= 0x00000004;
           }
           if (((from_bitField0_ & 0x00000008) != 0)) {
-            result.logicalRetract_ = logicalRetractBuilder_ == null
-                ? logicalRetract_
-                : logicalRetractBuilder_.build();
+            if (logicalRetractBuilder_ == null) {
+              result.logicalRetract_ = logicalRetract_;
+            } else {
+              result.logicalRetract_ = logicalRetractBuilder_.build();
+            }
             to_bitField0_ |= 0x00000008;
           }
           if (((from_bitField0_ & 0x00000010) != 0)) {
-            result.propagate_ = propagateBuilder_ == null
-                ? propagate_
-                : propagateBuilder_.build();
+            if (propagateBuilder_ == null) {
+              result.propagate_ = propagate_;
+            } else {
+              result.propagate_ = propagateBuilder_.build();
+            }
             to_bitField0_ |= 0x00000010;
           }
           if (((from_bitField0_ & 0x00000020) != 0)) {
-            result.assert_ = assertBuilder_ == null
-                ? assert_
-                : assertBuilder_.build();
+            if (assertBuilder_ == null) {
+              result.assert_ = assert_;
+            } else {
+              result.assert_ = assertBuilder_.build();
+            }
             to_bitField0_ |= 0x00000020;
           }
           if (((from_bitField0_ & 0x00000040) != 0)) {
-            result.expire_ = expireBuilder_ == null
-                ? expire_
-                : expireBuilder_.build();
+            if (expireBuilder_ == null) {
+              result.expire_ = expire_;
+            } else {
+              result.expire_ = expireBuilder_.build();
+            }
             to_bitField0_ |= 0x00000040;
           }
           if (((from_bitField0_ & 0x00000080) != 0)) {
-            result.signal_ = signalBuilder_ == null
-                ? signal_
-                : signalBuilder_.build();
+            if (signalBuilder_ == null) {
+              result.signal_ = signal_;
+            } else {
+              result.signal_ = signalBuilder_.build();
+            }
             to_bitField0_ |= 0x00000080;
           }
           if (((from_bitField0_ & 0x00000100) != 0)) {
-            result.signalProcessInstance_ = signalProcessInstanceBuilder_ == null
-                ? signalProcessInstance_
-                : signalProcessInstanceBuilder_.build();
+            if (signalProcessInstanceBuilder_ == null) {
+              result.signalProcessInstance_ = signalProcessInstance_;
+            } else {
+              result.signalProcessInstance_ = signalProcessInstanceBuilder_.build();
+            }
             to_bitField0_ |= 0x00000100;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action) {
@@ -38665,7 +40970,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           if (other.hasSignalProcessInstance()) {
             mergeSignalProcessInstance(other.getSignalProcessInstance());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -38680,98 +40985,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  int tmpRaw = input.readEnum();
-                  org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType tmpValue =
-                      org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.forNumber(tmpRaw);
-                  if (tmpValue == null) {
-                    mergeUnknownVarintField(1, tmpRaw);
-                  } else {
-                    type_ = tmpRaw;
-                    bitField0_ |= 0x00000001;
-                  }
-                  break;
-                } // case 8
-                case 18: {
-                  input.readMessage(
-                      getBehaviorExpireFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 26: {
-                  input.readMessage(
-                      getDeactivateCallbackFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                case 34: {
-                  input.readMessage(
-                      getLogicalRetractFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 34
-                case 42: {
-                  input.readMessage(
-                      getPropagateFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 42
-                case 50: {
-                  input.readMessage(
-                      getAssertFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000020;
-                  break;
-                } // case 50
-                case 58: {
-                  input.readMessage(
-                      getExpireFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000040;
-                  break;
-                } // case 58
-                case 66: {
-                  input.readMessage(
-                      getSignalFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000080;
-                  break;
-                } // case 66
-                case 74: {
-                  input.readMessage(
-                      getSignalProcessInstanceFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000100;
-                  break;
-                } // case 74
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -38798,7 +41022,8 @@ public Builder mergeFrom(
          */
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType getType() {
-          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType result = org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.forNumber(type_);
+          @SuppressWarnings("deprecation")
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType result = org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.valueOf(type_);
           return result == null ? org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionType.BEHAVIOR_EXPIRE : result;
         }
         /**
@@ -38876,11 +41101,11 @@ public Builder setBehaviorExpire(org.drools.serialization.protobuf.ProtobufMessa
               throw new NullPointerException();
             }
             behaviorExpire_ = value;
+            onChanged();
           } else {
             behaviorExpireBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -38894,11 +41119,11 @@ public Builder setBehaviorExpire(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.Builder builderForValue) {
           if (behaviorExpireBuilder_ == null) {
             behaviorExpire_ = builderForValue.build();
+            onChanged();
           } else {
             behaviorExpireBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -38911,17 +41136,18 @@ public Builder setBehaviorExpire(
         public Builder mergeBehaviorExpire(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire value) {
           if (behaviorExpireBuilder_ == null) {
             if (((bitField0_ & 0x00000002) != 0) &&
-              behaviorExpire_ != null &&
-              behaviorExpire_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.getDefaultInstance()) {
-              getBehaviorExpireBuilder().mergeFrom(value);
+                behaviorExpire_ != null &&
+                behaviorExpire_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.getDefaultInstance()) {
+              behaviorExpire_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.newBuilder(behaviorExpire_).mergeFrom(value).buildPartial();
             } else {
               behaviorExpire_ = value;
             }
+            onChanged();
           } else {
             behaviorExpireBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -38932,13 +41158,13 @@ public Builder mergeBehaviorExpire(org.drools.serialization.protobuf.ProtobufMes
          * optional .org.drools.serialization.protobuf.ActionQueue.BehaviorExpire behavior_expire = 2;
          */
         public Builder clearBehaviorExpire() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          behaviorExpire_ = null;
-          if (behaviorExpireBuilder_ != null) {
-            behaviorExpireBuilder_.dispose();
-            behaviorExpireBuilder_ = null;
+          if (behaviorExpireBuilder_ == null) {
+            behaviorExpire_ = null;
+            onChanged();
+          } else {
+            behaviorExpireBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         /**
@@ -38979,8 +41205,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorEx
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpireOrBuilder> 
             getBehaviorExpireFieldBuilder() {
           if (behaviorExpireBuilder_ == null) {
-            behaviorExpireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpireOrBuilder>(
+            behaviorExpireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getBehaviorExpire(),
                     getParentForChildren(),
                     isClean());
@@ -39019,11 +41244,11 @@ public Builder setDeactivateCallback(org.drools.serialization.protobuf.ProtobufM
               throw new NullPointerException();
             }
             deactivateCallback_ = value;
+            onChanged();
           } else {
             deactivateCallbackBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -39033,11 +41258,11 @@ public Builder setDeactivateCallback(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.Builder builderForValue) {
           if (deactivateCallbackBuilder_ == null) {
             deactivateCallback_ = builderForValue.build();
+            onChanged();
           } else {
             deactivateCallbackBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -39046,30 +41271,31 @@ public Builder setDeactivateCallback(
         public Builder mergeDeactivateCallback(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback value) {
           if (deactivateCallbackBuilder_ == null) {
             if (((bitField0_ & 0x00000004) != 0) &&
-              deactivateCallback_ != null &&
-              deactivateCallback_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.getDefaultInstance()) {
-              getDeactivateCallbackBuilder().mergeFrom(value);
+                deactivateCallback_ != null &&
+                deactivateCallback_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.getDefaultInstance()) {
+              deactivateCallback_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.newBuilder(deactivateCallback_).mergeFrom(value).buildPartial();
             } else {
               deactivateCallback_ = value;
             }
+            onChanged();
           } else {
             deactivateCallbackBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.DeactivateCallback deactivate_callback = 3;
          */
         public Builder clearDeactivateCallback() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          deactivateCallback_ = null;
-          if (deactivateCallbackBuilder_ != null) {
-            deactivateCallbackBuilder_.dispose();
-            deactivateCallbackBuilder_ = null;
+          if (deactivateCallbackBuilder_ == null) {
+            deactivateCallback_ = null;
+            onChanged();
+          } else {
+            deactivateCallbackBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
         /**
@@ -39098,8 +41324,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Deactivate
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallbackOrBuilder> 
             getDeactivateCallbackFieldBuilder() {
           if (deactivateCallbackBuilder_ == null) {
-            deactivateCallbackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallbackOrBuilder>(
+            deactivateCallbackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getDeactivateCallback(),
                     getParentForChildren(),
                     isClean());
@@ -39138,11 +41363,11 @@ public Builder setLogicalRetract(org.drools.serialization.protobuf.ProtobufMessa
               throw new NullPointerException();
             }
             logicalRetract_ = value;
+            onChanged();
           } else {
             logicalRetractBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
@@ -39152,11 +41377,11 @@ public Builder setLogicalRetract(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.Builder builderForValue) {
           if (logicalRetractBuilder_ == null) {
             logicalRetract_ = builderForValue.build();
+            onChanged();
           } else {
             logicalRetractBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
@@ -39165,30 +41390,31 @@ public Builder setLogicalRetract(
         public Builder mergeLogicalRetract(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract value) {
           if (logicalRetractBuilder_ == null) {
             if (((bitField0_ & 0x00000008) != 0) &&
-              logicalRetract_ != null &&
-              logicalRetract_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.getDefaultInstance()) {
-              getLogicalRetractBuilder().mergeFrom(value);
+                logicalRetract_ != null &&
+                logicalRetract_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.getDefaultInstance()) {
+              logicalRetract_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.newBuilder(logicalRetract_).mergeFrom(value).buildPartial();
             } else {
               logicalRetract_ = value;
             }
+            onChanged();
           } else {
             logicalRetractBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.LogicalRetract logical_retract = 4;
          */
         public Builder clearLogicalRetract() {
-          bitField0_ = (bitField0_ & ~0x00000008);
-          logicalRetract_ = null;
-          if (logicalRetractBuilder_ != null) {
-            logicalRetractBuilder_.dispose();
-            logicalRetractBuilder_ = null;
+          if (logicalRetractBuilder_ == null) {
+            logicalRetract_ = null;
+            onChanged();
+          } else {
+            logicalRetractBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000008);
           return this;
         }
         /**
@@ -39217,8 +41443,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRet
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetractOrBuilder> 
             getLogicalRetractFieldBuilder() {
           if (logicalRetractBuilder_ == null) {
-            logicalRetractBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetractOrBuilder>(
+            logicalRetractBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getLogicalRetract(),
                     getParentForChildren(),
                     isClean());
@@ -39257,11 +41482,11 @@ public Builder setPropagate(org.drools.serialization.protobuf.ProtobufMessages.A
               throw new NullPointerException();
             }
             propagate_ = value;
+            onChanged();
           } else {
             propagateBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
@@ -39271,11 +41496,11 @@ public Builder setPropagate(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.Builder builderForValue) {
           if (propagateBuilder_ == null) {
             propagate_ = builderForValue.build();
+            onChanged();
           } else {
             propagateBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
@@ -39284,30 +41509,31 @@ public Builder setPropagate(
         public Builder mergePropagate(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate value) {
           if (propagateBuilder_ == null) {
             if (((bitField0_ & 0x00000010) != 0) &&
-              propagate_ != null &&
-              propagate_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.getDefaultInstance()) {
-              getPropagateBuilder().mergeFrom(value);
+                propagate_ != null &&
+                propagate_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.getDefaultInstance()) {
+              propagate_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.newBuilder(propagate_).mergeFrom(value).buildPartial();
             } else {
               propagate_ = value;
             }
+            onChanged();
           } else {
             propagateBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.Propagate propagate = 5;
          */
         public Builder clearPropagate() {
-          bitField0_ = (bitField0_ & ~0x00000010);
-          propagate_ = null;
-          if (propagateBuilder_ != null) {
-            propagateBuilder_.dispose();
-            propagateBuilder_ = null;
+          if (propagateBuilder_ == null) {
+            propagate_ = null;
+            onChanged();
+          } else {
+            propagateBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000010);
           return this;
         }
         /**
@@ -39336,8 +41562,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.PropagateO
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.PropagateOrBuilder> 
             getPropagateFieldBuilder() {
           if (propagateBuilder_ == null) {
-            propagateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.PropagateOrBuilder>(
+            propagateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getPropagate(),
                     getParentForChildren(),
                     isClean());
@@ -39376,11 +41601,11 @@ public Builder setAssert(org.drools.serialization.protobuf.ProtobufMessages.Acti
               throw new NullPointerException();
             }
             assert_ = value;
+            onChanged();
           } else {
             assertBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
@@ -39390,11 +41615,11 @@ public Builder setAssert(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.Builder builderForValue) {
           if (assertBuilder_ == null) {
             assert_ = builderForValue.build();
+            onChanged();
           } else {
             assertBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
@@ -39403,30 +41628,31 @@ public Builder setAssert(
         public Builder mergeAssert(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert value) {
           if (assertBuilder_ == null) {
             if (((bitField0_ & 0x00000020) != 0) &&
-              assert_ != null &&
-              assert_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.getDefaultInstance()) {
-              getAssertBuilder().mergeFrom(value);
+                assert_ != null &&
+                assert_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.getDefaultInstance()) {
+              assert_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.newBuilder(assert_).mergeFrom(value).buildPartial();
             } else {
               assert_ = value;
             }
+            onChanged();
           } else {
             assertBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.Assert assert = 6;
          */
         public Builder clearAssert() {
-          bitField0_ = (bitField0_ & ~0x00000020);
-          assert_ = null;
-          if (assertBuilder_ != null) {
-            assertBuilder_.dispose();
-            assertBuilder_ = null;
+          if (assertBuilder_ == null) {
+            assert_ = null;
+            onChanged();
+          } else {
+            assertBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000020);
           return this;
         }
         /**
@@ -39455,8 +41681,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.AssertOrBu
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.AssertOrBuilder> 
             getAssertFieldBuilder() {
           if (assertBuilder_ == null) {
-            assertBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.AssertOrBuilder>(
+            assertBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getAssert(),
                     getParentForChildren(),
                     isClean());
@@ -39495,11 +41720,11 @@ public Builder setExpire(org.drools.serialization.protobuf.ProtobufMessages.Acti
               throw new NullPointerException();
             }
             expire_ = value;
+            onChanged();
           } else {
             expireBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000040;
-          onChanged();
           return this;
         }
         /**
@@ -39509,11 +41734,11 @@ public Builder setExpire(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.Builder builderForValue) {
           if (expireBuilder_ == null) {
             expire_ = builderForValue.build();
+            onChanged();
           } else {
             expireBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000040;
-          onChanged();
           return this;
         }
         /**
@@ -39522,30 +41747,31 @@ public Builder setExpire(
         public Builder mergeExpire(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire value) {
           if (expireBuilder_ == null) {
             if (((bitField0_ & 0x00000040) != 0) &&
-              expire_ != null &&
-              expire_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.getDefaultInstance()) {
-              getExpireBuilder().mergeFrom(value);
+                expire_ != null &&
+                expire_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.getDefaultInstance()) {
+              expire_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.newBuilder(expire_).mergeFrom(value).buildPartial();
             } else {
               expire_ = value;
             }
+            onChanged();
           } else {
             expireBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000040;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.Expire expire = 7;
          */
         public Builder clearExpire() {
-          bitField0_ = (bitField0_ & ~0x00000040);
-          expire_ = null;
-          if (expireBuilder_ != null) {
-            expireBuilder_.dispose();
-            expireBuilder_ = null;
+          if (expireBuilder_ == null) {
+            expire_ = null;
+            onChanged();
+          } else {
+            expireBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000040);
           return this;
         }
         /**
@@ -39574,8 +41800,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ExpireOrBu
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ExpireOrBuilder> 
             getExpireFieldBuilder() {
           if (expireBuilder_ == null) {
-            expireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ExpireOrBuilder>(
+            expireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getExpire(),
                     getParentForChildren(),
                     isClean());
@@ -39614,11 +41839,11 @@ public Builder setSignal(org.drools.serialization.protobuf.ProtobufMessages.Acti
               throw new NullPointerException();
             }
             signal_ = value;
+            onChanged();
           } else {
             signalBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000080;
-          onChanged();
           return this;
         }
         /**
@@ -39628,11 +41853,11 @@ public Builder setSignal(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.Builder builderForValue) {
           if (signalBuilder_ == null) {
             signal_ = builderForValue.build();
+            onChanged();
           } else {
             signalBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000080;
-          onChanged();
           return this;
         }
         /**
@@ -39641,30 +41866,31 @@ public Builder setSignal(
         public Builder mergeSignal(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal value) {
           if (signalBuilder_ == null) {
             if (((bitField0_ & 0x00000080) != 0) &&
-              signal_ != null &&
-              signal_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.getDefaultInstance()) {
-              getSignalBuilder().mergeFrom(value);
+                signal_ != null &&
+                signal_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.getDefaultInstance()) {
+              signal_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.newBuilder(signal_).mergeFrom(value).buildPartial();
             } else {
               signal_ = value;
             }
+            onChanged();
           } else {
             signalBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000080;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.Signal signal = 8;
          */
         public Builder clearSignal() {
-          bitField0_ = (bitField0_ & ~0x00000080);
-          signal_ = null;
-          if (signalBuilder_ != null) {
-            signalBuilder_.dispose();
-            signalBuilder_ = null;
+          if (signalBuilder_ == null) {
+            signal_ = null;
+            onChanged();
+          } else {
+            signalBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000080);
           return this;
         }
         /**
@@ -39693,8 +41919,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalOrBu
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalOrBuilder> 
             getSignalFieldBuilder() {
           if (signalBuilder_ == null) {
-            signalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalOrBuilder>(
+            signalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getSignal(),
                     getParentForChildren(),
                     isClean());
@@ -39733,11 +41958,11 @@ public Builder setSignalProcessInstance(org.drools.serialization.protobuf.Protob
               throw new NullPointerException();
             }
             signalProcessInstance_ = value;
+            onChanged();
           } else {
             signalProcessInstanceBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000100;
-          onChanged();
           return this;
         }
         /**
@@ -39747,11 +41972,11 @@ public Builder setSignalProcessInstance(
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.Builder builderForValue) {
           if (signalProcessInstanceBuilder_ == null) {
             signalProcessInstance_ = builderForValue.build();
+            onChanged();
           } else {
             signalProcessInstanceBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000100;
-          onChanged();
           return this;
         }
         /**
@@ -39760,30 +41985,31 @@ public Builder setSignalProcessInstance(
         public Builder mergeSignalProcessInstance(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance value) {
           if (signalProcessInstanceBuilder_ == null) {
             if (((bitField0_ & 0x00000100) != 0) &&
-              signalProcessInstance_ != null &&
-              signalProcessInstance_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.getDefaultInstance()) {
-              getSignalProcessInstanceBuilder().mergeFrom(value);
+                signalProcessInstance_ != null &&
+                signalProcessInstance_ != org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.getDefaultInstance()) {
+              signalProcessInstance_ =
+                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.newBuilder(signalProcessInstance_).mergeFrom(value).buildPartial();
             } else {
               signalProcessInstance_ = value;
             }
+            onChanged();
           } else {
             signalProcessInstanceBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000100;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.ActionQueue.SignalProcessInstance signal_process_instance = 9;
          */
         public Builder clearSignalProcessInstance() {
-          bitField0_ = (bitField0_ & ~0x00000100);
-          signalProcessInstance_ = null;
-          if (signalProcessInstanceBuilder_ != null) {
-            signalProcessInstanceBuilder_.dispose();
-            signalProcessInstanceBuilder_ = null;
+          if (signalProcessInstanceBuilder_ == null) {
+            signalProcessInstance_ = null;
+            onChanged();
+          } else {
+            signalProcessInstanceBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000100);
           return this;
         }
         /**
@@ -39812,8 +42038,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProc
             org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstanceOrBuilder> 
             getSignalProcessInstanceFieldBuilder() {
           if (signalProcessInstanceBuilder_ == null) {
-            signalProcessInstanceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstanceOrBuilder>(
+            signalProcessInstanceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getSignalProcessInstance(),
                     getParentForChildren(),
                     isClean());
@@ -39854,18 +42079,7 @@ public Action parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Action(input, extensionRegistry);
         }
       };
 
@@ -39922,6 +42136,54 @@ protected java.lang.Object newInstance(
         return new BehaviorExpire();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private BehaviorExpire(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                nodeId_ = input.readInt32();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_BehaviorExpire_descriptor;
@@ -39937,7 +42199,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int NODE_ID_FIELD_NUMBER = 1;
-      private int nodeId_ = 0;
+      private int nodeId_;
       /**
        * optional int32 node_id = 1;
        * @return Whether the nodeId field is set.
@@ -39972,7 +42234,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000001) != 0)) {
           output.writeInt32(1, nodeId_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -39985,7 +42247,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(1, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -40005,7 +42267,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getNodeId()
               != other.getNodeId()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -40020,7 +42282,7 @@ public int hashCode() {
           hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
           hash = (53 * hash) + getNodeId();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -40137,19 +42399,24 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           nodeId_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -40176,21 +42443,49 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorEx
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
             result.nodeId_ = nodeId_;
             to_bitField0_ |= 0x00000001;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire) {
@@ -40206,7 +42501,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           if (other.hasNodeId()) {
             setNodeId(other.getNodeId());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -40221,35 +42516,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  nodeId_ = input.readInt32();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.BehaviorExpire) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -40277,9 +42554,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -40326,18 +42602,7 @@ public BehaviorExpire parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new BehaviorExpire(input, extensionRegistry);
         }
       };
 
@@ -40401,6 +42666,55 @@ protected java.lang.Object newInstance(
         return new DeactivateCallback();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private DeactivateCallback(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000001;
+                ruleflowGroup_ = bs;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_DeactivateCallback_descriptor;
@@ -40416,8 +42730,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int RULEFLOW_GROUP_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object ruleflowGroup_ = "";
+      private volatile java.lang.Object ruleflowGroup_;
       /**
        * optional string ruleflow_group = 1;
        * @return Whether the ruleflowGroup field is set.
@@ -40481,7 +42794,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000001) != 0)) {
           com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ruleflowGroup_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -40493,7 +42806,7 @@ public int getSerializedSize() {
         if (((bitField0_ & 0x00000001) != 0)) {
           size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ruleflowGroup_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -40513,7 +42826,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getRuleflowGroup()
               .equals(other.getRuleflowGroup())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -40528,7 +42841,7 @@ public int hashCode() {
           hash = (37 * hash) + RULEFLOW_GROUP_FIELD_NUMBER;
           hash = (53 * hash) + getRuleflowGroup().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -40645,19 +42958,24 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           ruleflowGroup_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -40684,21 +43002,49 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Deactivate
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.ruleflowGroup_ = ruleflowGroup_;
             to_bitField0_ |= 0x00000001;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.ruleflowGroup_ = ruleflowGroup_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback) {
@@ -40712,11 +43058,11 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
         public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback other) {
           if (other == org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback.getDefaultInstance()) return this;
           if (other.hasRuleflowGroup()) {
-            ruleflowGroup_ = other.ruleflowGroup_;
             bitField0_ |= 0x00000001;
+            ruleflowGroup_ = other.ruleflowGroup_;
             onChanged();
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -40731,35 +43077,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  ruleflowGroup_ = input.readBytes();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.DeactivateCallback) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -40814,9 +43142,11 @@ public java.lang.String getRuleflowGroup() {
          */
         public Builder setRuleflowGroup(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           ruleflowGroup_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -40825,8 +43155,8 @@ public Builder setRuleflowGroup(
          * @return This builder for chaining.
          */
         public Builder clearRuleflowGroup() {
-          ruleflowGroup_ = getDefaultInstance().getRuleflowGroup();
           bitField0_ = (bitField0_ & ~0x00000001);
+          ruleflowGroup_ = getDefaultInstance().getRuleflowGroup();
           onChanged();
           return this;
         }
@@ -40837,9 +43167,11 @@ public Builder clearRuleflowGroup() {
          */
         public Builder setRuleflowGroupBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           ruleflowGroup_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -40876,18 +43208,7 @@ public DeactivateCallback parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new DeactivateCallback(input, extensionRegistry);
         }
       };
 
@@ -40981,6 +43302,77 @@ protected java.lang.Object newInstance(
         return new LogicalRetract();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private LogicalRetract(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                handleId_ = input.readInt64();
+                break;
+              }
+              case 18: {
+                org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000002) != 0)) {
+                  subBuilder = activation_.toBuilder();
+                }
+                activation_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(activation_);
+                  activation_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000002;
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                fullyRetract_ = input.readBool();
+                break;
+              }
+              case 32: {
+                bitField0_ |= 0x00000008;
+                update_ = input.readBool();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_LogicalRetract_descriptor;
@@ -40996,7 +43388,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int HANDLE_ID_FIELD_NUMBER = 1;
-      private long handleId_ = 0L;
+      private long handleId_;
       /**
        * optional int64 handle_id = 1;
        * @return Whether the handleId field is set.
@@ -41041,7 +43433,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
       }
 
       public static final int FULLY_RETRACT_FIELD_NUMBER = 3;
-      private boolean fullyRetract_ = false;
+      private boolean fullyRetract_;
       /**
        * optional bool fully_retract = 3;
        * @return Whether the fullyRetract field is set.
@@ -41060,7 +43452,7 @@ public boolean getFullyRetract() {
       }
 
       public static final int UPDATE_FIELD_NUMBER = 4;
-      private boolean update_ = false;
+      private boolean update_;
       /**
        * optional bool update = 4;
        * @return Whether the update field is set.
@@ -41104,7 +43496,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000008) != 0)) {
           output.writeBool(4, update_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -41129,7 +43521,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBoolSize(4, update_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -41164,7 +43556,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getUpdate()
               != other.getUpdate()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -41194,7 +43586,7 @@ public int hashCode() {
           hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
               getUpdate());
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -41328,15 +43720,18 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           handleId_ = 0L;
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (activationBuilder_ == null) {
+            activation_ = null;
+          } else {
+            activationBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000002);
           fullyRetract_ = false;
+          bitField0_ = (bitField0_ & ~0x00000004);
           update_ = false;
+          bitField0_ = (bitField0_ & ~0x00000008);
           return this;
         }
 
@@ -41363,12 +43758,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRet
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -41376,9 +43765,11 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
             to_bitField0_ |= 0x00000001;
           }
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.activation_ = activationBuilder_ == null
-                ? activation_
-                : activationBuilder_.build();
+            if (activationBuilder_ == null) {
+              result.activation_ = activation_;
+            } else {
+              result.activation_ = activationBuilder_.build();
+            }
             to_bitField0_ |= 0x00000002;
           }
           if (((from_bitField0_ & 0x00000004) != 0)) {
@@ -41389,9 +43780,43 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
             result.update_ = update_;
             to_bitField0_ |= 0x00000008;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract) {
@@ -41416,7 +43841,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           if (other.hasUpdate()) {
             setUpdate(other.getUpdate());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -41431,52 +43856,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  handleId_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 18: {
-                  input.readMessage(
-                      getActivationFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 24: {
-                  fullyRetract_ = input.readBool();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 32: {
-                  update_ = input.readBool();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 32
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.LogicalRetract) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -41504,9 +43894,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -41551,11 +43940,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -41565,11 +43954,11 @@ public Builder setActivation(
             org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder builderForValue) {
           if (activationBuilder_ == null) {
             activation_ = builderForValue.build();
+            onChanged();
           } else {
             activationBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -41578,30 +43967,31 @@ public Builder setActivation(
         public Builder mergeActivation(org.drools.serialization.protobuf.ProtobufMessages.Activation value) {
           if (activationBuilder_ == null) {
             if (((bitField0_ & 0x00000002) != 0) &&
-              activation_ != null &&
-              activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
-              getActivationBuilder().mergeFrom(value);
+                activation_ != null &&
+                activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
+              activation_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Activation.newBuilder(activation_).mergeFrom(value).buildPartial();
             } else {
               activation_ = value;
             }
+            onChanged();
           } else {
             activationBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Activation activation = 2;
          */
         public Builder clearActivation() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          if (activationBuilder_ == null) {
+            activation_ = null;
+            onChanged();
+          } else {
+            activationBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         /**
@@ -41630,8 +44020,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
             org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
             getActivationFieldBuilder() {
           if (activationBuilder_ == null) {
-            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getActivation(),
                     getParentForChildren(),
                     isClean());
@@ -41663,9 +44052,8 @@ public boolean getFullyRetract() {
          * @return This builder for chaining.
          */
         public Builder setFullyRetract(boolean value) {
-
-          fullyRetract_ = value;
           bitField0_ |= 0x00000004;
+          fullyRetract_ = value;
           onChanged();
           return this;
         }
@@ -41703,9 +44091,8 @@ public boolean getUpdate() {
          * @return This builder for chaining.
          */
         public Builder setUpdate(boolean value) {
-
-          update_ = value;
           bitField0_ |= 0x00000008;
+          update_ = value;
           onChanged();
           return this;
         }
@@ -41752,18 +44139,7 @@ public LogicalRetract parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new LogicalRetract(input, extensionRegistry);
         }
       };
 
@@ -41820,6 +44196,54 @@ protected java.lang.Object newInstance(
         return new Propagate();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Propagate(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                nodeId_ = input.readInt32();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_Propagate_descriptor;
@@ -41835,7 +44259,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int NODE_ID_FIELD_NUMBER = 1;
-      private int nodeId_ = 0;
+      private int nodeId_;
       /**
        * optional int32 node_id = 1;
        * @return Whether the nodeId field is set.
@@ -41870,7 +44294,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000001) != 0)) {
           output.writeInt32(1, nodeId_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -41883,7 +44307,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(1, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -41903,7 +44327,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getNodeId()
               != other.getNodeId()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -41918,7 +44342,7 @@ public int hashCode() {
           hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
           hash = (53 * hash) + getNodeId();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -42035,19 +44459,24 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           nodeId_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -42074,21 +44503,49 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
             result.nodeId_ = nodeId_;
             to_bitField0_ |= 0x00000001;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate) {
@@ -42104,7 +44561,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           if (other.hasNodeId()) {
             setNodeId(other.getNodeId());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -42119,35 +44576,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  nodeId_ = input.readInt32();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Propagate) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -42175,9 +44614,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -42224,18 +44662,7 @@ public Propagate parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Propagate(input, extensionRegistry);
         }
       };
 
@@ -42365,6 +44792,89 @@ protected java.lang.Object newInstance(
         return new Assert();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Assert(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                handleId_ = input.readInt64();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                removeLogical_ = input.readBool();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                updateEqualsMap_ = input.readBool();
+                break;
+              }
+              case 34: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000008;
+                originPkgName_ = bs;
+                break;
+              }
+              case 42: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000010;
+                originRuleName_ = bs;
+                break;
+              }
+              case 50: {
+                org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000020) != 0)) {
+                  subBuilder = tuple_.toBuilder();
+                }
+                tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(tuple_);
+                  tuple_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000020;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_Assert_descriptor;
@@ -42380,7 +44890,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int HANDLE_ID_FIELD_NUMBER = 1;
-      private long handleId_ = 0L;
+      private long handleId_;
       /**
        * optional int64 handle_id = 1;
        * @return Whether the handleId field is set.
@@ -42399,7 +44909,7 @@ public long getHandleId() {
       }
 
       public static final int REMOVE_LOGICAL_FIELD_NUMBER = 2;
-      private boolean removeLogical_ = false;
+      private boolean removeLogical_;
       /**
        * optional bool remove_logical = 2;
        * @return Whether the removeLogical field is set.
@@ -42418,7 +44928,7 @@ public boolean getRemoveLogical() {
       }
 
       public static final int UPDATE_EQUALS_MAP_FIELD_NUMBER = 3;
-      private boolean updateEqualsMap_ = false;
+      private boolean updateEqualsMap_;
       /**
        * optional bool update_equals_map = 3;
        * @return Whether the updateEqualsMap field is set.
@@ -42437,8 +44947,7 @@ public boolean getUpdateEqualsMap() {
       }
 
       public static final int ORIGIN_PKG_NAME_FIELD_NUMBER = 4;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object originPkgName_ = "";
+      private volatile java.lang.Object originPkgName_;
       /**
        * optional string origin_pkg_name = 4;
        * @return Whether the originPkgName field is set.
@@ -42486,8 +44995,7 @@ public java.lang.String getOriginPkgName() {
       }
 
       public static final int ORIGIN_RULE_NAME_FIELD_NUMBER = 5;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object originRuleName_ = "";
+      private volatile java.lang.Object originRuleName_;
       /**
        * optional string origin_rule_name = 5;
        * @return Whether the originRuleName field is set.
@@ -42592,7 +45100,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000020) != 0)) {
           output.writeMessage(6, getTuple());
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -42623,7 +45131,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(6, getTuple());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -42668,7 +45176,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getTuple()
               .equals(other.getTuple())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -42706,7 +45214,7 @@ public int hashCode() {
           hash = (37 * hash) + TUPLE_FIELD_NUMBER;
           hash = (53 * hash) + getTuple().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -42840,17 +45348,22 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           handleId_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           removeLogical_ = false;
+          bitField0_ = (bitField0_ & ~0x00000002);
           updateEqualsMap_ = false;
+          bitField0_ = (bitField0_ & ~0x00000004);
           originPkgName_ = "";
+          bitField0_ = (bitField0_ & ~0x00000008);
           originRuleName_ = "";
-          tuple_ = null;
-          if (tupleBuilder_ != null) {
-            tupleBuilder_.dispose();
-            tupleBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000010);
+          if (tupleBuilder_ == null) {
+            tuple_ = null;
+          } else {
+            tupleBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000020);
           return this;
         }
 
@@ -42877,12 +45390,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -42898,22 +45405,58 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
             to_bitField0_ |= 0x00000004;
           }
           if (((from_bitField0_ & 0x00000008) != 0)) {
-            result.originPkgName_ = originPkgName_;
             to_bitField0_ |= 0x00000008;
           }
+          result.originPkgName_ = originPkgName_;
           if (((from_bitField0_ & 0x00000010) != 0)) {
-            result.originRuleName_ = originRuleName_;
             to_bitField0_ |= 0x00000010;
           }
+          result.originRuleName_ = originRuleName_;
           if (((from_bitField0_ & 0x00000020) != 0)) {
-            result.tuple_ = tupleBuilder_ == null
-                ? tuple_
-                : tupleBuilder_.build();
+            if (tupleBuilder_ == null) {
+              result.tuple_ = tuple_;
+            } else {
+              result.tuple_ = tupleBuilder_.build();
+            }
             to_bitField0_ |= 0x00000020;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert) {
@@ -42936,19 +45479,19 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
             setUpdateEqualsMap(other.getUpdateEqualsMap());
           }
           if (other.hasOriginPkgName()) {
-            originPkgName_ = other.originPkgName_;
             bitField0_ |= 0x00000008;
+            originPkgName_ = other.originPkgName_;
             onChanged();
           }
           if (other.hasOriginRuleName()) {
-            originRuleName_ = other.originRuleName_;
             bitField0_ |= 0x00000010;
+            originRuleName_ = other.originRuleName_;
             onChanged();
           }
           if (other.hasTuple()) {
             mergeTuple(other.getTuple());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -42963,62 +45506,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  handleId_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  removeLogical_ = input.readBool();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  updateEqualsMap_ = input.readBool();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 34: {
-                  originPkgName_ = input.readBytes();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 34
-                case 42: {
-                  originRuleName_ = input.readBytes();
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 42
-                case 50: {
-                  input.readMessage(
-                      getTupleFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000020;
-                  break;
-                } // case 50
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Assert) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -43046,9 +45544,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -43086,9 +45583,8 @@ public boolean getRemoveLogical() {
          * @return This builder for chaining.
          */
         public Builder setRemoveLogical(boolean value) {
-
-          removeLogical_ = value;
           bitField0_ |= 0x00000002;
+          removeLogical_ = value;
           onChanged();
           return this;
         }
@@ -43126,9 +45622,8 @@ public boolean getUpdateEqualsMap() {
          * @return This builder for chaining.
          */
         public Builder setUpdateEqualsMap(boolean value) {
-
-          updateEqualsMap_ = value;
           bitField0_ |= 0x00000004;
+          updateEqualsMap_ = value;
           onChanged();
           return this;
         }
@@ -43193,9 +45688,11 @@ public java.lang.String getOriginPkgName() {
          */
         public Builder setOriginPkgName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000008;
           originPkgName_ = value;
-          bitField0_ |= 0x00000008;
           onChanged();
           return this;
         }
@@ -43204,8 +45701,8 @@ public Builder setOriginPkgName(
          * @return This builder for chaining.
          */
         public Builder clearOriginPkgName() {
-          originPkgName_ = getDefaultInstance().getOriginPkgName();
           bitField0_ = (bitField0_ & ~0x00000008);
+          originPkgName_ = getDefaultInstance().getOriginPkgName();
           onChanged();
           return this;
         }
@@ -43216,9 +45713,11 @@ public Builder clearOriginPkgName() {
          */
         public Builder setOriginPkgNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000008;
           originPkgName_ = value;
-          bitField0_ |= 0x00000008;
           onChanged();
           return this;
         }
@@ -43273,9 +45772,11 @@ public java.lang.String getOriginRuleName() {
          */
         public Builder setOriginRuleName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
           originRuleName_ = value;
-          bitField0_ |= 0x00000010;
           onChanged();
           return this;
         }
@@ -43284,8 +45785,8 @@ public Builder setOriginRuleName(
          * @return This builder for chaining.
          */
         public Builder clearOriginRuleName() {
-          originRuleName_ = getDefaultInstance().getOriginRuleName();
           bitField0_ = (bitField0_ & ~0x00000010);
+          originRuleName_ = getDefaultInstance().getOriginRuleName();
           onChanged();
           return this;
         }
@@ -43296,9 +45797,11 @@ public Builder clearOriginRuleName() {
          */
         public Builder setOriginRuleNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
           originRuleName_ = value;
-          bitField0_ |= 0x00000010;
           onChanged();
           return this;
         }
@@ -43333,11 +45836,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
               throw new NullPointerException();
             }
             tuple_ = value;
+            onChanged();
           } else {
             tupleBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
@@ -43347,11 +45850,11 @@ public Builder setTuple(
             org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
           if (tupleBuilder_ == null) {
             tuple_ = builderForValue.build();
+            onChanged();
           } else {
             tupleBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
@@ -43360,30 +45863,31 @@ public Builder setTuple(
         public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
           if (tupleBuilder_ == null) {
             if (((bitField0_ & 0x00000020) != 0) &&
-              tuple_ != null &&
-              tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-              getTupleBuilder().mergeFrom(value);
+                tuple_ != null &&
+                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+              tuple_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
             } else {
               tuple_ = value;
             }
+            onChanged();
           } else {
             tupleBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000020;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Tuple tuple = 6;
          */
         public Builder clearTuple() {
-          bitField0_ = (bitField0_ & ~0x00000020);
-          tuple_ = null;
-          if (tupleBuilder_ != null) {
-            tupleBuilder_.dispose();
-            tupleBuilder_ = null;
+          if (tupleBuilder_ == null) {
+            tuple_ = null;
+            onChanged();
+          } else {
+            tupleBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000020);
           return this;
         }
         /**
@@ -43412,8 +45916,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
             org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
             getTupleFieldBuilder() {
           if (tupleBuilder_ == null) {
-            tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+            tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTuple(),
                     getParentForChildren(),
                     isClean());
@@ -43454,18 +45957,7 @@ public Assert parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Assert(input, extensionRegistry);
         }
       };
 
@@ -43533,6 +46025,59 @@ protected java.lang.Object newInstance(
         return new Expire();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Expire(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                handleId_ = input.readInt64();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                nodeId_ = input.readInt32();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_Expire_descriptor;
@@ -43548,7 +46093,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int HANDLE_ID_FIELD_NUMBER = 1;
-      private long handleId_ = 0L;
+      private long handleId_;
       /**
        * optional int64 handle_id = 1;
        * @return Whether the handleId field is set.
@@ -43567,7 +46112,7 @@ public long getHandleId() {
       }
 
       public static final int NODE_ID_FIELD_NUMBER = 2;
-      private int nodeId_ = 0;
+      private int nodeId_;
       /**
        * optional int32 node_id = 2;
        * @return Whether the nodeId field is set.
@@ -43605,7 +46150,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000002) != 0)) {
           output.writeInt32(2, nodeId_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -43622,7 +46167,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(2, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -43647,7 +46192,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getNodeId()
               != other.getNodeId()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -43667,7 +46212,7 @@ public int hashCode() {
           hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
           hash = (53 * hash) + getNodeId();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -43784,20 +46329,26 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           handleId_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           nodeId_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
 
@@ -43824,12 +46375,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -43840,9 +46385,43 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ac
             result.nodeId_ = nodeId_;
             to_bitField0_ |= 0x00000002;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire) {
@@ -43861,7 +46440,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
           if (other.hasNodeId()) {
             setNodeId(other.getNodeId());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -43876,40 +46455,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  handleId_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  nodeId_ = input.readInt32();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Expire) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -43937,9 +46493,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -43977,9 +46532,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000002;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -44026,18 +46580,7 @@ public Expire parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Expire(input, extensionRegistry);
         }
       };
 
@@ -44113,6 +46656,60 @@ protected java.lang.Object newInstance(
         return new Signal();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Signal(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000001;
+                type_ = bs;
+                break;
+              }
+              case 18: {
+                bitField0_ |= 0x00000002;
+                event_ = input.readBytes();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_Signal_descriptor;
@@ -44128,8 +46725,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int TYPE_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object type_ = "";
+      private volatile java.lang.Object type_;
       /**
        * optional string type = 1;
        * @return Whether the type field is set.
@@ -44177,7 +46773,7 @@ public java.lang.String getType() {
       }
 
       public static final int EVENT_FIELD_NUMBER = 2;
-      private com.google.protobuf.ByteString event_ = com.google.protobuf.ByteString.EMPTY;
+      private com.google.protobuf.ByteString event_;
       /**
        * optional bytes event = 2;
        * @return Whether the event field is set.
@@ -44215,7 +46811,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000002) != 0)) {
           output.writeBytes(2, event_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -44231,7 +46827,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBytesSize(2, event_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -44256,7 +46852,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getEvent()
               .equals(other.getEvent())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -44275,7 +46871,7 @@ public int hashCode() {
           hash = (37 * hash) + EVENT_FIELD_NUMBER;
           hash = (53 * hash) + getEvent().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -44392,20 +46988,26 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           type_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
           event_ = com.google.protobuf.ByteString.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
 
@@ -44432,25 +47034,53 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.type_ = type_;
             to_bitField0_ |= 0x00000001;
           }
+          result.type_ = type_;
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.event_ = event_;
             to_bitField0_ |= 0x00000002;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.event_ = event_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal) {
@@ -44464,14 +47094,14 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
         public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal other) {
           if (other == org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal.getDefaultInstance()) return this;
           if (other.hasType()) {
-            type_ = other.type_;
             bitField0_ |= 0x00000001;
+            type_ = other.type_;
             onChanged();
           }
           if (other.hasEvent()) {
             setEvent(other.getEvent());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -44486,40 +47116,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  type_ = input.readBytes();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                case 18: {
-                  event_ = input.readBytes();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Signal) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -44574,9 +47181,11 @@ public java.lang.String getType() {
          */
         public Builder setType(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           type_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -44585,8 +47194,8 @@ public Builder setType(
          * @return This builder for chaining.
          */
         public Builder clearType() {
-          type_ = getDefaultInstance().getType();
           bitField0_ = (bitField0_ & ~0x00000001);
+          type_ = getDefaultInstance().getType();
           onChanged();
           return this;
         }
@@ -44597,9 +47206,11 @@ public Builder clearType() {
          */
         public Builder setTypeBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           type_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -44627,9 +47238,11 @@ public com.google.protobuf.ByteString getEvent() {
          * @return This builder for chaining.
          */
         public Builder setEvent(com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
           event_ = value;
-          bitField0_ |= 0x00000002;
           onChanged();
           return this;
         }
@@ -44676,18 +47289,7 @@ public Signal parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Signal(input, extensionRegistry);
         }
       };
 
@@ -44781,6 +47383,66 @@ protected java.lang.Object newInstance(
         return new SignalProcessInstance();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private SignalProcessInstance(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000001;
+                type_ = bs;
+                break;
+              }
+              case 18: {
+                bitField0_ |= 0x00000002;
+                event_ = input.readBytes();
+                break;
+              }
+              case 26: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000004;
+                processInstanceId_ = bs;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_ActionQueue_SignalProcessInstance_descriptor;
@@ -44796,8 +47458,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int TYPE_FIELD_NUMBER = 1;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object type_ = "";
+      private volatile java.lang.Object type_;
       /**
        * optional string type = 1;
        * @return Whether the type field is set.
@@ -44845,7 +47506,7 @@ public java.lang.String getType() {
       }
 
       public static final int EVENT_FIELD_NUMBER = 2;
-      private com.google.protobuf.ByteString event_ = com.google.protobuf.ByteString.EMPTY;
+      private com.google.protobuf.ByteString event_;
       /**
        * optional bytes event = 2;
        * @return Whether the event field is set.
@@ -44864,8 +47525,7 @@ public com.google.protobuf.ByteString getEvent() {
       }
 
       public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 3;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object processInstanceId_ = "";
+      private volatile java.lang.Object processInstanceId_;
       /**
        * optional string process_instance_id = 3;
        * @return Whether the processInstanceId field is set.
@@ -44935,7 +47595,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000004) != 0)) {
           com.google.protobuf.GeneratedMessageV3.writeString(output, 3, processInstanceId_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -44954,7 +47614,7 @@ public int getSerializedSize() {
         if (((bitField0_ & 0x00000004) != 0)) {
           size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, processInstanceId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -44984,7 +47644,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getProcessInstanceId()
               .equals(other.getProcessInstanceId())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -45007,7 +47667,7 @@ public int hashCode() {
           hash = (37 * hash) + PROCESS_INSTANCE_ID_FIELD_NUMBER;
           hash = (53 * hash) + getProcessInstanceId().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -45124,21 +47784,28 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           type_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
           event_ = com.google.protobuf.ByteString.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000002);
           processInstanceId_ = "";
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
 
@@ -45165,29 +47832,57 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProc
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.type_ = type_;
             to_bitField0_ |= 0x00000001;
           }
+          result.type_ = type_;
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.event_ = event_;
             to_bitField0_ |= 0x00000002;
           }
+          result.event_ = event_;
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.processInstanceId_ = processInstanceId_;
             to_bitField0_ |= 0x00000004;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.processInstanceId_ = processInstanceId_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance) {
@@ -45201,19 +47896,19 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
         public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance other) {
           if (other == org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance.getDefaultInstance()) return this;
           if (other.hasType()) {
-            type_ = other.type_;
             bitField0_ |= 0x00000001;
+            type_ = other.type_;
             onChanged();
           }
           if (other.hasEvent()) {
             setEvent(other.getEvent());
           }
           if (other.hasProcessInstanceId()) {
-            processInstanceId_ = other.processInstanceId_;
             bitField0_ |= 0x00000004;
+            processInstanceId_ = other.processInstanceId_;
             onChanged();
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -45228,45 +47923,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  type_ = input.readBytes();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                case 18: {
-                  event_ = input.readBytes();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 26: {
-                  processInstanceId_ = input.readBytes();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProcessInstance) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -45321,9 +47988,11 @@ public java.lang.String getType() {
          */
         public Builder setType(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           type_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -45332,8 +48001,8 @@ public Builder setType(
          * @return This builder for chaining.
          */
         public Builder clearType() {
-          type_ = getDefaultInstance().getType();
           bitField0_ = (bitField0_ & ~0x00000001);
+          type_ = getDefaultInstance().getType();
           onChanged();
           return this;
         }
@@ -45344,9 +48013,11 @@ public Builder clearType() {
          */
         public Builder setTypeBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
           type_ = value;
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -45374,9 +48045,11 @@ public com.google.protobuf.ByteString getEvent() {
          * @return This builder for chaining.
          */
         public Builder setEvent(com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
           event_ = value;
-          bitField0_ |= 0x00000002;
           onChanged();
           return this;
         }
@@ -45441,9 +48114,11 @@ public java.lang.String getProcessInstanceId() {
          */
         public Builder setProcessInstanceId(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
           processInstanceId_ = value;
-          bitField0_ |= 0x00000004;
           onChanged();
           return this;
         }
@@ -45452,8 +48127,8 @@ public Builder setProcessInstanceId(
          * @return This builder for chaining.
          */
         public Builder clearProcessInstanceId() {
-          processInstanceId_ = getDefaultInstance().getProcessInstanceId();
           bitField0_ = (bitField0_ & ~0x00000004);
+          processInstanceId_ = getDefaultInstance().getProcessInstanceId();
           onChanged();
           return this;
         }
@@ -45464,9 +48139,11 @@ public Builder clearProcessInstanceId() {
          */
         public Builder setProcessInstanceIdBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
           processInstanceId_ = value;
-          bitField0_ |= 0x00000004;
           onChanged();
           return this;
         }
@@ -45503,18 +48180,7 @@ public SignalProcessInstance parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new SignalProcessInstance(input, extensionRegistry);
         }
       };
 
@@ -45535,7 +48201,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.SignalProc
     }
 
     public static final int ACTION_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
     private java.util.List action_;
     /**
      * repeated .org.drools.serialization.protobuf.ActionQueue.Action action = 1;
@@ -45592,7 +48257,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < action_.size(); i++) {
         output.writeMessage(1, action_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -45605,7 +48270,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, action_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -45622,7 +48287,7 @@ public boolean equals(final java.lang.Object obj) {
 
       if (!getActionList()
           .equals(other.getActionList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -45637,7 +48302,7 @@ public int hashCode() {
         hash = (37 * hash) + ACTION_FIELD_NUMBER;
         hash = (53 * hash) + getActionList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -45754,25 +48419,29 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getActionFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         if (actionBuilder_ == null) {
           action_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
-          action_ = null;
           actionBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000001);
         return this;
       }
 
@@ -45799,13 +48468,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.ActionQueue result = new org.drools.serialization.protobuf.ProtobufMessages.ActionQueue(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue result) {
+        int from_bitField0_ = bitField0_;
         if (actionBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             action_ = java.util.Collections.unmodifiableList(action_);
@@ -45815,12 +48478,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.action_ = actionBuilder_.build();
         }
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.ActionQueue result) {
-        int from_bitField0_ = bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.ActionQueue) {
@@ -45859,7 +48552,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -45874,43 +48567,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.ActionQueue parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action.PARSER,
-                        extensionRegistry);
-                if (actionBuilder_ == null) {
-                  ensureActionIsMutable();
-                  action_.add(m);
-                } else {
-                  actionBuilder_.addMessage(m);
-                }
-                break;
-              } // case 10
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.ActionQueue) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -45919,7 +48586,7 @@ public Builder mergeFrom(
         java.util.Collections.emptyList();
       private void ensureActionIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          action_ = new java.util.ArrayList(action_);
+          action_ = new java.util.ArrayList<>(action_);
           bitField0_ |= 0x00000001;
          }
       }
@@ -46144,8 +48811,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action.Bui
           org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionOrBuilder> 
           getActionFieldBuilder() {
         if (actionBuilder_ == null) {
-          actionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.Action.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActionQueue.ActionOrBuilder>(
+          actionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   action_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
@@ -46187,18 +48853,7 @@ public ActionQueue parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new ActionQueue(input, extensionRegistry);
       }
     };
 
@@ -46269,6 +48924,61 @@ protected java.lang.Object newInstance(
       return new Timers();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Timers(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 10: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                timer_ = new java.util.ArrayList<>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              timer_.add(
+                  input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer.PARSER, extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          timer_ = java.util.Collections.unmodifiableList(timer_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_descriptor;
@@ -46505,6 +49215,113 @@ protected java.lang.Object newInstance(
         return new Timer();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private Timer(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                int rawValue = input.readEnum();
+                  @SuppressWarnings("deprecation")
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType value = org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.valueOf(rawValue);
+                if (value == null) {
+                  unknownFields.mergeVarintField(1, rawValue);
+                } else {
+                  bitField0_ |= 0x00000001;
+                  type_ = rawValue;
+                }
+                break;
+              }
+              case 18: {
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000002) != 0)) {
+                  subBuilder = expire_.toBuilder();
+                }
+                expire_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(expire_);
+                  expire_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000002;
+                break;
+              }
+              case 26: {
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000004) != 0)) {
+                  subBuilder = activation_.toBuilder();
+                }
+                activation_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(activation_);
+                  activation_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000004;
+                break;
+              }
+              case 34: {
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000008) != 0)) {
+                  subBuilder = behavior_.toBuilder();
+                }
+                behavior_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(behavior_);
+                  behavior_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000008;
+                break;
+              }
+              case 42: {
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000010) != 0)) {
+                  subBuilder = timerNode_.toBuilder();
+                }
+                timerNode_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(timerNode_);
+                  timerNode_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000010;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_Timer_descriptor;
@@ -46520,7 +49337,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int TYPE_FIELD_NUMBER = 1;
-      private int type_ = 1;
+      private int type_;
       /**
        * optional .org.drools.serialization.protobuf.Timers.TimerType type = 1;
        * @return Whether the type field is set.
@@ -46533,7 +49350,8 @@ protected java.lang.Object newInstance(
        * @return The type.
        */
       @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType getType() {
-        org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType result = org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.forNumber(type_);
+        @SuppressWarnings("deprecation")
+        org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType result = org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.valueOf(type_);
         return result == null ? org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.EXPIRE : result;
       }
 
@@ -46678,7 +49496,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           output.writeMessage(5, getTimerNode());
         }
         extensionWriter.writeUntil(200, output);
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -46708,7 +49526,7 @@ public int getSerializedSize() {
             .computeMessageSize(5, getTimerNode());
         }
         size += extensionsSerializedSize();
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -46747,7 +49565,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getTimerNode()
               .equals(other.getTimerNode())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         if (!getExtensionFields().equals(other.getExtensionFields()))
           return false;
         return true;
@@ -46781,7 +49599,7 @@ public int hashCode() {
           hash = (53 * hash) + getTimerNode().hashCode();
         }
         hash = hashFields(hash, getExtensionFields());
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -46919,28 +49737,32 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           type_ = 1;
-          expire_ = null;
-          if (expireBuilder_ != null) {
-            expireBuilder_.dispose();
-            expireBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (expireBuilder_ == null) {
+            expire_ = null;
+          } else {
+            expireBuilder_.clear();
           }
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000002);
+          if (activationBuilder_ == null) {
+            activation_ = null;
+          } else {
+            activationBuilder_.clear();
           }
-          behavior_ = null;
-          if (behaviorBuilder_ != null) {
-            behaviorBuilder_.dispose();
-            behaviorBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000004);
+          if (behaviorBuilder_ == null) {
+            behavior_ = null;
+          } else {
+            behaviorBuilder_.clear();
           }
-          timerNode_ = null;
-          if (timerNodeBuilder_ != null) {
-            timerNodeBuilder_.dispose();
-            timerNodeBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000008);
+          if (timerNodeBuilder_ == null) {
+            timerNode_ = null;
+          } else {
+            timerNodeBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000010);
           return this;
         }
 
@@ -46967,45 +49789,108 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer build() {
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer result = new org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.type_ = type_;
             to_bitField0_ |= 0x00000001;
           }
+          result.type_ = type_;
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.expire_ = expireBuilder_ == null
-                ? expire_
-                : expireBuilder_.build();
+            if (expireBuilder_ == null) {
+              result.expire_ = expire_;
+            } else {
+              result.expire_ = expireBuilder_.build();
+            }
             to_bitField0_ |= 0x00000002;
           }
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.activation_ = activationBuilder_ == null
-                ? activation_
-                : activationBuilder_.build();
+            if (activationBuilder_ == null) {
+              result.activation_ = activation_;
+            } else {
+              result.activation_ = activationBuilder_.build();
+            }
             to_bitField0_ |= 0x00000004;
           }
           if (((from_bitField0_ & 0x00000008) != 0)) {
-            result.behavior_ = behaviorBuilder_ == null
-                ? behavior_
-                : behaviorBuilder_.build();
+            if (behaviorBuilder_ == null) {
+              result.behavior_ = behavior_;
+            } else {
+              result.behavior_ = behaviorBuilder_.build();
+            }
             to_bitField0_ |= 0x00000008;
           }
           if (((from_bitField0_ & 0x00000010) != 0)) {
-            result.timerNode_ = timerNodeBuilder_ == null
-                ? timerNode_
-                : timerNodeBuilder_.build();
+            if (timerNodeBuilder_ == null) {
+              result.timerNode_ = timerNode_;
+            } else {
+              result.timerNode_ = timerNodeBuilder_.build();
+            }
             to_bitField0_ |= 0x00000010;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
+        @java.lang.Override
+        public  Builder setExtension(
+            com.google.protobuf.GeneratedMessage.GeneratedExtension<
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, Type> extension,
+            Type value) {
+          return super.setExtension(extension, value);
+        }
+        @java.lang.Override
+        public  Builder setExtension(
+            com.google.protobuf.GeneratedMessage.GeneratedExtension<
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, java.util.List> extension,
+            int index, Type value) {
+          return super.setExtension(extension, index, value);
+        }
+        @java.lang.Override
+        public  Builder addExtension(
+            com.google.protobuf.GeneratedMessage.GeneratedExtension<
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, java.util.List> extension,
+            Type value) {
+          return super.addExtension(extension, value);
+        }
+        @java.lang.Override
+        public  Builder clearExtension(
+            com.google.protobuf.GeneratedMessage.GeneratedExtension<
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, ?> extension) {
+          return super.clearExtension(extension);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer) {
@@ -47034,7 +49919,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
             mergeTimerNode(other.getTimerNode());
           }
           this.mergeExtensionFields(other);
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -47052,70 +49937,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  int tmpRaw = input.readEnum();
-                  org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType tmpValue =
-                      org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.forNumber(tmpRaw);
-                  if (tmpValue == null) {
-                    mergeUnknownVarintField(1, tmpRaw);
-                  } else {
-                    type_ = tmpRaw;
-                    bitField0_ |= 0x00000001;
-                  }
-                  break;
-                } // case 8
-                case 18: {
-                  input.readMessage(
-                      getExpireFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 26: {
-                  input.readMessage(
-                      getActivationFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                case 34: {
-                  input.readMessage(
-                      getBehaviorFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 34
-                case 42: {
-                  input.readMessage(
-                      getTimerNodeFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 42
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -47134,7 +49966,8 @@ public Builder mergeFrom(
          */
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType getType() {
-          org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType result = org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.forNumber(type_);
+          @SuppressWarnings("deprecation")
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType result = org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.valueOf(type_);
           return result == null ? org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerType.EXPIRE : result;
         }
         /**
@@ -47192,11 +50025,11 @@ public Builder setExpire(org.drools.serialization.protobuf.ProtobufMessages.Time
               throw new NullPointerException();
             }
             expire_ = value;
+            onChanged();
           } else {
             expireBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -47206,11 +50039,11 @@ public Builder setExpire(
             org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.Builder builderForValue) {
           if (expireBuilder_ == null) {
             expire_ = builderForValue.build();
+            onChanged();
           } else {
             expireBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -47219,30 +50052,31 @@ public Builder setExpire(
         public Builder mergeExpire(org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer value) {
           if (expireBuilder_ == null) {
             if (((bitField0_ & 0x00000002) != 0) &&
-              expire_ != null &&
-              expire_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.getDefaultInstance()) {
-              getExpireBuilder().mergeFrom(value);
+                expire_ != null &&
+                expire_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.getDefaultInstance()) {
+              expire_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.newBuilder(expire_).mergeFrom(value).buildPartial();
             } else {
               expire_ = value;
             }
+            onChanged();
           } else {
             expireBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Timers.ExpireTimer expire = 2;
          */
         public Builder clearExpire() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          expire_ = null;
-          if (expireBuilder_ != null) {
-            expireBuilder_.dispose();
-            expireBuilder_ = null;
+          if (expireBuilder_ == null) {
+            expire_ = null;
+            onChanged();
+          } else {
+            expireBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         /**
@@ -47271,8 +50105,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimerOrBu
             org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimerOrBuilder> 
             getExpireFieldBuilder() {
           if (expireBuilder_ == null) {
-            expireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimerOrBuilder>(
+            expireBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getExpire(),
                     getParentForChildren(),
                     isClean());
@@ -47311,11 +50144,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -47325,11 +50158,11 @@ public Builder setActivation(
             org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.Builder builderForValue) {
           if (activationBuilder_ == null) {
             activation_ = builderForValue.build();
+            onChanged();
           } else {
             activationBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -47338,30 +50171,31 @@ public Builder setActivation(
         public Builder mergeActivation(org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer value) {
           if (activationBuilder_ == null) {
             if (((bitField0_ & 0x00000004) != 0) &&
-              activation_ != null &&
-              activation_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.getDefaultInstance()) {
-              getActivationBuilder().mergeFrom(value);
+                activation_ != null &&
+                activation_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.getDefaultInstance()) {
+              activation_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.newBuilder(activation_).mergeFrom(value).buildPartial();
             } else {
               activation_ = value;
             }
+            onChanged();
           } else {
             activationBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Timers.ActivationTimer activation = 3;
          */
         public Builder clearActivation() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          if (activationBuilder_ == null) {
+            activation_ = null;
+            onChanged();
+          } else {
+            activationBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
         /**
@@ -47390,8 +50224,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer
             org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimerOrBuilder> 
             getActivationFieldBuilder() {
           if (activationBuilder_ == null) {
-            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimerOrBuilder>(
+            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getActivation(),
                     getParentForChildren(),
                     isClean());
@@ -47430,11 +50263,11 @@ public Builder setBehavior(org.drools.serialization.protobuf.ProtobufMessages.Ti
               throw new NullPointerException();
             }
             behavior_ = value;
+            onChanged();
           } else {
             behaviorBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
@@ -47444,11 +50277,11 @@ public Builder setBehavior(
             org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.Builder builderForValue) {
           if (behaviorBuilder_ == null) {
             behavior_ = builderForValue.build();
+            onChanged();
           } else {
             behaviorBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
@@ -47457,30 +50290,31 @@ public Builder setBehavior(
         public Builder mergeBehavior(org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer value) {
           if (behaviorBuilder_ == null) {
             if (((bitField0_ & 0x00000008) != 0) &&
-              behavior_ != null &&
-              behavior_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.getDefaultInstance()) {
-              getBehaviorBuilder().mergeFrom(value);
+                behavior_ != null &&
+                behavior_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.getDefaultInstance()) {
+              behavior_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.newBuilder(behavior_).mergeFrom(value).buildPartial();
             } else {
               behavior_ = value;
             }
+            onChanged();
           } else {
             behaviorBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Timers.BehaviorTimer behavior = 4;
          */
         public Builder clearBehavior() {
-          bitField0_ = (bitField0_ & ~0x00000008);
-          behavior_ = null;
-          if (behaviorBuilder_ != null) {
-            behaviorBuilder_.dispose();
-            behaviorBuilder_ = null;
+          if (behaviorBuilder_ == null) {
+            behavior_ = null;
+            onChanged();
+          } else {
+            behaviorBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000008);
           return this;
         }
         /**
@@ -47509,8 +50343,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimerOr
             org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimerOrBuilder> 
             getBehaviorFieldBuilder() {
           if (behaviorBuilder_ == null) {
-            behaviorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimerOrBuilder>(
+            behaviorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getBehavior(),
                     getParentForChildren(),
                     isClean());
@@ -47549,11 +50382,11 @@ public Builder setTimerNode(org.drools.serialization.protobuf.ProtobufMessages.T
               throw new NullPointerException();
             }
             timerNode_ = value;
+            onChanged();
           } else {
             timerNodeBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
@@ -47563,11 +50396,11 @@ public Builder setTimerNode(
             org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.Builder builderForValue) {
           if (timerNodeBuilder_ == null) {
             timerNode_ = builderForValue.build();
+            onChanged();
           } else {
             timerNodeBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
@@ -47576,30 +50409,31 @@ public Builder setTimerNode(
         public Builder mergeTimerNode(org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer value) {
           if (timerNodeBuilder_ == null) {
             if (((bitField0_ & 0x00000010) != 0) &&
-              timerNode_ != null &&
-              timerNode_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.getDefaultInstance()) {
-              getTimerNodeBuilder().mergeFrom(value);
+                timerNode_ != null &&
+                timerNode_ != org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.getDefaultInstance()) {
+              timerNode_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.newBuilder(timerNode_).mergeFrom(value).buildPartial();
             } else {
               timerNode_ = value;
             }
+            onChanged();
           } else {
             timerNodeBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000010;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Timers.TimerNodeTimer timer_node = 5;
          */
         public Builder clearTimerNode() {
-          bitField0_ = (bitField0_ & ~0x00000010);
-          timerNode_ = null;
-          if (timerNodeBuilder_ != null) {
-            timerNodeBuilder_.dispose();
-            timerNodeBuilder_ = null;
+          if (timerNodeBuilder_ == null) {
+            timerNode_ = null;
+            onChanged();
+          } else {
+            timerNodeBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000010);
           return this;
         }
         /**
@@ -47628,8 +50462,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimerO
             org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimerOrBuilder> 
             getTimerNodeFieldBuilder() {
           if (timerNodeBuilder_ == null) {
-            timerNodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimerOrBuilder>(
+            timerNodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTimerNode(),
                     getParentForChildren(),
                     isClean());
@@ -47670,18 +50503,7 @@ public Timer parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new Timer(input, extensionRegistry);
         }
       };
 
@@ -47785,6 +50607,71 @@ protected java.lang.Object newInstance(
         return new ExpireTimer();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private ExpireTimer(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                handleId_ = input.readInt64();
+                break;
+              }
+              case 18: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000002;
+                entryPointId_ = bs;
+                break;
+              }
+              case 26: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000004;
+                className_ = bs;
+                break;
+              }
+              case 32: {
+                bitField0_ |= 0x00000008;
+                nextFireTimestamp_ = input.readInt64();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_ExpireTimer_descriptor;
@@ -47800,7 +50687,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int HANDLE_ID_FIELD_NUMBER = 1;
-      private long handleId_ = 0L;
+      private long handleId_;
       /**
        * optional int64 handle_id = 1;
        * @return Whether the handleId field is set.
@@ -47819,8 +50706,7 @@ public long getHandleId() {
       }
 
       public static final int ENTRY_POINT_ID_FIELD_NUMBER = 2;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object entryPointId_ = "";
+      private volatile java.lang.Object entryPointId_;
       /**
        * optional string entry_point_id = 2;
        * @return Whether the entryPointId field is set.
@@ -47868,8 +50754,7 @@ public java.lang.String getEntryPointId() {
       }
 
       public static final int CLASS_NAME_FIELD_NUMBER = 3;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object className_ = "";
+      private volatile java.lang.Object className_;
       /**
        * optional string class_name = 3;
        * @return Whether the className field is set.
@@ -47917,7 +50802,7 @@ public java.lang.String getClassName() {
       }
 
       public static final int NEXT_FIRE_TIMESTAMP_FIELD_NUMBER = 4;
-      private long nextFireTimestamp_ = 0L;
+      private long nextFireTimestamp_;
       /**
        * optional int64 next_fire_timestamp = 4;
        * @return Whether the nextFireTimestamp field is set.
@@ -47961,7 +50846,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000008) != 0)) {
           output.writeInt64(4, nextFireTimestamp_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -47984,7 +50869,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(4, nextFireTimestamp_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -48019,7 +50904,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getNextFireTimestamp()
               != other.getNextFireTimestamp()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -48048,7 +50933,7 @@ public int hashCode() {
           hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
               getNextFireTimestamp());
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -48165,22 +51050,30 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           handleId_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           entryPointId_ = "";
+          bitField0_ = (bitField0_ & ~0x00000002);
           className_ = "";
+          bitField0_ = (bitField0_ & ~0x00000004);
           nextFireTimestamp_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000008);
           return this;
         }
 
@@ -48207,12 +51100,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer bui
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer result = new org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -48220,20 +51107,54 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ti
             to_bitField0_ |= 0x00000001;
           }
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.entryPointId_ = entryPointId_;
             to_bitField0_ |= 0x00000002;
           }
+          result.entryPointId_ = entryPointId_;
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.className_ = className_;
             to_bitField0_ |= 0x00000004;
           }
+          result.className_ = className_;
           if (((from_bitField0_ & 0x00000008) != 0)) {
             result.nextFireTimestamp_ = nextFireTimestamp_;
             to_bitField0_ |= 0x00000008;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer) {
@@ -48250,19 +51171,19 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
             setHandleId(other.getHandleId());
           }
           if (other.hasEntryPointId()) {
-            entryPointId_ = other.entryPointId_;
             bitField0_ |= 0x00000002;
+            entryPointId_ = other.entryPointId_;
             onChanged();
           }
           if (other.hasClassName()) {
-            className_ = other.className_;
             bitField0_ |= 0x00000004;
+            className_ = other.className_;
             onChanged();
           }
           if (other.hasNextFireTimestamp()) {
             setNextFireTimestamp(other.getNextFireTimestamp());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -48277,50 +51198,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  handleId_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 18: {
-                  entryPointId_ = input.readBytes();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 26: {
-                  className_ = input.readBytes();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                case 32: {
-                  nextFireTimestamp_ = input.readInt64();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 32
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers.ExpireTimer) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -48348,9 +51236,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -48415,9 +51302,11 @@ public java.lang.String getEntryPointId() {
          */
         public Builder setEntryPointId(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
           entryPointId_ = value;
-          bitField0_ |= 0x00000002;
           onChanged();
           return this;
         }
@@ -48426,8 +51315,8 @@ public Builder setEntryPointId(
          * @return This builder for chaining.
          */
         public Builder clearEntryPointId() {
-          entryPointId_ = getDefaultInstance().getEntryPointId();
           bitField0_ = (bitField0_ & ~0x00000002);
+          entryPointId_ = getDefaultInstance().getEntryPointId();
           onChanged();
           return this;
         }
@@ -48438,9 +51327,11 @@ public Builder clearEntryPointId() {
          */
         public Builder setEntryPointIdBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
           entryPointId_ = value;
-          bitField0_ |= 0x00000002;
           onChanged();
           return this;
         }
@@ -48495,9 +51386,11 @@ public java.lang.String getClassName() {
          */
         public Builder setClassName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
           className_ = value;
-          bitField0_ |= 0x00000004;
           onChanged();
           return this;
         }
@@ -48506,8 +51399,8 @@ public Builder setClassName(
          * @return This builder for chaining.
          */
         public Builder clearClassName() {
-          className_ = getDefaultInstance().getClassName();
           bitField0_ = (bitField0_ & ~0x00000004);
+          className_ = getDefaultInstance().getClassName();
           onChanged();
           return this;
         }
@@ -48518,9 +51411,11 @@ public Builder clearClassName() {
          */
         public Builder setClassNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000004;
           className_ = value;
-          bitField0_ |= 0x00000004;
           onChanged();
           return this;
         }
@@ -48548,9 +51443,8 @@ public long getNextFireTimestamp() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTimestamp(long value) {
-
-          nextFireTimestamp_ = value;
           bitField0_ |= 0x00000008;
+          nextFireTimestamp_ = value;
           onChanged();
           return this;
         }
@@ -48597,18 +51491,7 @@ public ExpireTimer parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new ExpireTimer(input, extensionRegistry);
         }
       };
 
@@ -48684,6 +51567,75 @@ protected java.lang.Object newInstance(
         return new ActivationTimer();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private ActivationTimer(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 10: {
+                org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000001) != 0)) {
+                  subBuilder = activation_.toBuilder();
+                }
+                activation_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Activation.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(activation_);
+                  activation_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000001;
+                break;
+              }
+              case 18: {
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000002) != 0)) {
+                  subBuilder = trigger_.toBuilder();
+                }
+                trigger_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(trigger_);
+                  trigger_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000002;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_ActivationTimer_descriptor;
@@ -48770,7 +51722,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000002) != 0)) {
           output.writeMessage(2, getTrigger());
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -48787,7 +51739,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(2, getTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -48812,7 +51764,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getTrigger()
               .equals(other.getTrigger())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -48831,7 +51783,7 @@ public int hashCode() {
           hash = (37 * hash) + TRIGGER_FIELD_NUMBER;
           hash = (53 * hash) + getTrigger().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -48966,17 +51918,18 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          if (activationBuilder_ == null) {
+            activation_ = null;
+          } else {
+            activationBuilder_.clear();
           }
-          trigger_ = null;
-          if (triggerBuilder_ != null) {
-            triggerBuilder_.dispose();
-            triggerBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (triggerBuilder_ == null) {
+            trigger_ = null;
+          } else {
+            triggerBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
 
@@ -49003,29 +51956,61 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer result = new org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
-            result.activation_ = activationBuilder_ == null
-                ? activation_
-                : activationBuilder_.build();
+            if (activationBuilder_ == null) {
+              result.activation_ = activation_;
+            } else {
+              result.activation_ = activationBuilder_.build();
+            }
             to_bitField0_ |= 0x00000001;
           }
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.trigger_ = triggerBuilder_ == null
-                ? trigger_
-                : triggerBuilder_.build();
+            if (triggerBuilder_ == null) {
+              result.trigger_ = trigger_;
+            } else {
+              result.trigger_ = triggerBuilder_.build();
+            }
             to_bitField0_ |= 0x00000002;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer) {
@@ -49044,7 +52029,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
           if (other.hasTrigger()) {
             mergeTrigger(other.getTrigger());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -49059,44 +52044,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 10: {
-                  input.readMessage(
-                      getActivationFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 10
-                case 18: {
-                  input.readMessage(
-                      getTriggerFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers.ActivationTimer) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -49131,11 +52089,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000001;
-          onChanged();
           return this;
         }
         /**
@@ -49145,11 +52103,11 @@ public Builder setActivation(
             org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder builderForValue) {
           if (activationBuilder_ == null) {
             activation_ = builderForValue.build();
+            onChanged();
           } else {
             activationBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000001;
-          onChanged();
           return this;
         }
         /**
@@ -49158,30 +52116,31 @@ public Builder setActivation(
         public Builder mergeActivation(org.drools.serialization.protobuf.ProtobufMessages.Activation value) {
           if (activationBuilder_ == null) {
             if (((bitField0_ & 0x00000001) != 0) &&
-              activation_ != null &&
-              activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
-              getActivationBuilder().mergeFrom(value);
+                activation_ != null &&
+                activation_ != org.drools.serialization.protobuf.ProtobufMessages.Activation.getDefaultInstance()) {
+              activation_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Activation.newBuilder(activation_).mergeFrom(value).buildPartial();
             } else {
               activation_ = value;
             }
+            onChanged();
           } else {
             activationBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000001;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Activation activation = 1;
          */
         public Builder clearActivation() {
-          bitField0_ = (bitField0_ & ~0x00000001);
-          activation_ = null;
-          if (activationBuilder_ != null) {
-            activationBuilder_.dispose();
-            activationBuilder_ = null;
+          if (activationBuilder_ == null) {
+            activation_ = null;
+            onChanged();
+          } else {
+            activationBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
         /**
@@ -49210,8 +52169,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder ge
             org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder> 
             getActivationFieldBuilder() {
           if (activationBuilder_ == null) {
-            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Activation, org.drools.serialization.protobuf.ProtobufMessages.Activation.Builder, org.drools.serialization.protobuf.ProtobufMessages.ActivationOrBuilder>(
+            activationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getActivation(),
                     getParentForChildren(),
                     isClean());
@@ -49250,11 +52208,11 @@ public Builder setTrigger(org.drools.serialization.protobuf.ProtobufMessages.Tri
               throw new NullPointerException();
             }
             trigger_ = value;
+            onChanged();
           } else {
             triggerBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -49264,11 +52222,11 @@ public Builder setTrigger(
             org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder builderForValue) {
           if (triggerBuilder_ == null) {
             trigger_ = builderForValue.build();
+            onChanged();
           } else {
             triggerBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -49277,30 +52235,31 @@ public Builder setTrigger(
         public Builder mergeTrigger(org.drools.serialization.protobuf.ProtobufMessages.Trigger value) {
           if (triggerBuilder_ == null) {
             if (((bitField0_ & 0x00000002) != 0) &&
-              trigger_ != null &&
-              trigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
-              getTriggerBuilder().mergeFrom(value);
+                trigger_ != null &&
+                trigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
+              trigger_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.newBuilder(trigger_).mergeFrom(value).buildPartial();
             } else {
               trigger_ = value;
             }
+            onChanged();
           } else {
             triggerBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Trigger trigger = 2;
          */
         public Builder clearTrigger() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          trigger_ = null;
-          if (triggerBuilder_ != null) {
-            triggerBuilder_.dispose();
-            triggerBuilder_ = null;
+          if (triggerBuilder_ == null) {
+            trigger_ = null;
+            onChanged();
+          } else {
+            triggerBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         /**
@@ -49329,8 +52288,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTr
             org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder> 
             getTriggerFieldBuilder() {
           if (triggerBuilder_ == null) {
-            triggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder>(
+            triggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTrigger(),
                     getParentForChildren(),
                     isClean());
@@ -49371,18 +52329,7 @@ public ActivationTimer parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new ActivationTimer(input, extensionRegistry);
         }
       };
 
@@ -49461,6 +52408,64 @@ protected java.lang.Object newInstance(
         return new BehaviorTimer();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private BehaviorTimer(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                dEPRECATEDNodeId_ = input.readInt32();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                dEPRECATEDBehaviorIndex_ = input.readInt32();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                handleId_ = input.readInt64();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_BehaviorTimer_descriptor;
@@ -49476,7 +52481,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int DEPRECATED_NODE_ID_FIELD_NUMBER = 1;
-      private int dEPRECATEDNodeId_ = 0;
+      private int dEPRECATEDNodeId_;
       /**
        * optional int32 DEPRECATED_node_id = 1;
        * @return Whether the dEPRECATEDNodeId field is set.
@@ -49495,7 +52500,7 @@ public int getDEPRECATEDNodeId() {
       }
 
       public static final int DEPRECATED_BEHAVIOR_INDEX_FIELD_NUMBER = 2;
-      private int dEPRECATEDBehaviorIndex_ = 0;
+      private int dEPRECATEDBehaviorIndex_;
       /**
        * optional int32 DEPRECATED_behavior_index = 2;
        * @return Whether the dEPRECATEDBehaviorIndex field is set.
@@ -49514,7 +52519,7 @@ public int getDEPRECATEDBehaviorIndex() {
       }
 
       public static final int HANDLE_ID_FIELD_NUMBER = 3;
-      private long handleId_ = 0L;
+      private long handleId_;
       /**
        * optional int64 handle_id = 3;
        * @return Whether the handleId field is set.
@@ -49555,7 +52560,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000004) != 0)) {
           output.writeInt64(3, handleId_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -49576,7 +52581,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(3, handleId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -49606,7 +52611,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getHandleId()
               != other.getHandleId()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -49630,7 +52635,7 @@ public int hashCode() {
           hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
               getHandleId());
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -49747,21 +52752,28 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           dEPRECATEDNodeId_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000001);
           dEPRECATEDBehaviorIndex_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000002);
           handleId_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
 
@@ -49788,12 +52800,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer b
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer result = new org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -49808,9 +52814,43 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ti
             result.handleId_ = handleId_;
             to_bitField0_ |= 0x00000004;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer) {
@@ -49832,7 +52872,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
           if (other.hasHandleId()) {
             setHandleId(other.getHandleId());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -49847,45 +52887,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  dEPRECATEDNodeId_ = input.readInt32();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  dEPRECATEDBehaviorIndex_ = input.readInt32();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  handleId_ = input.readInt64();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers.BehaviorTimer) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -49913,9 +52925,8 @@ public int getDEPRECATEDNodeId() {
          * @return This builder for chaining.
          */
         public Builder setDEPRECATEDNodeId(int value) {
-
-          dEPRECATEDNodeId_ = value;
           bitField0_ |= 0x00000001;
+          dEPRECATEDNodeId_ = value;
           onChanged();
           return this;
         }
@@ -49953,9 +52964,8 @@ public int getDEPRECATEDBehaviorIndex() {
          * @return This builder for chaining.
          */
         public Builder setDEPRECATEDBehaviorIndex(int value) {
-
-          dEPRECATEDBehaviorIndex_ = value;
           bitField0_ |= 0x00000002;
+          dEPRECATEDBehaviorIndex_ = value;
           onChanged();
           return this;
         }
@@ -49993,9 +53003,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000004;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -50042,18 +53051,7 @@ public BehaviorTimer parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new BehaviorTimer(input, extensionRegistry);
         }
       };
 
@@ -50140,6 +53138,80 @@ protected java.lang.Object newInstance(
         return new TimerNodeTimer();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private TimerNodeTimer(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                nodeId_ = input.readInt32();
+                break;
+              }
+              case 18: {
+                org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000002) != 0)) {
+                  subBuilder = tuple_.toBuilder();
+                }
+                tuple_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Tuple.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(tuple_);
+                  tuple_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000002;
+                break;
+              }
+              case 26: {
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000004) != 0)) {
+                  subBuilder = trigger_.toBuilder();
+                }
+                trigger_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(trigger_);
+                  trigger_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000004;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Timers_TimerNodeTimer_descriptor;
@@ -50155,7 +53227,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int NODE_ID_FIELD_NUMBER = 1;
-      private int nodeId_ = 0;
+      private int nodeId_;
       /**
        * optional int32 node_id = 1;
        * @return Whether the nodeId field is set.
@@ -50248,7 +53320,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000004) != 0)) {
           output.writeMessage(3, getTrigger());
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -50269,7 +53341,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(3, getTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -50299,7 +53371,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getTrigger()
               .equals(other.getTrigger())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -50322,7 +53394,7 @@ public int hashCode() {
           hash = (37 * hash) + TRIGGER_FIELD_NUMBER;
           hash = (53 * hash) + getTrigger().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -50457,18 +53529,20 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           nodeId_ = 0;
-          tuple_ = null;
-          if (tupleBuilder_ != null) {
-            tupleBuilder_.dispose();
-            tupleBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (tupleBuilder_ == null) {
+            tuple_ = null;
+          } else {
+            tupleBuilder_.clear();
           }
-          trigger_ = null;
-          if (triggerBuilder_ != null) {
-            triggerBuilder_.dispose();
-            triggerBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000002);
+          if (triggerBuilder_ == null) {
+            trigger_ = null;
+          } else {
+            triggerBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
 
@@ -50495,12 +53569,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer result = new org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -50508,20 +53576,58 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Ti
             to_bitField0_ |= 0x00000001;
           }
           if (((from_bitField0_ & 0x00000002) != 0)) {
-            result.tuple_ = tupleBuilder_ == null
-                ? tuple_
-                : tupleBuilder_.build();
+            if (tupleBuilder_ == null) {
+              result.tuple_ = tuple_;
+            } else {
+              result.tuple_ = tupleBuilder_.build();
+            }
             to_bitField0_ |= 0x00000002;
           }
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.trigger_ = triggerBuilder_ == null
-                ? trigger_
-                : triggerBuilder_.build();
+            if (triggerBuilder_ == null) {
+              result.trigger_ = trigger_;
+            } else {
+              result.trigger_ = triggerBuilder_.build();
+            }
             to_bitField0_ |= 0x00000004;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer) {
@@ -50543,7 +53649,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
           if (other.hasTrigger()) {
             mergeTrigger(other.getTrigger());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -50558,49 +53664,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  nodeId_ = input.readInt32();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 18: {
-                  input.readMessage(
-                      getTupleFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 18
-                case 26: {
-                  input.readMessage(
-                      getTriggerFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -50628,9 +53702,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -50675,11 +53748,11 @@ public Builder setTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple
               throw new NullPointerException();
             }
             tuple_ = value;
+            onChanged();
           } else {
             tupleBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -50689,11 +53762,11 @@ public Builder setTuple(
             org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder builderForValue) {
           if (tupleBuilder_ == null) {
             tuple_ = builderForValue.build();
+            onChanged();
           } else {
             tupleBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -50702,30 +53775,31 @@ public Builder setTuple(
         public Builder mergeTuple(org.drools.serialization.protobuf.ProtobufMessages.Tuple value) {
           if (tupleBuilder_ == null) {
             if (((bitField0_ & 0x00000002) != 0) &&
-              tuple_ != null &&
-              tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
-              getTupleBuilder().mergeFrom(value);
+                tuple_ != null &&
+                tuple_ != org.drools.serialization.protobuf.ProtobufMessages.Tuple.getDefaultInstance()) {
+              tuple_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Tuple.newBuilder(tuple_).mergeFrom(value).buildPartial();
             } else {
               tuple_ = value;
             }
+            onChanged();
           } else {
             tupleBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Tuple tuple = 2;
          */
         public Builder clearTuple() {
-          bitField0_ = (bitField0_ & ~0x00000002);
-          tuple_ = null;
-          if (tupleBuilder_ != null) {
-            tupleBuilder_.dispose();
-            tupleBuilder_ = null;
+          if (tupleBuilder_ == null) {
+            tuple_ = null;
+            onChanged();
+          } else {
+            tupleBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         /**
@@ -50754,8 +53828,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder getTupl
             org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder> 
             getTupleFieldBuilder() {
           if (tupleBuilder_ == null) {
-            tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Tuple, org.drools.serialization.protobuf.ProtobufMessages.Tuple.Builder, org.drools.serialization.protobuf.ProtobufMessages.TupleOrBuilder>(
+            tupleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTuple(),
                     getParentForChildren(),
                     isClean());
@@ -50794,11 +53867,11 @@ public Builder setTrigger(org.drools.serialization.protobuf.ProtobufMessages.Tri
               throw new NullPointerException();
             }
             trigger_ = value;
+            onChanged();
           } else {
             triggerBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -50808,11 +53881,11 @@ public Builder setTrigger(
             org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder builderForValue) {
           if (triggerBuilder_ == null) {
             trigger_ = builderForValue.build();
+            onChanged();
           } else {
             triggerBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -50821,30 +53894,31 @@ public Builder setTrigger(
         public Builder mergeTrigger(org.drools.serialization.protobuf.ProtobufMessages.Trigger value) {
           if (triggerBuilder_ == null) {
             if (((bitField0_ & 0x00000004) != 0) &&
-              trigger_ != null &&
-              trigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
-              getTriggerBuilder().mergeFrom(value);
+                trigger_ != null &&
+                trigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
+              trigger_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.newBuilder(trigger_).mergeFrom(value).buildPartial();
             } else {
               trigger_ = value;
             }
+            onChanged();
           } else {
             triggerBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Trigger trigger = 3;
          */
         public Builder clearTrigger() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          trigger_ = null;
-          if (triggerBuilder_ != null) {
-            triggerBuilder_.dispose();
-            triggerBuilder_ = null;
+          if (triggerBuilder_ == null) {
+            trigger_ = null;
+            onChanged();
+          } else {
+            triggerBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
         /**
@@ -50873,8 +53947,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTr
             org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder> 
             getTriggerFieldBuilder() {
           if (triggerBuilder_ == null) {
-            triggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder>(
+            triggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTrigger(),
                     getParentForChildren(),
                     isClean());
@@ -50915,18 +53988,7 @@ public TimerNodeTimer parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new TimerNodeTimer(input, extensionRegistry);
         }
       };
 
@@ -50947,7 +54009,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerNodeTimer
     }
 
     public static final int TIMER_FIELD_NUMBER = 1;
-    @SuppressWarnings("serial")
     private java.util.List timer_;
     /**
      * repeated .org.drools.serialization.protobuf.Timers.Timer timer = 1;
@@ -51010,7 +54071,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < timer_.size(); i++) {
         output.writeMessage(1, timer_.get(i));
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -51023,7 +54084,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, timer_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -51040,7 +54101,7 @@ public boolean equals(final java.lang.Object obj) {
 
       if (!getTimerList()
           .equals(other.getTimerList())) return false;
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -51055,7 +54116,7 @@ public int hashCode() {
         hash = (37 * hash) + TIMER_FIELD_NUMBER;
         hash = (53 * hash) + getTimerList().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -51172,25 +54233,29 @@ public static final class Builder extends
 
       // Construct using org.drools.serialization.protobuf.ProtobufMessages.Timers.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getTimerFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         if (timerBuilder_ == null) {
           timer_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
-          timer_ = null;
           timerBuilder_.clear();
         }
-        bitField0_ = (bitField0_ & ~0x00000001);
         return this;
       }
 
@@ -51217,13 +54282,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Timers buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Timers result = new org.drools.serialization.protobuf.ProtobufMessages.Timers(this);
-        buildPartialRepeatedFields(result);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartialRepeatedFields(org.drools.serialization.protobuf.ProtobufMessages.Timers result) {
+        int from_bitField0_ = bitField0_;
         if (timerBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             timer_ = java.util.Collections.unmodifiableList(timer_);
@@ -51233,12 +54292,42 @@ private void buildPartialRepeatedFields(org.drools.serialization.protobuf.Protob
         } else {
           result.timer_ = timerBuilder_.build();
         }
+        onBuilt();
+        return result;
       }
 
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Timers result) {
-        int from_bitField0_ = bitField0_;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
-
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Timers) {
@@ -51277,7 +54366,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -51297,43 +54386,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Timers parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer m =
-                    input.readMessage(
-                        org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer.PARSER,
-                        extensionRegistry);
-                if (timerBuilder_ == null) {
-                  ensureTimerIsMutable();
-                  timer_.add(m);
-                } else {
-                  timerBuilder_.addMessage(m);
-                }
-                break;
-              } // case 10
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Timers) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -51342,7 +54405,7 @@ public Builder mergeFrom(
         java.util.Collections.emptyList();
       private void ensureTimerIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          timer_ = new java.util.ArrayList(timer_);
+          timer_ = new java.util.ArrayList<>(timer_);
           bitField0_ |= 0x00000001;
          }
       }
@@ -51567,8 +54630,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer.Builder a
           org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerOrBuilder> 
           getTimerFieldBuilder() {
         if (timerBuilder_ == null) {
-          timerBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer, org.drools.serialization.protobuf.ProtobufMessages.Timers.Timer.Builder, org.drools.serialization.protobuf.ProtobufMessages.Timers.TimerOrBuilder>(
+          timerBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<>(
                   timer_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
@@ -51610,18 +54672,7 @@ public Timers parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Timers(input, extensionRegistry);
       }
     };
 
@@ -51739,6 +54790,113 @@ protected java.lang.Object newInstance(
       return new Trigger();
     }
 
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Trigger(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      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;
+            case 8: {
+              int rawValue = input.readEnum();
+                @SuppressWarnings("deprecation")
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType value = org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(1, rawValue);
+              } else {
+                bitField0_ |= 0x00000001;
+                type_ = rawValue;
+              }
+              break;
+            }
+            case 18: {
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000002) != 0)) {
+                subBuilder = cron_.toBuilder();
+              }
+              cron_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(cron_);
+                cron_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              break;
+            }
+            case 26: {
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) != 0)) {
+                subBuilder = interval_.toBuilder();
+              }
+              interval_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(interval_);
+                interval_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 34: {
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000008) != 0)) {
+                subBuilder = pit_.toBuilder();
+              }
+              pit_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(pit_);
+                pit_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+            case 42: {
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000010) != 0)) {
+                subBuilder = cmdt_.toBuilder();
+              }
+              cmdt_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(cmdt_);
+                cmdt_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000010;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Trigger_descriptor;
@@ -51981,8 +55139,7 @@ private CronTrigger(com.google.protobuf.GeneratedMessageV3.Builder builder) {
       }
       private CronTrigger() {
         cronExpression_ = "";
-        calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
       }
 
       @java.lang.Override
@@ -51992,6 +55149,92 @@ protected java.lang.Object newInstance(
         return new CronTrigger();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private CronTrigger(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                startTime_ = input.readInt64();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                endTime_ = input.readInt64();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                repeatLimit_ = input.readInt32();
+                break;
+              }
+              case 32: {
+                bitField0_ |= 0x00000008;
+                repeatCount_ = input.readInt32();
+                break;
+              }
+              case 42: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                bitField0_ |= 0x00000010;
+                cronExpression_ = bs;
+                break;
+              }
+              case 48: {
+                bitField0_ |= 0x00000020;
+                nextFireTime_ = input.readInt64();
+                break;
+              }
+              case 58: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                if (!((mutable_bitField0_ & 0x00000040) != 0)) {
+                  calendarName_ = new com.google.protobuf.LazyStringArrayList();
+                  mutable_bitField0_ |= 0x00000040;
+                }
+                calendarName_.add(bs);
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000040) != 0)) {
+            calendarName_ = calendarName_.getUnmodifiableView();
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Trigger_CronTrigger_descriptor;
@@ -52007,7 +55250,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int START_TIME_FIELD_NUMBER = 1;
-      private long startTime_ = 0L;
+      private long startTime_;
       /**
        * optional int64 start_time = 1;
        * @return Whether the startTime field is set.
@@ -52026,7 +55269,7 @@ public long getStartTime() {
       }
 
       public static final int END_TIME_FIELD_NUMBER = 2;
-      private long endTime_ = 0L;
+      private long endTime_;
       /**
        * optional int64 end_time = 2;
        * @return Whether the endTime field is set.
@@ -52045,7 +55288,7 @@ public long getEndTime() {
       }
 
       public static final int REPEAT_LIMIT_FIELD_NUMBER = 3;
-      private int repeatLimit_ = 0;
+      private int repeatLimit_;
       /**
        * optional int32 repeat_limit = 3;
        * @return Whether the repeatLimit field is set.
@@ -52064,7 +55307,7 @@ public int getRepeatLimit() {
       }
 
       public static final int REPEAT_COUNT_FIELD_NUMBER = 4;
-      private int repeatCount_ = 0;
+      private int repeatCount_;
       /**
        * optional int32 repeat_count = 4;
        * @return Whether the repeatCount field is set.
@@ -52083,8 +55326,7 @@ public int getRepeatCount() {
       }
 
       public static final int CRON_EXPRESSION_FIELD_NUMBER = 5;
-      @SuppressWarnings("serial")
-      private volatile java.lang.Object cronExpression_ = "";
+      private volatile java.lang.Object cronExpression_;
       /**
        * optional string cron_expression = 5;
        * @return Whether the cronExpression field is set.
@@ -52132,7 +55374,7 @@ public java.lang.String getCronExpression() {
       }
 
       public static final int NEXT_FIRE_TIME_FIELD_NUMBER = 6;
-      private long nextFireTime_ = 0L;
+      private long nextFireTime_;
       /**
        * optional int64 next_fire_time = 6;
        * @return Whether the nextFireTime field is set.
@@ -52151,9 +55393,7 @@ public long getNextFireTime() {
       }
 
       public static final int CALENDAR_NAME_FIELD_NUMBER = 7;
-      @SuppressWarnings("serial")
-      private com.google.protobuf.LazyStringArrayList calendarName_ =
-          com.google.protobuf.LazyStringArrayList.emptyList();
+      private com.google.protobuf.LazyStringList calendarName_;
       /**
        * repeated string calendar_name = 7;
        * @return A list containing the calendarName.
@@ -52222,7 +55462,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < calendarName_.size(); i++) {
           com.google.protobuf.GeneratedMessageV3.writeString(output, 7, calendarName_.getRaw(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -52262,7 +55502,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getCalendarNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -52309,7 +55549,7 @@ public boolean equals(final java.lang.Object obj) {
         }
         if (!getCalendarNameList()
             .equals(other.getCalendarNameList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -52351,7 +55591,7 @@ public int hashCode() {
           hash = (37 * hash) + CALENDAR_NAME_FIELD_NUMBER;
           hash = (53 * hash) + getCalendarNameList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -52468,26 +55708,36 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           startTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           endTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000002);
           repeatLimit_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000004);
           repeatCount_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000008);
           cronExpression_ = "";
+          bitField0_ = (bitField0_ & ~0x00000010);
           nextFireTime_ = 0L;
-          calendarName_ =
-              com.google.protobuf.LazyStringArrayList.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
+          calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000040);
           return this;
         }
 
@@ -52514,12 +55764,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger bu
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger result = new org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -52539,20 +55783,55 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Tr
             to_bitField0_ |= 0x00000008;
           }
           if (((from_bitField0_ & 0x00000010) != 0)) {
-            result.cronExpression_ = cronExpression_;
             to_bitField0_ |= 0x00000010;
           }
+          result.cronExpression_ = cronExpression_;
           if (((from_bitField0_ & 0x00000020) != 0)) {
             result.nextFireTime_ = nextFireTime_;
             to_bitField0_ |= 0x00000020;
           }
-          if (((from_bitField0_ & 0x00000040) != 0)) {
-            calendarName_.makeImmutable();
-            result.calendarName_ = calendarName_;
+          if (((bitField0_ & 0x00000040) != 0)) {
+            calendarName_ = calendarName_.getUnmodifiableView();
+            bitField0_ = (bitField0_ & ~0x00000040);
           }
-          result.bitField0_ |= to_bitField0_;
+          result.calendarName_ = calendarName_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger) {
@@ -52578,8 +55857,8 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
             setRepeatCount(other.getRepeatCount());
           }
           if (other.hasCronExpression()) {
-            cronExpression_ = other.cronExpression_;
             bitField0_ |= 0x00000010;
+            cronExpression_ = other.cronExpression_;
             onChanged();
           }
           if (other.hasNextFireTime()) {
@@ -52588,14 +55867,14 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
           if (!other.calendarName_.isEmpty()) {
             if (calendarName_.isEmpty()) {
               calendarName_ = other.calendarName_;
-              bitField0_ |= 0x00000040;
+              bitField0_ = (bitField0_ & ~0x00000040);
             } else {
               ensureCalendarNameIsMutable();
               calendarName_.addAll(other.calendarName_);
             }
             onChanged();
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -52610,66 +55889,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  startTime_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  endTime_ = input.readInt64();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  repeatLimit_ = input.readInt32();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 32: {
-                  repeatCount_ = input.readInt32();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 32
-                case 42: {
-                  cronExpression_ = input.readBytes();
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 42
-                case 48: {
-                  nextFireTime_ = input.readInt64();
-                  bitField0_ |= 0x00000020;
-                  break;
-                } // case 48
-                case 58: {
-                  com.google.protobuf.ByteString bs = input.readBytes();
-                  ensureCalendarNameIsMutable();
-                  calendarName_.add(bs);
-                  break;
-                } // case 58
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -52697,9 +55927,8 @@ public long getStartTime() {
          * @return This builder for chaining.
          */
         public Builder setStartTime(long value) {
-
-          startTime_ = value;
           bitField0_ |= 0x00000001;
+          startTime_ = value;
           onChanged();
           return this;
         }
@@ -52737,9 +55966,8 @@ public long getEndTime() {
          * @return This builder for chaining.
          */
         public Builder setEndTime(long value) {
-
-          endTime_ = value;
           bitField0_ |= 0x00000002;
+          endTime_ = value;
           onChanged();
           return this;
         }
@@ -52777,9 +56005,8 @@ public int getRepeatLimit() {
          * @return This builder for chaining.
          */
         public Builder setRepeatLimit(int value) {
-
-          repeatLimit_ = value;
           bitField0_ |= 0x00000004;
+          repeatLimit_ = value;
           onChanged();
           return this;
         }
@@ -52817,9 +56044,8 @@ public int getRepeatCount() {
          * @return This builder for chaining.
          */
         public Builder setRepeatCount(int value) {
-
-          repeatCount_ = value;
           bitField0_ |= 0x00000008;
+          repeatCount_ = value;
           onChanged();
           return this;
         }
@@ -52884,9 +56110,11 @@ public java.lang.String getCronExpression() {
          */
         public Builder setCronExpression(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
           cronExpression_ = value;
-          bitField0_ |= 0x00000010;
           onChanged();
           return this;
         }
@@ -52895,8 +56123,8 @@ public Builder setCronExpression(
          * @return This builder for chaining.
          */
         public Builder clearCronExpression() {
-          cronExpression_ = getDefaultInstance().getCronExpression();
           bitField0_ = (bitField0_ & ~0x00000010);
+          cronExpression_ = getDefaultInstance().getCronExpression();
           onChanged();
           return this;
         }
@@ -52907,9 +56135,11 @@ public Builder clearCronExpression() {
          */
         public Builder setCronExpressionBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000010;
           cronExpression_ = value;
-          bitField0_ |= 0x00000010;
           onChanged();
           return this;
         }
@@ -52937,9 +56167,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000020;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -52954,13 +56183,12 @@ public Builder clearNextFireTime() {
           return this;
         }
 
-        private com.google.protobuf.LazyStringArrayList calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        private com.google.protobuf.LazyStringList calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
         private void ensureCalendarNameIsMutable() {
-          if (!calendarName_.isModifiable()) {
+          if (!((bitField0_ & 0x00000040) != 0)) {
             calendarName_ = new com.google.protobuf.LazyStringArrayList(calendarName_);
-          }
-          bitField0_ |= 0x00000040;
+            bitField0_ |= 0x00000040;
+           }
         }
         /**
          * repeated string calendar_name = 7;
@@ -52968,8 +56196,7 @@ private void ensureCalendarNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getCalendarNameList() {
-          calendarName_.makeImmutable();
-          return calendarName_;
+          return calendarName_.getUnmodifiableView();
         }
         /**
          * repeated string calendar_name = 7;
@@ -53003,10 +56230,11 @@ public java.lang.String getCalendarName(int index) {
          */
         public Builder setCalendarName(
             int index, java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.set(index, value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -53017,10 +56245,11 @@ public Builder setCalendarName(
          */
         public Builder addCalendarName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.add(value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -53034,7 +56263,6 @@ public Builder addAllCalendarName(
           ensureCalendarNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, calendarName_);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -53043,9 +56271,8 @@ public Builder addAllCalendarName(
          * @return This builder for chaining.
          */
         public Builder clearCalendarName() {
-          calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000040);;
+          calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000040);
           onChanged();
           return this;
         }
@@ -53056,10 +56283,11 @@ public Builder clearCalendarName() {
          */
         public Builder addCalendarNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.add(value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -53096,18 +56324,7 @@ public CronTrigger parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new CronTrigger(input, extensionRegistry);
         }
       };
 
@@ -53235,8 +56452,7 @@ private IntervalTrigger(com.google.protobuf.GeneratedMessageV3.Builder builde
         super(builder);
       }
       private IntervalTrigger() {
-        calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
       }
 
       @java.lang.Override
@@ -53246,6 +56462,91 @@ protected java.lang.Object newInstance(
         return new IntervalTrigger();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private IntervalTrigger(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                startTime_ = input.readInt64();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                endTime_ = input.readInt64();
+                break;
+              }
+              case 24: {
+                bitField0_ |= 0x00000004;
+                repeatLimit_ = input.readInt32();
+                break;
+              }
+              case 32: {
+                bitField0_ |= 0x00000008;
+                repeatCount_ = input.readInt32();
+                break;
+              }
+              case 48: {
+                bitField0_ |= 0x00000010;
+                nextFireTime_ = input.readInt64();
+                break;
+              }
+              case 56: {
+                bitField0_ |= 0x00000020;
+                period_ = input.readInt64();
+                break;
+              }
+              case 66: {
+                com.google.protobuf.ByteString bs = input.readBytes();
+                if (!((mutable_bitField0_ & 0x00000040) != 0)) {
+                  calendarName_ = new com.google.protobuf.LazyStringArrayList();
+                  mutable_bitField0_ |= 0x00000040;
+                }
+                calendarName_.add(bs);
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          if (((mutable_bitField0_ & 0x00000040) != 0)) {
+            calendarName_ = calendarName_.getUnmodifiableView();
+          }
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Trigger_IntervalTrigger_descriptor;
@@ -53261,7 +56562,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int START_TIME_FIELD_NUMBER = 1;
-      private long startTime_ = 0L;
+      private long startTime_;
       /**
        * optional int64 start_time = 1;
        * @return Whether the startTime field is set.
@@ -53280,7 +56581,7 @@ public long getStartTime() {
       }
 
       public static final int END_TIME_FIELD_NUMBER = 2;
-      private long endTime_ = 0L;
+      private long endTime_;
       /**
        * optional int64 end_time = 2;
        * @return Whether the endTime field is set.
@@ -53299,7 +56600,7 @@ public long getEndTime() {
       }
 
       public static final int REPEAT_LIMIT_FIELD_NUMBER = 3;
-      private int repeatLimit_ = 0;
+      private int repeatLimit_;
       /**
        * optional int32 repeat_limit = 3;
        * @return Whether the repeatLimit field is set.
@@ -53318,7 +56619,7 @@ public int getRepeatLimit() {
       }
 
       public static final int REPEAT_COUNT_FIELD_NUMBER = 4;
-      private int repeatCount_ = 0;
+      private int repeatCount_;
       /**
        * optional int32 repeat_count = 4;
        * @return Whether the repeatCount field is set.
@@ -53337,7 +56638,7 @@ public int getRepeatCount() {
       }
 
       public static final int NEXT_FIRE_TIME_FIELD_NUMBER = 6;
-      private long nextFireTime_ = 0L;
+      private long nextFireTime_;
       /**
        * optional int64 next_fire_time = 6;
        * @return Whether the nextFireTime field is set.
@@ -53356,7 +56657,7 @@ public long getNextFireTime() {
       }
 
       public static final int PERIOD_FIELD_NUMBER = 7;
-      private long period_ = 0L;
+      private long period_;
       /**
        * optional int64 period = 7;
        * @return Whether the period field is set.
@@ -53375,9 +56676,7 @@ public long getPeriod() {
       }
 
       public static final int CALENDAR_NAME_FIELD_NUMBER = 8;
-      @SuppressWarnings("serial")
-      private com.google.protobuf.LazyStringArrayList calendarName_ =
-          com.google.protobuf.LazyStringArrayList.emptyList();
+      private com.google.protobuf.LazyStringList calendarName_;
       /**
        * repeated string calendar_name = 8;
        * @return A list containing the calendarName.
@@ -53446,7 +56745,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         for (int i = 0; i < calendarName_.size(); i++) {
           com.google.protobuf.GeneratedMessageV3.writeString(output, 8, calendarName_.getRaw(i));
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -53487,7 +56786,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getCalendarNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -53534,7 +56833,7 @@ public boolean equals(final java.lang.Object obj) {
         }
         if (!getCalendarNameList()
             .equals(other.getCalendarNameList())) return false;
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -53577,7 +56876,7 @@ public int hashCode() {
           hash = (37 * hash) + CALENDAR_NAME_FIELD_NUMBER;
           hash = (53 * hash) + getCalendarNameList().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -53694,26 +56993,36 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           startTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           endTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000002);
           repeatLimit_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000004);
           repeatCount_ = 0;
+          bitField0_ = (bitField0_ & ~0x00000008);
           nextFireTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000010);
           period_ = 0L;
-          calendarName_ =
-              com.google.protobuf.LazyStringArrayList.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
+          calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000040);
           return this;
         }
 
@@ -53740,12 +57049,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigge
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger result = new org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -53772,13 +57075,48 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Tr
             result.period_ = period_;
             to_bitField0_ |= 0x00000020;
           }
-          if (((from_bitField0_ & 0x00000040) != 0)) {
-            calendarName_.makeImmutable();
-            result.calendarName_ = calendarName_;
+          if (((bitField0_ & 0x00000040) != 0)) {
+            calendarName_ = calendarName_.getUnmodifiableView();
+            bitField0_ = (bitField0_ & ~0x00000040);
           }
-          result.bitField0_ |= to_bitField0_;
+          result.calendarName_ = calendarName_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger) {
@@ -53812,14 +57150,14 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
           if (!other.calendarName_.isEmpty()) {
             if (calendarName_.isEmpty()) {
               calendarName_ = other.calendarName_;
-              bitField0_ |= 0x00000040;
+              bitField0_ = (bitField0_ & ~0x00000040);
             } else {
               ensureCalendarNameIsMutable();
               calendarName_.addAll(other.calendarName_);
             }
             onChanged();
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -53834,66 +57172,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  startTime_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  endTime_ = input.readInt64();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 24: {
-                  repeatLimit_ = input.readInt32();
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 24
-                case 32: {
-                  repeatCount_ = input.readInt32();
-                  bitField0_ |= 0x00000008;
-                  break;
-                } // case 32
-                case 48: {
-                  nextFireTime_ = input.readInt64();
-                  bitField0_ |= 0x00000010;
-                  break;
-                } // case 48
-                case 56: {
-                  period_ = input.readInt64();
-                  bitField0_ |= 0x00000020;
-                  break;
-                } // case 56
-                case 66: {
-                  com.google.protobuf.ByteString bs = input.readBytes();
-                  ensureCalendarNameIsMutable();
-                  calendarName_.add(bs);
-                  break;
-                } // case 66
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -53921,9 +57210,8 @@ public long getStartTime() {
          * @return This builder for chaining.
          */
         public Builder setStartTime(long value) {
-
-          startTime_ = value;
           bitField0_ |= 0x00000001;
+          startTime_ = value;
           onChanged();
           return this;
         }
@@ -53961,9 +57249,8 @@ public long getEndTime() {
          * @return This builder for chaining.
          */
         public Builder setEndTime(long value) {
-
-          endTime_ = value;
           bitField0_ |= 0x00000002;
+          endTime_ = value;
           onChanged();
           return this;
         }
@@ -54001,9 +57288,8 @@ public int getRepeatLimit() {
          * @return This builder for chaining.
          */
         public Builder setRepeatLimit(int value) {
-
-          repeatLimit_ = value;
           bitField0_ |= 0x00000004;
+          repeatLimit_ = value;
           onChanged();
           return this;
         }
@@ -54041,9 +57327,8 @@ public int getRepeatCount() {
          * @return This builder for chaining.
          */
         public Builder setRepeatCount(int value) {
-
-          repeatCount_ = value;
           bitField0_ |= 0x00000008;
+          repeatCount_ = value;
           onChanged();
           return this;
         }
@@ -54081,9 +57366,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000010;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -54121,9 +57405,8 @@ public long getPeriod() {
          * @return This builder for chaining.
          */
         public Builder setPeriod(long value) {
-
-          period_ = value;
           bitField0_ |= 0x00000020;
+          period_ = value;
           onChanged();
           return this;
         }
@@ -54138,13 +57421,12 @@ public Builder clearPeriod() {
           return this;
         }
 
-        private com.google.protobuf.LazyStringArrayList calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
+        private com.google.protobuf.LazyStringList calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
         private void ensureCalendarNameIsMutable() {
-          if (!calendarName_.isModifiable()) {
+          if (!((bitField0_ & 0x00000040) != 0)) {
             calendarName_ = new com.google.protobuf.LazyStringArrayList(calendarName_);
-          }
-          bitField0_ |= 0x00000040;
+            bitField0_ |= 0x00000040;
+           }
         }
         /**
          * repeated string calendar_name = 8;
@@ -54152,8 +57434,7 @@ private void ensureCalendarNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getCalendarNameList() {
-          calendarName_.makeImmutable();
-          return calendarName_;
+          return calendarName_.getUnmodifiableView();
         }
         /**
          * repeated string calendar_name = 8;
@@ -54187,10 +57468,11 @@ public java.lang.String getCalendarName(int index) {
          */
         public Builder setCalendarName(
             int index, java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.set(index, value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -54201,10 +57483,11 @@ public Builder setCalendarName(
          */
         public Builder addCalendarName(
             java.lang.String value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.add(value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -54218,7 +57501,6 @@ public Builder addAllCalendarName(
           ensureCalendarNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, calendarName_);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -54227,9 +57509,8 @@ public Builder addAllCalendarName(
          * @return This builder for chaining.
          */
         public Builder clearCalendarName() {
-          calendarName_ =
-            com.google.protobuf.LazyStringArrayList.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000040);;
+          calendarName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          bitField0_ = (bitField0_ & ~0x00000040);
           onChanged();
           return this;
         }
@@ -54240,10 +57521,11 @@ public Builder clearCalendarName() {
          */
         public Builder addCalendarNameBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) { throw new NullPointerException(); }
-          ensureCalendarNameIsMutable();
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureCalendarNameIsMutable();
           calendarName_.add(value);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -54280,18 +57562,7 @@ public IntervalTrigger parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new IntervalTrigger(input, extensionRegistry);
         }
       };
 
@@ -54348,6 +57619,54 @@ protected java.lang.Object newInstance(
         return new PointInTimeTrigger();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private PointInTimeTrigger(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                nextFireTime_ = input.readInt64();
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Trigger_PointInTimeTrigger_descriptor;
@@ -54363,7 +57682,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int NEXT_FIRE_TIME_FIELD_NUMBER = 1;
-      private long nextFireTime_ = 0L;
+      private long nextFireTime_;
       /**
        * optional int64 next_fire_time = 1;
        * @return Whether the nextFireTime field is set.
@@ -54398,7 +57717,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000001) != 0)) {
           output.writeInt64(1, nextFireTime_);
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -54411,7 +57730,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(1, nextFireTime_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -54431,7 +57750,7 @@ public boolean equals(final java.lang.Object obj) {
           if (getNextFireTime()
               != other.getNextFireTime()) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -54447,7 +57766,7 @@ public int hashCode() {
           hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
               getNextFireTime());
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -54564,19 +57883,24 @@ public static final class Builder extends
 
         // Construct using org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.newBuilder()
         private Builder() {
-
+          maybeForceBuilderInitialization();
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           nextFireTime_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
 
@@ -54603,21 +57927,49 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTri
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger result = new org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
             result.nextFireTime_ = nextFireTime_;
             to_bitField0_ |= 0x00000001;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger) {
@@ -54633,7 +57985,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
           if (other.hasNextFireTime()) {
             setNextFireTime(other.getNextFireTime());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -54648,35 +58000,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  nextFireTime_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -54704,9 +58038,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000001;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -54753,18 +58086,7 @@ public PointInTimeTrigger parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new PointInTimeTrigger(input, extensionRegistry);
         }
       };
 
@@ -54847,6 +58169,72 @@ protected java.lang.Object newInstance(
         return new CompositeMaxDurationTrigger();
       }
 
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private CompositeMaxDurationTrigger(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        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;
+              case 8: {
+                bitField0_ |= 0x00000001;
+                maxDurationTimestamp_ = input.readInt64();
+                break;
+              }
+              case 16: {
+                bitField0_ |= 0x00000002;
+                timerCurrentDate_ = input.readInt64();
+                break;
+              }
+              case 26: {
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder subBuilder = null;
+                if (((bitField0_ & 0x00000004) != 0)) {
+                  subBuilder = timerTrigger_.toBuilder();
+                }
+                timerTrigger_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PARSER, extensionRegistry);
+                if (subBuilder != null) {
+                  subBuilder.mergeFrom(timerTrigger_);
+                  timerTrigger_ = subBuilder.buildPartial();
+                }
+                bitField0_ |= 0x00000004;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return org.drools.serialization.protobuf.ProtobufMessages.internal_static_org_drools_serialization_protobuf_Trigger_CompositeMaxDurationTrigger_descriptor;
@@ -54862,7 +58250,7 @@ protected java.lang.Object newInstance(
 
       private int bitField0_;
       public static final int MAXDURATIONTIMESTAMP_FIELD_NUMBER = 1;
-      private long maxDurationTimestamp_ = 0L;
+      private long maxDurationTimestamp_;
       /**
        * optional int64 maxDurationTimestamp = 1;
        * @return Whether the maxDurationTimestamp field is set.
@@ -54881,7 +58269,7 @@ public long getMaxDurationTimestamp() {
       }
 
       public static final int TIMERCURRENTDATE_FIELD_NUMBER = 2;
-      private long timerCurrentDate_ = 0L;
+      private long timerCurrentDate_;
       /**
        * optional int64 timerCurrentDate = 2;
        * @return Whether the timerCurrentDate field is set.
@@ -54948,7 +58336,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (((bitField0_ & 0x00000004) != 0)) {
           output.writeMessage(3, getTimerTrigger());
         }
-        getUnknownFields().writeTo(output);
+        unknownFields.writeTo(output);
       }
 
       @java.lang.Override
@@ -54969,7 +58357,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(3, getTimerTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -54999,7 +58387,7 @@ public boolean equals(final java.lang.Object obj) {
           if (!getTimerTrigger()
               .equals(other.getTimerTrigger())) return false;
         }
-        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
 
@@ -55024,7 +58412,7 @@ public int hashCode() {
           hash = (37 * hash) + TIMERTRIGGER_FIELD_NUMBER;
           hash = (53 * hash) + getTimerTrigger().hashCode();
         }
-        hash = (29 * hash) + getUnknownFields().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -55158,14 +58546,16 @@ private void maybeForceBuilderInitialization() {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          bitField0_ = 0;
           maxDurationTimestamp_ = 0L;
+          bitField0_ = (bitField0_ & ~0x00000001);
           timerCurrentDate_ = 0L;
-          timerTrigger_ = null;
-          if (timerTriggerBuilder_ != null) {
-            timerTriggerBuilder_.dispose();
-            timerTriggerBuilder_ = null;
+          bitField0_ = (bitField0_ & ~0x00000002);
+          if (timerTriggerBuilder_ == null) {
+            timerTrigger_ = null;
+          } else {
+            timerTriggerBuilder_.clear();
           }
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
 
@@ -55192,12 +58582,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDu
         @java.lang.Override
         public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger buildPartial() {
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger result = new org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger(this);
-          if (bitField0_ != 0) { buildPartial0(result); }
-          onBuilt();
-          return result;
-        }
-
-        private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger result) {
           int from_bitField0_ = bitField0_;
           int to_bitField0_ = 0;
           if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -55209,14 +58593,50 @@ private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Tr
             to_bitField0_ |= 0x00000002;
           }
           if (((from_bitField0_ & 0x00000004) != 0)) {
-            result.timerTrigger_ = timerTriggerBuilder_ == null
-                ? timerTrigger_
-                : timerTriggerBuilder_.build();
+            if (timerTriggerBuilder_ == null) {
+              result.timerTrigger_ = timerTrigger_;
+            } else {
+              result.timerTrigger_ = timerTriggerBuilder_.build();
+            }
             to_bitField0_ |= 0x00000004;
           }
-          result.bitField0_ |= to_bitField0_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
 
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
         @java.lang.Override
         public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger) {
@@ -55238,7 +58658,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
           if (other.hasTimerTrigger()) {
             mergeTimerTrigger(other.getTimerTrigger());
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -55253,47 +58673,17 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          if (extensionRegistry == null) {
-            throw new java.lang.NullPointerException();
-          }
+          org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger parsedMessage = null;
           try {
-            boolean done = false;
-            while (!done) {
-              int tag = input.readTag();
-              switch (tag) {
-                case 0:
-                  done = true;
-                  break;
-                case 8: {
-                  maxDurationTimestamp_ = input.readInt64();
-                  bitField0_ |= 0x00000001;
-                  break;
-                } // case 8
-                case 16: {
-                  timerCurrentDate_ = input.readInt64();
-                  bitField0_ |= 0x00000002;
-                  break;
-                } // case 16
-                case 26: {
-                  input.readMessage(
-                      getTimerTriggerFieldBuilder().getBuilder(),
-                      extensionRegistry);
-                  bitField0_ |= 0x00000004;
-                  break;
-                } // case 26
-                default: {
-                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                    done = true; // was an endgroup tag
-                  }
-                  break;
-                } // default:
-              } // switch (tag)
-            } // while (!done)
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            onChanged();
-          } // finally
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
           return this;
         }
         private int bitField0_;
@@ -55321,9 +58711,8 @@ public long getMaxDurationTimestamp() {
          * @return This builder for chaining.
          */
         public Builder setMaxDurationTimestamp(long value) {
-
-          maxDurationTimestamp_ = value;
           bitField0_ |= 0x00000001;
+          maxDurationTimestamp_ = value;
           onChanged();
           return this;
         }
@@ -55361,9 +58750,8 @@ public long getTimerCurrentDate() {
          * @return This builder for chaining.
          */
         public Builder setTimerCurrentDate(long value) {
-
-          timerCurrentDate_ = value;
           bitField0_ |= 0x00000002;
+          timerCurrentDate_ = value;
           onChanged();
           return this;
         }
@@ -55408,11 +58796,11 @@ public Builder setTimerTrigger(org.drools.serialization.protobuf.ProtobufMessage
               throw new NullPointerException();
             }
             timerTrigger_ = value;
+            onChanged();
           } else {
             timerTriggerBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -55422,11 +58810,11 @@ public Builder setTimerTrigger(
             org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder builderForValue) {
           if (timerTriggerBuilder_ == null) {
             timerTrigger_ = builderForValue.build();
+            onChanged();
           } else {
             timerTriggerBuilder_.setMessage(builderForValue.build());
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -55435,30 +58823,31 @@ public Builder setTimerTrigger(
         public Builder mergeTimerTrigger(org.drools.serialization.protobuf.ProtobufMessages.Trigger value) {
           if (timerTriggerBuilder_ == null) {
             if (((bitField0_ & 0x00000004) != 0) &&
-              timerTrigger_ != null &&
-              timerTrigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
-              getTimerTriggerBuilder().mergeFrom(value);
+                timerTrigger_ != null &&
+                timerTrigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
+              timerTrigger_ =
+                org.drools.serialization.protobuf.ProtobufMessages.Trigger.newBuilder(timerTrigger_).mergeFrom(value).buildPartial();
             } else {
               timerTrigger_ = value;
             }
+            onChanged();
           } else {
             timerTriggerBuilder_.mergeFrom(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
          * optional .org.drools.serialization.protobuf.Trigger timerTrigger = 3;
          */
         public Builder clearTimerTrigger() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          timerTrigger_ = null;
-          if (timerTriggerBuilder_ != null) {
-            timerTriggerBuilder_.dispose();
-            timerTriggerBuilder_ = null;
+          if (timerTriggerBuilder_ == null) {
+            timerTrigger_ = null;
+            onChanged();
+          } else {
+            timerTriggerBuilder_.clear();
           }
-          onChanged();
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
         /**
@@ -55487,8 +58876,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTi
             org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder> 
             getTimerTriggerFieldBuilder() {
           if (timerTriggerBuilder_ == null) {
-            timerTriggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-                org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder>(
+            timerTriggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                     getTimerTrigger(),
                     getParentForChildren(),
                     isClean());
@@ -55529,18 +58917,7 @@ public CompositeMaxDurationTrigger parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          Builder builder = newBuilder();
-          try {
-            builder.mergeFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            throw e.setUnfinishedMessage(builder.buildPartial());
-          } catch (com.google.protobuf.UninitializedMessageException e) {
-            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-          } catch (java.io.IOException e) {
-            throw new com.google.protobuf.InvalidProtocolBufferException(e)
-                .setUnfinishedMessage(builder.buildPartial());
-          }
-          return builder.buildPartial();
+          return new CompositeMaxDurationTrigger(input, extensionRegistry);
         }
       };
 
@@ -55562,7 +58939,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDu
 
     private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
-    private int type_ = 0;
+    private int type_;
     /**
      * optional .org.drools.serialization.protobuf.Trigger.TriggerType type = 1;
      * @return Whether the type field is set.
@@ -55575,7 +58952,8 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDu
      * @return The type.
      */
     @java.lang.Override public org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType getType() {
-      org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType result = org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.forNumber(type_);
+      @SuppressWarnings("deprecation")
+      org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType result = org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.valueOf(type_);
       return result == null ? org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.CRON : result;
     }
 
@@ -55712,7 +59090,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (((bitField0_ & 0x00000010) != 0)) {
         output.writeMessage(5, getCmdt());
       }
-      getUnknownFields().writeTo(output);
+      unknownFields.writeTo(output);
     }
 
     @java.lang.Override
@@ -55741,7 +59119,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(5, getCmdt());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -55780,7 +59158,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getCmdt()
             .equals(other.getCmdt())) return false;
       }
-      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
 
@@ -55811,7 +59189,7 @@ public int hashCode() {
         hash = (37 * hash) + CMDT_FIELD_NUMBER;
         hash = (53 * hash) + getCmdt().hashCode();
       }
-      hash = (29 * hash) + getUnknownFields().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -55948,28 +59326,32 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        bitField0_ = 0;
         type_ = 0;
-        cron_ = null;
-        if (cronBuilder_ != null) {
-          cronBuilder_.dispose();
-          cronBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (cronBuilder_ == null) {
+          cron_ = null;
+        } else {
+          cronBuilder_.clear();
         }
-        interval_ = null;
-        if (intervalBuilder_ != null) {
-          intervalBuilder_.dispose();
-          intervalBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (intervalBuilder_ == null) {
+          interval_ = null;
+        } else {
+          intervalBuilder_.clear();
         }
-        pit_ = null;
-        if (pitBuilder_ != null) {
-          pitBuilder_.dispose();
-          pitBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (pitBuilder_ == null) {
+          pit_ = null;
+        } else {
+          pitBuilder_.clear();
         }
-        cmdt_ = null;
-        if (cmdtBuilder_ != null) {
-          cmdtBuilder_.dispose();
-          cmdtBuilder_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        if (cmdtBuilder_ == null) {
+          cmdt_ = null;
+        } else {
+          cmdtBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
 
@@ -55996,45 +59378,81 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger build() {
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Trigger buildPartial() {
         org.drools.serialization.protobuf.ProtobufMessages.Trigger result = new org.drools.serialization.protobuf.ProtobufMessages.Trigger(this);
-        if (bitField0_ != 0) { buildPartial0(result); }
-        onBuilt();
-        return result;
-      }
-
-      private void buildPartial0(org.drools.serialization.protobuf.ProtobufMessages.Trigger result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
-          result.type_ = type_;
           to_bitField0_ |= 0x00000001;
         }
+        result.type_ = type_;
         if (((from_bitField0_ & 0x00000002) != 0)) {
-          result.cron_ = cronBuilder_ == null
-              ? cron_
-              : cronBuilder_.build();
+          if (cronBuilder_ == null) {
+            result.cron_ = cron_;
+          } else {
+            result.cron_ = cronBuilder_.build();
+          }
           to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
-          result.interval_ = intervalBuilder_ == null
-              ? interval_
-              : intervalBuilder_.build();
+          if (intervalBuilder_ == null) {
+            result.interval_ = interval_;
+          } else {
+            result.interval_ = intervalBuilder_.build();
+          }
           to_bitField0_ |= 0x00000004;
         }
         if (((from_bitField0_ & 0x00000008) != 0)) {
-          result.pit_ = pitBuilder_ == null
-              ? pit_
-              : pitBuilder_.build();
+          if (pitBuilder_ == null) {
+            result.pit_ = pit_;
+          } else {
+            result.pit_ = pitBuilder_.build();
+          }
           to_bitField0_ |= 0x00000008;
         }
         if (((from_bitField0_ & 0x00000010) != 0)) {
-          result.cmdt_ = cmdtBuilder_ == null
-              ? cmdt_
-              : cmdtBuilder_.build();
+          if (cmdtBuilder_ == null) {
+            result.cmdt_ = cmdt_;
+          } else {
+            result.cmdt_ = cmdtBuilder_.build();
+          }
           to_bitField0_ |= 0x00000010;
         }
-        result.bitField0_ |= to_bitField0_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
 
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof org.drools.serialization.protobuf.ProtobufMessages.Trigger) {
@@ -56062,7 +59480,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trig
         if (other.hasCmdt()) {
           mergeCmdt(other.getCmdt());
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -56077,70 +59495,17 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
+        org.drools.serialization.protobuf.ProtobufMessages.Trigger parsedMessage = null;
         try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 8: {
-                int tmpRaw = input.readEnum();
-                org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType tmpValue =
-                    org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.forNumber(tmpRaw);
-                if (tmpValue == null) {
-                  mergeUnknownVarintField(1, tmpRaw);
-                } else {
-                  type_ = tmpRaw;
-                  bitField0_ |= 0x00000001;
-                }
-                break;
-              } // case 8
-              case 18: {
-                input.readMessage(
-                    getCronFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000002;
-                break;
-              } // case 18
-              case 26: {
-                input.readMessage(
-                    getIntervalFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000004;
-                break;
-              } // case 26
-              case 34: {
-                input.readMessage(
-                    getPitFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000008;
-                break;
-              } // case 34
-              case 42: {
-                input.readMessage(
-                    getCmdtFieldBuilder().getBuilder(),
-                    extensionRegistry);
-                bitField0_ |= 0x00000010;
-                break;
-              } // case 42
-              default: {
-                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
-                  done = true; // was an endgroup tag
-                }
-                break;
-              } // default:
-            } // switch (tag)
-          } // while (!done)
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.drools.serialization.protobuf.ProtobufMessages.Trigger) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          onChanged();
-        } // finally
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
         return this;
       }
       private int bitField0_;
@@ -56159,7 +59524,8 @@ public Builder mergeFrom(
        */
       @java.lang.Override
       public org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType getType() {
-        org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType result = org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.forNumber(type_);
+        @SuppressWarnings("deprecation")
+        org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType result = org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.valueOf(type_);
         return result == null ? org.drools.serialization.protobuf.ProtobufMessages.Trigger.TriggerType.CRON : result;
       }
       /**
@@ -56217,11 +59583,11 @@ public Builder setCron(org.drools.serialization.protobuf.ProtobufMessages.Trigge
             throw new NullPointerException();
           }
           cron_ = value;
+          onChanged();
         } else {
           cronBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
@@ -56231,11 +59597,11 @@ public Builder setCron(
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.Builder builderForValue) {
         if (cronBuilder_ == null) {
           cron_ = builderForValue.build();
+          onChanged();
         } else {
           cronBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
@@ -56244,30 +59610,31 @@ public Builder setCron(
       public Builder mergeCron(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger value) {
         if (cronBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0) &&
-            cron_ != null &&
-            cron_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.getDefaultInstance()) {
-            getCronBuilder().mergeFrom(value);
+              cron_ != null &&
+              cron_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.getDefaultInstance()) {
+            cron_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.newBuilder(cron_).mergeFrom(value).buildPartial();
           } else {
             cron_ = value;
           }
+          onChanged();
         } else {
           cronBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000002;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Trigger.CronTrigger cron = 2;
        */
       public Builder clearCron() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        cron_ = null;
-        if (cronBuilder_ != null) {
-          cronBuilder_.dispose();
-          cronBuilder_ = null;
+        if (cronBuilder_ == null) {
+          cron_ = null;
+          onChanged();
+        } else {
+          cronBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
       /**
@@ -56296,8 +59663,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTriggerOrB
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTriggerOrBuilder> 
           getCronFieldBuilder() {
         if (cronBuilder_ == null) {
-          cronBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CronTriggerOrBuilder>(
+          cronBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getCron(),
                   getParentForChildren(),
                   isClean());
@@ -56336,11 +59702,11 @@ public Builder setInterval(org.drools.serialization.protobuf.ProtobufMessages.Tr
             throw new NullPointerException();
           }
           interval_ = value;
+          onChanged();
         } else {
           intervalBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -56350,11 +59716,11 @@ public Builder setInterval(
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.Builder builderForValue) {
         if (intervalBuilder_ == null) {
           interval_ = builderForValue.build();
+          onChanged();
         } else {
           intervalBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -56363,30 +59729,31 @@ public Builder setInterval(
       public Builder mergeInterval(org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger value) {
         if (intervalBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
-            interval_ != null &&
-            interval_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.getDefaultInstance()) {
-            getIntervalBuilder().mergeFrom(value);
+              interval_ != null &&
+              interval_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.getDefaultInstance()) {
+            interval_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.newBuilder(interval_).mergeFrom(value).buildPartial();
           } else {
             interval_ = value;
           }
+          onChanged();
         } else {
           intervalBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Trigger.IntervalTrigger interval = 3;
        */
       public Builder clearInterval() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        interval_ = null;
-        if (intervalBuilder_ != null) {
-          intervalBuilder_.dispose();
-          intervalBuilder_ = null;
+        if (intervalBuilder_ == null) {
+          interval_ = null;
+          onChanged();
+        } else {
+          intervalBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
       /**
@@ -56415,8 +59782,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigge
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTriggerOrBuilder> 
           getIntervalFieldBuilder() {
         if (intervalBuilder_ == null) {
-          intervalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.IntervalTriggerOrBuilder>(
+          intervalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getInterval(),
                   getParentForChildren(),
                   isClean());
@@ -56455,11 +59821,11 @@ public Builder setPit(org.drools.serialization.protobuf.ProtobufMessages.Trigger
             throw new NullPointerException();
           }
           pit_ = value;
+          onChanged();
         } else {
           pitBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -56469,11 +59835,11 @@ public Builder setPit(
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.Builder builderForValue) {
         if (pitBuilder_ == null) {
           pit_ = builderForValue.build();
+          onChanged();
         } else {
           pitBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -56482,30 +59848,31 @@ public Builder setPit(
       public Builder mergePit(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger value) {
         if (pitBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
-            pit_ != null &&
-            pit_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.getDefaultInstance()) {
-            getPitBuilder().mergeFrom(value);
+              pit_ != null &&
+              pit_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.getDefaultInstance()) {
+            pit_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.newBuilder(pit_).mergeFrom(value).buildPartial();
           } else {
             pit_ = value;
           }
+          onChanged();
         } else {
           pitBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Trigger.PointInTimeTrigger pit = 4;
        */
       public Builder clearPit() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        pit_ = null;
-        if (pitBuilder_ != null) {
-          pitBuilder_.dispose();
-          pitBuilder_ = null;
+        if (pitBuilder_ == null) {
+          pit_ = null;
+          onChanged();
+        } else {
+          pitBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
       /**
@@ -56534,8 +59901,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTri
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTriggerOrBuilder> 
           getPitFieldBuilder() {
         if (pitBuilder_ == null) {
-          pitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.PointInTimeTriggerOrBuilder>(
+          pitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getPit(),
                   getParentForChildren(),
                   isClean());
@@ -56574,11 +59940,11 @@ public Builder setCmdt(org.drools.serialization.protobuf.ProtobufMessages.Trigge
             throw new NullPointerException();
           }
           cmdt_ = value;
+          onChanged();
         } else {
           cmdtBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -56588,11 +59954,11 @@ public Builder setCmdt(
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.Builder builderForValue) {
         if (cmdtBuilder_ == null) {
           cmdt_ = builderForValue.build();
+          onChanged();
         } else {
           cmdtBuilder_.setMessage(builderForValue.build());
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
@@ -56601,30 +59967,31 @@ public Builder setCmdt(
       public Builder mergeCmdt(org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger value) {
         if (cmdtBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0) &&
-            cmdt_ != null &&
-            cmdt_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.getDefaultInstance()) {
-            getCmdtBuilder().mergeFrom(value);
+              cmdt_ != null &&
+              cmdt_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.getDefaultInstance()) {
+            cmdt_ =
+              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.newBuilder(cmdt_).mergeFrom(value).buildPartial();
           } else {
             cmdt_ = value;
           }
+          onChanged();
         } else {
           cmdtBuilder_.mergeFrom(value);
         }
         bitField0_ |= 0x00000010;
-        onChanged();
         return this;
       }
       /**
        * optional .org.drools.serialization.protobuf.Trigger.CompositeMaxDurationTrigger cmdt = 5;
        */
       public Builder clearCmdt() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        cmdt_ = null;
-        if (cmdtBuilder_ != null) {
-          cmdtBuilder_.dispose();
-          cmdtBuilder_ = null;
+        if (cmdtBuilder_ == null) {
+          cmdt_ = null;
+          onChanged();
+        } else {
+          cmdtBuilder_.clear();
         }
-        onChanged();
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
       /**
@@ -56653,8 +60020,7 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDu
           org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTriggerOrBuilder> 
           getCmdtFieldBuilder() {
         if (cmdtBuilder_ == null) {
-          cmdtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTrigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.Trigger.CompositeMaxDurationTriggerOrBuilder>(
+          cmdtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<>(
                   getCmdt(),
                   getParentForChildren(),
                   isClean());
@@ -56695,18 +60061,7 @@ public Trigger parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        Builder builder = newBuilder();
-        try {
-          builder.mergeFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(builder.buildPartial());
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(builder.buildPartial());
-        }
-        return builder.buildPartial();
+        return new Trigger(input, extensionRegistry);
       }
     };
 
@@ -57606,4 +60961,4 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger getDefaultInst
   }
 
   // @@protoc_insertion_point(outer_class_scope)
-}
+}
\ No newline at end of file