From 3b10a8e618cb44c18d388e3a161124e81edde1c3 Mon Sep 17 00:00:00 2001 From: Jenkins CI Date: Tue, 10 Oct 2023 06:15:43 -0400 Subject: [PATCH] Applied patches after Quarkus downgrade to 2.13.8.Final --- .../protobuf/ProtobufMessages.java | 15123 ++++++++++------ 1 file changed, 9239 insertions(+), 5884 deletions(-) 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 d5acce49aa6..526441f77dd 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 @@ -229,6 +229,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; @@ -309,6 +407,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; @@ -324,7 +481,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. @@ -343,8 +500,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. @@ -392,7 +548,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. @@ -433,7 +589,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 @@ -453,7 +609,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, data_); } - size += getUnknownFields().getSerializedSize(); + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @@ -483,7 +639,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; } @@ -506,7 +662,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; } @@ -623,21 +779,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; } @@ -664,12 +827,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)) { @@ -677,16 +834,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) { @@ -703,14 +894,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; } @@ -725,45 +916,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_; @@ -791,9 +954,8 @@ public int getId() { * @return This builder for chaining. */ public Builder setId(int value) { - - id_ = value; bitField0_ |= 0x00000001; + id_ = value; onChanged(); return this; } @@ -858,9 +1020,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; } @@ -869,8 +1033,8 @@ public Builder setName( * @return This builder for chaining. */ public Builder clearName() { - name_ = getDefaultInstance().getName(); bitField0_ = (bitField0_ & ~0x00000002); + name_ = getDefaultInstance().getName(); onChanged(); return this; } @@ -881,9 +1045,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; } @@ -911,9 +1077,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; } @@ -960,18 +1128,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); } }; @@ -1069,7 +1226,6 @@ public org.drools.serialization.protobuf.ProtobufMessages.SignatureOrBuilder get } public static final int STRATEGY_FIELD_NUMBER = 9; - @SuppressWarnings("serial") private java.util.List strategy_; /** *
@@ -1130,7 +1286,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
@@ -1157,7 +1313,6 @@ public com.google.protobuf.ByteString getPayload() {
     }
 
     public static final int RUNTIME_CLASS_DEFINITIONS_FIELD_NUMBER = 13;
-    @SuppressWarnings("serial")
     private java.util.List runtimeClassDefinitions_;
     /**
      * 
@@ -1265,7 +1420,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
@@ -1295,7 +1450,7 @@ public int getSerializedSize() {
           .computeMessageSize(13, runtimeClassDefinitions_.get(i));
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -1329,7 +1484,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;
@@ -1363,7 +1518,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;
     }
@@ -1501,32 +1656,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;
       }
 
@@ -1553,13 +1708,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_);
@@ -1569,6 +1735,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_);
@@ -1578,30 +1748,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) {
@@ -1676,7 +1886,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Head
           }
         }
         this.mergeExtensionFields(other);
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -1699,75 +1909,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_;
@@ -1814,11 +1966,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;
       }
       /**
@@ -1832,11 +1984,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;
       }
       /**
@@ -1849,17 +2001,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;
       }
       /**
@@ -1870,13 +2023,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;
       }
       /**
@@ -1917,8 +2070,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());
@@ -1969,11 +2121,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;
       }
       /**
@@ -1987,11 +2139,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;
       }
       /**
@@ -2004,17 +2156,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;
       }
       /**
@@ -2025,13 +2178,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;
       }
       /**
@@ -2072,8 +2225,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());
@@ -2086,7 +2238,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;
          }
       }
@@ -2383,8 +2535,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(),
@@ -2429,9 +2580,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;
       }
@@ -2454,7 +2607,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;
          }
       }
@@ -2769,8 +2922,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(),
@@ -2812,18 +2964,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);
       }
     };
 
@@ -2902,6 +3043,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;
@@ -2917,7 +3116,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.
@@ -2936,7 +3135,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.
@@ -2955,7 +3154,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.
@@ -2996,7 +3195,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
@@ -3017,7 +3216,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt32Size(3, versionRevision_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -3047,7 +3246,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;
     }
 
@@ -3070,7 +3269,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;
     }
@@ -3187,21 +3386,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;
       }
 
@@ -3228,12 +3434,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)) {
@@ -3248,9 +3448,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) {
@@ -3272,7 +3506,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;
       }
@@ -3287,45 +3521,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_;
@@ -3353,9 +3559,8 @@ public int getVersionMajor() {
        * @return This builder for chaining.
        */
       public Builder setVersionMajor(int value) {
-
-        versionMajor_ = value;
         bitField0_ |= 0x00000001;
+        versionMajor_ = value;
         onChanged();
         return this;
       }
@@ -3393,9 +3598,8 @@ public int getVersionMinor() {
        * @return This builder for chaining.
        */
       public Builder setVersionMinor(int value) {
-
-        versionMinor_ = value;
         bitField0_ |= 0x00000002;
+        versionMinor_ = value;
         onChanged();
         return this;
       }
@@ -3433,9 +3637,8 @@ public int getVersionRevision() {
        * @return This builder for chaining.
        */
       public Builder setVersionRevision(int value) {
-
-        versionRevision_ = value;
         bitField0_ |= 0x00000004;
+        versionRevision_ = value;
         onChanged();
         return this;
       }
@@ -3482,18 +3685,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);
       }
     };
 
@@ -3569,6 +3761,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;
@@ -3584,8 +3830,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.
@@ -3633,7 +3878,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.
@@ -3671,7 +3916,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
@@ -3687,7 +3932,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, signature_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -3712,7 +3957,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;
     }
 
@@ -3731,7 +3976,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;
     }
@@ -3848,20 +4093,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;
       }
 
@@ -3888,25 +4139,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) {
@@ -3920,14 +4199,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;
       }
@@ -3942,40 +4221,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_;
@@ -4030,9 +4286,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;
       }
@@ -4041,8 +4299,8 @@ public Builder setKeyAlias(
        * @return This builder for chaining.
        */
       public Builder clearKeyAlias() {
-        keyAlias_ = getDefaultInstance().getKeyAlias();
         bitField0_ = (bitField0_ & ~0x00000001);
+        keyAlias_ = getDefaultInstance().getKeyAlias();
         onChanged();
         return this;
       }
@@ -4053,9 +4311,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;
       }
@@ -4083,9 +4343,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;
       }
@@ -4132,18 +4394,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);
       }
     };
 
@@ -4233,6 +4484,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;
@@ -4248,7 +4553,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.
@@ -4267,8 +4572,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
@@ -4355,7 +4659,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
@@ -4372,7 +4676,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, id_);
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -4397,7 +4701,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;
@@ -4419,7 +4723,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;
     }
@@ -4537,20 +4841,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;
       }
 
@@ -4577,25 +4887,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) {
@@ -4612,12 +4977,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;
       }
@@ -4635,40 +5000,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_;
@@ -4696,9 +5038,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;
       }
@@ -4779,9 +5123,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;
       }
@@ -4794,8 +5140,8 @@ public Builder setId(
        * @return This builder for chaining.
        */
       public Builder clearId() {
-        id_ = getDefaultInstance().getId();
         bitField0_ = (bitField0_ & ~0x00000002);
+        id_ = getDefaultInstance().getId();
         onChanged();
         return this;
       }
@@ -4810,9 +5156,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;
       }
@@ -4849,18 +5197,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);
       }
     };
 
@@ -4975,6 +5312,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;
@@ -4990,7 +5419,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.
@@ -5009,7 +5438,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.
@@ -5154,7 +5583,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
@@ -5184,7 +5613,7 @@ public int getSerializedSize() {
           .computeMessageSize(5, getTimers());
       }
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -5224,7 +5653,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;
@@ -5260,7 +5689,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;
     }
@@ -5397,24 +5826,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;
       }
 
@@ -5441,12 +5874,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)) {
@@ -5458,26 +5885,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) {
@@ -5506,7 +6000,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;
       }
@@ -5534,61 +6028,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_;
@@ -5616,9 +6066,8 @@ public boolean getMultithread() {
        * @return This builder for chaining.
        */
       public Builder setMultithread(boolean value) {
-
-        multithread_ = value;
         bitField0_ |= 0x00000001;
+        multithread_ = value;
         onChanged();
         return this;
       }
@@ -5656,9 +6105,8 @@ public long getTime() {
        * @return This builder for chaining.
        */
       public Builder setTime(long value) {
-
-        time_ = value;
         bitField0_ |= 0x00000002;
+        time_ = value;
         onChanged();
         return this;
       }
@@ -5703,11 +6151,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;
       }
       /**
@@ -5717,11 +6165,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;
       }
       /**
@@ -5730,30 +6178,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;
       }
       /**
@@ -5782,8 +6231,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());
@@ -5822,11 +6270,11 @@ public Builder setProcessData(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           processData_ = value;
+          onChanged();
         } else {
           processDataBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -5836,11 +6284,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;
       }
       /**
@@ -5849,30 +6297,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;
       }
       /**
@@ -5901,8 +6350,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());
@@ -5941,11 +6389,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;
       }
       /**
@@ -5955,11 +6403,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;
       }
       /**
@@ -5968,30 +6416,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;
       }
       /**
@@ -6020,8 +6469,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());
@@ -6062,18 +6510,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);
       }
     };
 
@@ -6255,6 +6692,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;
@@ -6270,7 +6836,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.
@@ -6289,7 +6855,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.
@@ -6360,7 +6926,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;
@@ -6401,7 +6966,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;
@@ -6531,7 +7095,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
@@ -6572,7 +7136,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(12, getOBSOLETETms());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -6621,7 +7185,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;
     }
 
@@ -6666,7 +7230,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;
     }
@@ -6809,43 +7373,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;
       }
 
@@ -6872,13 +7439,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_);
@@ -6897,46 +7483,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) {
@@ -7019,7 +7618,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;
       }
@@ -7034,94 +7633,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_;
@@ -7149,9 +7671,8 @@ public long getLastId() {
        * @return This builder for chaining.
        */
       public Builder setLastId(long value) {
-
-        lastId_ = value;
         bitField0_ |= 0x00000001;
+        lastId_ = value;
         onChanged();
         return this;
       }
@@ -7189,9 +7710,8 @@ public long getLastRecency() {
        * @return This builder for chaining.
        */
       public Builder setLastRecency(long value) {
-
-        lastRecency_ = value;
         bitField0_ |= 0x00000002;
+        lastRecency_ = value;
         onChanged();
         return this;
       }
@@ -7236,11 +7756,11 @@ public Builder setInitialFact(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           initialFact_ = value;
+          onChanged();
         } else {
           initialFactBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -7250,11 +7770,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;
       }
       /**
@@ -7263,30 +7783,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;
       }
       /**
@@ -7315,8 +7836,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());
@@ -7355,11 +7875,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;
       }
       /**
@@ -7369,11 +7889,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;
       }
       /**
@@ -7382,30 +7902,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;
       }
       /**
@@ -7434,8 +7955,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());
@@ -7448,7 +7968,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;
          }
       }
@@ -7673,8 +8193,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(),
@@ -7688,7 +8207,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;
          }
       }
@@ -7913,8 +8432,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(),
@@ -7954,11 +8472,11 @@ public Builder setActionQueue(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           actionQueue_ = value;
+          onChanged();
         } else {
           actionQueueBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000040;
-        onChanged();
         return this;
       }
       /**
@@ -7968,11 +8486,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;
       }
       /**
@@ -7981,30 +8499,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;
       }
       /**
@@ -8033,8 +8552,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());
@@ -8073,11 +8591,11 @@ public Builder setOBSOLETETms(org.drools.serialization.protobuf.ProtobufMessages
             throw new NullPointerException();
           }
           oBSOLETETms_ = value;
+          onChanged();
         } else {
           oBSOLETETmsBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000080;
-        onChanged();
         return this;
       }
       /**
@@ -8087,11 +8605,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;
       }
       /**
@@ -8100,30 +8618,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;
       }
       /**
@@ -8152,8 +8671,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());
@@ -8194,18 +8712,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);
       }
     };
 
@@ -8281,6 +8788,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;
@@ -8296,8 +8857,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.
@@ -8345,7 +8905,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.
@@ -8391,7 +8951,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
@@ -8407,7 +8967,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, classDef_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -8432,7 +8992,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;
     }
 
@@ -8451,7 +9011,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;
     }
@@ -8568,20 +9128,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;
       }
 
@@ -8608,25 +9174,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) {
@@ -8640,14 +9234,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;
       }
@@ -8668,40 +9262,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_;
@@ -8756,9 +9327,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;
       }
@@ -8767,8 +9340,8 @@ public Builder setClassFqName(
        * @return This builder for chaining.
        */
       public Builder clearClassFqName() {
-        classFqName_ = getDefaultInstance().getClassFqName();
         bitField0_ = (bitField0_ & ~0x00000001);
+        classFqName_ = getDefaultInstance().getClassFqName();
         onChanged();
         return this;
       }
@@ -8779,9 +9352,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;
       }
@@ -8809,9 +9384,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;
       }
@@ -8858,18 +9435,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);
       }
     };
 
@@ -8917,6 +9483,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;
@@ -8952,7 +9560,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
@@ -8962,7 +9570,7 @@ public int getSerializedSize() {
 
       size = 0;
       size += extensionsSerializedSize();
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -8977,7 +9585,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;
@@ -8991,7 +9599,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;
     }
@@ -9109,13 +9717,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() {
@@ -9150,6 +9763,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) {
@@ -9163,7 +9835,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;
       }
@@ -9181,30 +9853,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
@@ -9240,18 +9899,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);
       }
     };
 
@@ -9446,6 +10094,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;
@@ -9608,6 +10370,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;
@@ -9694,6 +10554,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;
@@ -9709,7 +10629,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.
@@ -9728,8 +10648,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.
@@ -9777,8 +10696,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.
@@ -9848,7 +10766,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
@@ -9867,7 +10785,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;
         }
@@ -9897,7 +10815,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;
         }
 
@@ -9921,7 +10839,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;
         }
@@ -10038,21 +10956,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;
           }
 
@@ -10079,12 +11004,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)) {
@@ -10092,16 +11011,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) {
@@ -10118,16 +11071,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;
           }
@@ -10142,45 +11095,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_;
@@ -10208,9 +11133,8 @@ public long getProcessInstanceId() {
            * @return This builder for chaining.
            */
           public Builder setProcessInstanceId(long value) {
-
-            processInstanceId_ = value;
             bitField0_ |= 0x00000001;
+            processInstanceId_ = value;
             onChanged();
             return this;
           }
@@ -10275,9 +11199,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;
           }
@@ -10286,8 +11212,8 @@ public Builder setNodeInstanceId(
            * @return This builder for chaining.
            */
           public Builder clearNodeInstanceId() {
-            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             bitField0_ = (bitField0_ & ~0x00000002);
+            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             onChanged();
             return this;
           }
@@ -10298,9 +11224,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;
           }
@@ -10355,9 +11283,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;
           }
@@ -10366,8 +11296,8 @@ public Builder setProcessInstanceStringId(
            * @return This builder for chaining.
            */
           public Builder clearProcessInstanceStringId() {
-            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             bitField0_ = (bitField0_ & ~0x00000004);
+            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             onChanged();
             return this;
           }
@@ -10378,9 +11308,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;
           }
@@ -10417,18 +11349,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);
           }
         };
 
@@ -10450,8 +11371,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.
@@ -10499,7 +11419,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.
@@ -10518,7 +11438,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.
@@ -10537,7 +11457,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.
@@ -10556,7 +11476,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.
@@ -10575,7 +11495,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;
@@ -10616,7 +11535,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;
@@ -10657,7 +11575,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.
@@ -10713,7 +11631,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
@@ -10753,7 +11671,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBoolSize(8, hasRuleFlowLister_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -10802,7 +11720,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;
       }
 
@@ -10850,7 +11768,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;
       }
@@ -10967,38 +11885,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;
         }
 
@@ -11025,40 +11953,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;
@@ -11075,13 +11975,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) {
@@ -11095,8 +12047,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()) {
@@ -11166,7 +12118,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;
         }
@@ -11181,86 +12133,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_;
@@ -11315,9 +12198,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;
         }
@@ -11326,8 +12211,8 @@ public Builder setName(
          * @return This builder for chaining.
          */
         public Builder clearName() {
-          name_ = getDefaultInstance().getName();
           bitField0_ = (bitField0_ & ~0x00000001);
+          name_ = getDefaultInstance().getName();
           onChanged();
           return this;
         }
@@ -11338,9 +12223,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;
         }
@@ -11368,9 +12255,8 @@ public boolean getIsActive() {
          * @return This builder for chaining.
          */
         public Builder setIsActive(boolean value) {
-
-          isActive_ = value;
           bitField0_ |= 0x00000002;
+          isActive_ = value;
           onChanged();
           return this;
         }
@@ -11408,9 +12294,8 @@ public boolean getIsAutoDeactivate() {
          * @return This builder for chaining.
          */
         public Builder setIsAutoDeactivate(boolean value) {
-
-          isAutoDeactivate_ = value;
           bitField0_ |= 0x00000004;
+          isAutoDeactivate_ = value;
           onChanged();
           return this;
         }
@@ -11448,9 +12333,8 @@ public long getActivatedForRecency() {
          * @return This builder for chaining.
          */
         public Builder setActivatedForRecency(long value) {
-
-          activatedForRecency_ = value;
           bitField0_ |= 0x00000008;
+          activatedForRecency_ = value;
           onChanged();
           return this;
         }
@@ -11488,9 +12372,8 @@ public long getClearedForRecency() {
          * @return This builder for chaining.
          */
         public Builder setClearedForRecency(long value) {
-
-          clearedForRecency_ = value;
           bitField0_ |= 0x00000010;
+          clearedForRecency_ = value;
           onChanged();
           return this;
         }
@@ -11509,7 +12392,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;
            }
         }
@@ -11734,8 +12617,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(),
@@ -11749,7 +12631,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;
            }
         }
@@ -11974,8 +12856,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(),
@@ -12008,9 +12889,8 @@ public boolean getHasRuleFlowLister() {
          * @return This builder for chaining.
          */
         public Builder setHasRuleFlowLister(boolean value) {
-
-          hasRuleFlowLister_ = value;
           bitField0_ |= 0x00000080;
+          hasRuleFlowLister_ = value;
           onChanged();
           return this;
         }
@@ -12057,18 +12937,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);
         }
       };
 
@@ -12130,8 +12999,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
@@ -12141,6 +13009,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;
@@ -12155,9 +13078,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.
@@ -12208,7 +13129,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
@@ -12225,7 +13146,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getGroupNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -12242,7 +13163,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;
       }
 
@@ -12257,7 +13178,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;
       }
@@ -12374,20 +13295,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;
         }
 
@@ -12414,19 +13339,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) {
@@ -12442,14 +13396,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;
         }
@@ -12464,47 +13418,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;
@@ -12512,8 +13446,7 @@ private void ensureGroupNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getGroupNameList() {
-          groupName_.makeImmutable();
-          return groupName_;
+          return groupName_.getUnmodifiableView();
         }
         /**
          * repeated string group_name = 1;
@@ -12547,10 +13480,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;
         }
@@ -12561,10 +13495,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;
         }
@@ -12578,7 +13513,6 @@ public Builder addAllGroupName(
           ensureGroupNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, groupName_);
-          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -12587,9 +13521,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;
         }
@@ -12600,10 +13533,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;
         }
@@ -12640,18 +13574,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);
         }
       };
 
@@ -12787,6 +13710,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;
@@ -12873,6 +13879,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;
@@ -12888,7 +13954,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.
@@ -12907,8 +13973,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.
@@ -12956,8 +14021,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.
@@ -13027,7 +14091,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
@@ -13046,7 +14110,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;
         }
@@ -13076,7 +14140,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;
         }
 
@@ -13100,7 +14164,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;
         }
@@ -13217,21 +14281,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;
           }
 
@@ -13258,12 +14329,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)) {
@@ -13271,16 +14336,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) {
@@ -13297,16 +14396,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;
           }
@@ -13321,45 +14420,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_;
@@ -13387,9 +14458,8 @@ public long getProcessInstanceId() {
            * @return This builder for chaining.
            */
           public Builder setProcessInstanceId(long value) {
-
-            processInstanceId_ = value;
             bitField0_ |= 0x00000001;
+            processInstanceId_ = value;
             onChanged();
             return this;
           }
@@ -13454,9 +14524,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;
           }
@@ -13465,8 +14537,8 @@ public Builder setNodeInstanceId(
            * @return This builder for chaining.
            */
           public Builder clearNodeInstanceId() {
-            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             bitField0_ = (bitField0_ & ~0x00000002);
+            nodeInstanceId_ = getDefaultInstance().getNodeInstanceId();
             onChanged();
             return this;
           }
@@ -13477,9 +14549,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;
           }
@@ -13534,9 +14608,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;
           }
@@ -13545,8 +14621,8 @@ public Builder setProcessInstanceStringId(
            * @return This builder for chaining.
            */
           public Builder clearProcessInstanceStringId() {
-            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             bitField0_ = (bitField0_ & ~0x00000004);
+            processInstanceStringId_ = getDefaultInstance().getProcessInstanceStringId();
             onChanged();
             return this;
           }
@@ -13557,9 +14633,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;
           }
@@ -13596,18 +14674,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);
           }
         };
 
@@ -13629,8 +14696,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.
@@ -13678,7 +14744,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.
@@ -13697,7 +14763,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.
@@ -13716,7 +14782,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;
@@ -13757,7 +14822,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;
@@ -13826,7 +14890,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
@@ -13854,7 +14918,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(5, nodeInstance_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -13888,7 +14952,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;
       }
 
@@ -13921,7 +14985,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;
       }
@@ -14038,35 +15102,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;
         }
 
@@ -14093,13 +15164,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_);
@@ -14118,26 +15196,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) {
@@ -14151,8 +15246,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()) {
@@ -14213,7 +15308,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -14228,71 +15323,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_;
@@ -14347,9 +15388,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;
         }
@@ -14358,8 +15401,8 @@ public Builder setName(
          * @return This builder for chaining.
          */
         public Builder clearName() {
-          name_ = getDefaultInstance().getName();
           bitField0_ = (bitField0_ & ~0x00000001);
+          name_ = getDefaultInstance().getName();
           onChanged();
           return this;
         }
@@ -14370,9 +15413,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;
         }
@@ -14400,9 +15445,8 @@ public boolean getIsActive() {
          * @return This builder for chaining.
          */
         public Builder setIsActive(boolean value) {
-
-          isActive_ = value;
           bitField0_ |= 0x00000002;
+          isActive_ = value;
           onChanged();
           return this;
         }
@@ -14440,9 +15484,8 @@ public boolean getIsAutoDeactivate() {
          * @return This builder for chaining.
          */
         public Builder setIsAutoDeactivate(boolean value) {
-
-          isAutoDeactivate_ = value;
           bitField0_ |= 0x00000004;
+          isAutoDeactivate_ = value;
           onChanged();
           return this;
         }
@@ -14461,7 +15504,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;
            }
         }
@@ -14686,8 +15729,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(),
@@ -14701,7 +15743,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;
            }
         }
@@ -14926,8 +15968,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(),
@@ -14969,18 +16010,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);
         }
       };
 
@@ -15002,7 +16032,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
@@ -15029,7 +16059,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.
@@ -15048,7 +16078,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;
@@ -15115,7 +16144,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;
@@ -15156,7 +16184,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;
@@ -15197,7 +16224,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;
@@ -15272,7 +16298,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
@@ -15309,7 +16335,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(7, ruleActivation_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -15347,7 +16373,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;
     }
 
@@ -15386,7 +16412,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;
     }
@@ -15528,42 +16554,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;
       }
 
@@ -15590,13 +16614,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_);
@@ -15606,6 +16633,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_);
@@ -15633,28 +16668,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) {
@@ -15780,7 +16830,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Agen
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -15795,99 +16845,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_;
@@ -15927,9 +16895,8 @@ public int getDormantActivations() {
        * @return This builder for chaining.
        */
       public Builder setDormantActivations(int value) {
-
-        dormantActivations_ = value;
         bitField0_ |= 0x00000001;
+        dormantActivations_ = value;
         onChanged();
         return this;
       }
@@ -15971,9 +16938,8 @@ public int getActiveActivations() {
        * @return This builder for chaining.
        */
       public Builder setActiveActivations(int value) {
-
-        activeActivations_ = value;
         bitField0_ |= 0x00000002;
+        activeActivations_ = value;
         onChanged();
         return this;
       }
@@ -15992,7 +16958,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;
          }
       }
@@ -16217,8 +17183,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(),
@@ -16258,11 +17223,11 @@ public Builder setFocusStack(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           focusStack_ = value;
+          onChanged();
         } else {
           focusStackBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000008;
-        onChanged();
         return this;
       }
       /**
@@ -16272,11 +17237,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;
       }
       /**
@@ -16285,30 +17250,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;
       }
       /**
@@ -16337,8 +17303,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());
@@ -16351,7 +17316,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;
          }
       }
@@ -16576,8 +17541,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(),
@@ -16591,7 +17555,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;
          }
       }
@@ -16816,8 +17780,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(),
@@ -16831,7 +17794,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;
          }
       }
@@ -17056,8 +18019,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(),
@@ -17099,18 +18061,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);
       }
     };
 
@@ -17239,6 +18190,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;
@@ -17417,6 +18480,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;
@@ -17486,6 +18604,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;
@@ -17572,7 +18759,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
@@ -17589,7 +18776,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(2, getResultHandle());
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -17614,7 +18801,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;
         }
 
@@ -17633,7 +18820,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;
         }
@@ -17768,17 +18955,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;
           }
 
@@ -17805,29 +18993,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) {
@@ -17846,7 +19066,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;
           }
@@ -17861,44 +19081,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_;
@@ -17933,11 +19126,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;
           }
           /**
@@ -17947,11 +19140,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;
           }
           /**
@@ -17960,30 +19153,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;
           }
           /**
@@ -18012,8 +19206,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());
@@ -18052,11 +19245,11 @@ public Builder setResultHandle(org.drools.serialization.protobuf.ProtobufMessage
                 throw new NullPointerException();
               }
               resultHandle_ = value;
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -18066,11 +19259,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;
           }
           /**
@@ -18079,30 +19272,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;
           }
           /**
@@ -18131,8 +19325,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());
@@ -18173,18 +19366,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);
           }
         };
 
@@ -18205,7 +19387,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;
@@ -18262,7 +19443,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
@@ -18275,7 +19456,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -18292,7 +19473,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;
       }
 
@@ -18307,7 +19488,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;
       }
@@ -18424,25 +19605,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;
         }
 
@@ -18469,13 +19654,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_);
@@ -18485,12 +19664,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) {
@@ -18529,7 +19738,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -18544,43 +19753,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_;
@@ -18589,7 +19772,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;
            }
         }
@@ -18814,8 +19997,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(),
@@ -18857,18 +20039,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);
         }
       };
 
@@ -18939,6 +20110,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;
@@ -19008,6 +20234,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;
@@ -19094,7 +20389,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
@@ -19111,7 +20406,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(2, getResultHandle());
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -19136,7 +20431,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;
         }
 
@@ -19155,7 +20450,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;
         }
@@ -19290,17 +20585,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;
           }
 
@@ -19327,29 +20623,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) {
@@ -19368,7 +20696,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;
           }
@@ -19383,44 +20711,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_;
@@ -19455,11 +20756,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;
           }
           /**
@@ -19469,11 +20770,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;
           }
           /**
@@ -19482,30 +20783,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;
           }
           /**
@@ -19534,8 +20836,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());
@@ -19574,11 +20875,11 @@ public Builder setResultHandle(org.drools.serialization.protobuf.ProtobufMessage
                 throw new NullPointerException();
               }
               resultHandle_ = value;
+              onChanged();
             } else {
               resultHandleBuilder_.setMessage(value);
             }
             bitField0_ |= 0x00000002;
-            onChanged();
             return this;
           }
           /**
@@ -19588,11 +20889,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;
           }
           /**
@@ -19601,30 +20902,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;
           }
           /**
@@ -19653,8 +20955,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());
@@ -19695,18 +20996,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);
           }
         };
 
@@ -19727,7 +21017,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;
@@ -19784,7 +21073,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
@@ -19797,7 +21086,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -19814,7 +21103,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;
       }
 
@@ -19829,7 +21118,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;
       }
@@ -19946,25 +21235,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;
         }
 
@@ -19991,13 +21284,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_);
@@ -20007,12 +21294,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) {
@@ -20051,7 +21368,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -20066,43 +21383,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_;
@@ -20111,7 +21402,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;
            }
         }
@@ -20336,8 +21627,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(),
@@ -20379,18 +21669,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);
         }
       };
 
@@ -20461,6 +21740,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;
@@ -20565,6 +21899,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;
@@ -20627,6 +22041,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;
@@ -20642,7 +22109,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.
@@ -20661,7 +22128,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.
@@ -20699,7 +22166,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
@@ -20716,7 +22183,7 @@ public int getSerializedSize() {
               size += com.google.protobuf.CodedOutputStream
                 .computeBytesSize(9, object_);
             }
-            size += getUnknownFields().getSerializedSize();
+            size += unknownFields.getSerializedSize();
             memoizedSize = size;
             return size;
           }
@@ -20741,7 +22208,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;
           }
 
@@ -20760,7 +22227,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;
           }
@@ -20877,20 +22344,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;
             }
 
@@ -20917,12 +22390,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)) {
@@ -20930,12 +22397,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) {
@@ -20954,7 +22455,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;
             }
@@ -20969,40 +22470,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_;
@@ -21030,9 +22508,8 @@ public int getStrategyIndex() {
              * @return This builder for chaining.
              */
             public Builder setStrategyIndex(int value) {
-
-              strategyIndex_ = value;
               bitField0_ |= 0x00000001;
+              strategyIndex_ = value;
               onChanged();
               return this;
             }
@@ -21070,9 +22547,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;
             }
@@ -21119,18 +22598,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);
             }
           };
 
@@ -21178,7 +22646,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;
@@ -21219,7 +22686,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;
@@ -21282,7 +22748,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
@@ -21303,7 +22769,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(3, object_.get(i));
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -21327,7 +22793,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;
         }
 
@@ -21350,7 +22816,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;
         }
@@ -21486,26 +22952,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;
           }
 
@@ -21532,13 +22996,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_);
@@ -21557,20 +23024,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) {
@@ -21638,7 +23128,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
                 }
               }
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -21653,63 +23143,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_;
@@ -21744,11 +23188,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;
           }
           /**
@@ -21758,11 +23202,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;
           }
           /**
@@ -21771,30 +23215,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;
           }
           /**
@@ -21823,8 +23268,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());
@@ -21837,7 +23281,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;
              }
           }
@@ -22062,8 +23506,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(),
@@ -22077,7 +23520,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;
              }
           }
@@ -22302,8 +23745,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(),
@@ -22345,18 +23787,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);
           }
         };
 
@@ -22377,7 +23808,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;
@@ -22434,7 +23864,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
@@ -22447,7 +23877,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -22464,7 +23894,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;
       }
 
@@ -22479,7 +23909,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;
       }
@@ -22596,25 +24026,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;
         }
 
@@ -22641,13 +24075,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_);
@@ -22657,12 +24085,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) {
@@ -22701,7 +24159,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -22716,43 +24174,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_;
@@ -22761,7 +24193,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;
            }
         }
@@ -22986,8 +24418,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(),
@@ -23029,18 +24460,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);
         }
       };
 
@@ -23111,6 +24531,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;
@@ -23205,6 +24680,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;
@@ -23272,7 +24828,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;
@@ -23335,7 +24890,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
@@ -23356,7 +24911,7 @@ public int getSerializedSize() {
             size += com.google.protobuf.CodedOutputStream
               .computeMessageSize(3, result_.get(i));
           }
-          size += getUnknownFields().getSerializedSize();
+          size += unknownFields.getSerializedSize();
           memoizedSize = size;
           return size;
         }
@@ -23383,7 +24938,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;
         }
 
@@ -23406,7 +24961,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;
         }
@@ -23542,24 +25097,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;
           }
 
@@ -23586,13 +25141,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_);
@@ -23602,26 +25168,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) {
@@ -23666,7 +25249,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
                 }
               }
             }
-            this.mergeUnknownFields(other.getUnknownFields());
+            this.mergeUnknownFields(other.unknownFields);
             onChanged();
             return this;
           }
@@ -23681,57 +25264,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_;
@@ -23766,11 +25309,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;
           }
           /**
@@ -23780,11 +25323,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;
           }
           /**
@@ -23793,30 +25336,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;
           }
           /**
@@ -23845,8 +25389,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());
@@ -23885,11 +25428,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;
           }
           /**
@@ -23899,11 +25442,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;
           }
           /**
@@ -23912,30 +25455,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;
           }
           /**
@@ -23964,8 +25508,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());
@@ -23978,7 +25521,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;
              }
           }
@@ -24203,8 +25746,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(),
@@ -24246,18 +25788,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);
           }
         };
 
@@ -24278,7 +25809,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;
@@ -24335,7 +25865,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
@@ -24348,7 +25878,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, context_.get(i));
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -24365,7 +25895,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;
       }
 
@@ -24380,7 +25910,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;
       }
@@ -24497,25 +26027,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;
         }
 
@@ -24542,13 +26076,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_);
@@ -24558,12 +26086,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) {
@@ -24602,7 +26160,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Node
               }
             }
           }
-          this.mergeUnknownFields(other.getUnknownFields());
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
         }
@@ -24617,43 +26175,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_;
@@ -24662,7 +26194,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;
            }
         }
@@ -24887,8 +26419,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(),
@@ -24930,18 +26461,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);
         }
       };
 
@@ -24963,7 +26483,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.
@@ -24982,7 +26502,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.
@@ -24995,7 +26515,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;
     }
 
@@ -25135,7 +26656,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
@@ -25168,7 +26689,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(6, getQueryElement());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -25212,7 +26733,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;
     }
 
@@ -25247,7 +26768,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;
     }
@@ -25384,29 +26905,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;
       }
 
@@ -25433,12 +26959,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)) {
@@ -25446,36 +26966,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) {
@@ -25506,7 +27068,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;
       }
@@ -25521,75 +27083,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_;
@@ -25617,9 +27121,8 @@ public int getNodeId() {
        * @return This builder for chaining.
        */
       public Builder setNodeId(int value) {
-
-        nodeId_ = value;
         bitField0_ |= 0x00000001;
+        nodeId_ = value;
         onChanged();
         return this;
       }
@@ -25648,7 +27151,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;
       }
       /**
@@ -25706,11 +27210,11 @@ public Builder setAccumulate(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           accumulate_ = value;
+          onChanged();
         } else {
           accumulateBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000004;
-        onChanged();
         return this;
       }
       /**
@@ -25720,11 +27224,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;
       }
       /**
@@ -25733,30 +27237,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;
       }
       /**
@@ -25785,8 +27290,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());
@@ -25825,11 +27329,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;
       }
       /**
@@ -25839,11 +27343,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;
       }
       /**
@@ -25852,30 +27356,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;
       }
       /**
@@ -25904,8 +27409,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());
@@ -25944,11 +27448,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;
       }
       /**
@@ -25958,11 +27462,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;
       }
       /**
@@ -25971,30 +27475,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;
       }
       /**
@@ -26023,8 +27528,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());
@@ -26063,11 +27567,11 @@ public Builder setQueryElement(org.drools.serialization.protobuf.ProtobufMessage
             throw new NullPointerException();
           }
           queryElement_ = value;
+          onChanged();
         } else {
           queryElementBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000020;
-        onChanged();
         return this;
       }
       /**
@@ -26077,11 +27581,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;
       }
       /**
@@ -26090,30 +27594,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;
       }
       /**
@@ -26142,8 +27647,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());
@@ -26184,18 +27688,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);
       }
     };
 
@@ -26328,6 +27821,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;
@@ -26343,8 +27922,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.
@@ -26392,7 +27970,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;
@@ -26459,7 +28036,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;
@@ -26525,7 +28101,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
@@ -26549,7 +28125,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, otc_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -26578,7 +28154,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;
     }
 
@@ -26605,7 +28181,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;
     }
@@ -26745,27 +28321,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;
       }
 
@@ -26792,13 +28367,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_);
@@ -26808,6 +28382,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_);
@@ -26817,24 +28399,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) {
@@ -26848,8 +28449,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) {
@@ -26907,7 +28508,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Entr
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -26922,68 +28523,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_;
@@ -27038,9 +28588,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;
       }
@@ -27049,8 +28601,8 @@ public Builder setEntryPointId(
        * @return This builder for chaining.
        */
       public Builder clearEntryPointId() {
-        entryPointId_ = getDefaultInstance().getEntryPointId();
         bitField0_ = (bitField0_ & ~0x00000001);
+        entryPointId_ = getDefaultInstance().getEntryPointId();
         onChanged();
         return this;
       }
@@ -27061,9 +28613,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;
       }
@@ -27072,7 +28626,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;
          }
       }
@@ -27297,8 +28851,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(),
@@ -27338,11 +28891,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;
       }
       /**
@@ -27352,11 +28905,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;
       }
       /**
@@ -27365,30 +28918,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;
       }
       /**
@@ -27417,8 +28971,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());
@@ -27431,7 +28984,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;
          }
       }
@@ -27656,8 +29209,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(),
@@ -27699,18 +29251,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);
       }
     };
 
@@ -27929,6 +29470,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;
@@ -28058,7 +29710,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.
@@ -28071,12 +29723,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.
@@ -28095,7 +29748,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.
@@ -28114,7 +29767,7 @@ public long getRecency() {
     }
 
     public static final int TIMESTAMP_FIELD_NUMBER = 4;
-    private long timestamp_ = 0L;
+    private long timestamp_;
     /**
      * 
      * event only attributes
@@ -28141,7 +29794,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.
@@ -28160,7 +29813,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.
@@ -28179,7 +29832,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.
@@ -28198,7 +29851,7 @@ public long getActivationsCount() {
     }
 
     public static final int STRATEGY_INDEX_FIELD_NUMBER = 8;
-    private int strategyIndex_ = 0;
+    private int strategyIndex_;
     /**
      * 
      * the actual object reference
@@ -28225,7 +29878,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.
@@ -28244,8 +29897,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
@@ -28305,7 +29957,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.
@@ -28324,7 +29976,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.
@@ -28392,7 +30044,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
@@ -28448,7 +30100,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt32Size(12, otnCount_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -28522,7 +30174,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;
     }
 
@@ -28588,7 +30240,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;
     }
@@ -28709,30 +30361,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;
       }
 
@@ -28759,18 +30427,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;
@@ -28800,13 +30462,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;
@@ -28815,9 +30477,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) {
@@ -28858,8 +30554,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()) {
@@ -28868,7 +30564,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;
       }
@@ -28883,97 +30579,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_;
@@ -28992,7 +30608,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;
       }
       /**
@@ -29043,9 +30660,8 @@ public long getId() {
        * @return This builder for chaining.
        */
       public Builder setId(long value) {
-
-        id_ = value;
         bitField0_ |= 0x00000002;
+        id_ = value;
         onChanged();
         return this;
       }
@@ -29083,9 +30699,8 @@ public long getRecency() {
        * @return This builder for chaining.
        */
       public Builder setRecency(long value) {
-
-        recency_ = value;
         bitField0_ |= 0x00000004;
+        recency_ = value;
         onChanged();
         return this;
       }
@@ -29135,9 +30750,8 @@ public long getTimestamp() {
        * @return This builder for chaining.
        */
       public Builder setTimestamp(long value) {
-
-        timestamp_ = value;
         bitField0_ |= 0x00000008;
+        timestamp_ = value;
         onChanged();
         return this;
       }
@@ -29179,9 +30793,8 @@ public long getDuration() {
        * @return This builder for chaining.
        */
       public Builder setDuration(long value) {
-
-        duration_ = value;
         bitField0_ |= 0x00000010;
+        duration_ = value;
         onChanged();
         return this;
       }
@@ -29219,9 +30832,8 @@ public boolean getIsExpired() {
        * @return This builder for chaining.
        */
       public Builder setIsExpired(boolean value) {
-
-        isExpired_ = value;
         bitField0_ |= 0x00000020;
+        isExpired_ = value;
         onChanged();
         return this;
       }
@@ -29259,9 +30871,8 @@ public long getActivationsCount() {
        * @return This builder for chaining.
        */
       public Builder setActivationsCount(long value) {
-
-        activationsCount_ = value;
         bitField0_ |= 0x00000040;
+        activationsCount_ = value;
         onChanged();
         return this;
       }
@@ -29311,9 +30922,8 @@ public int getStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setStrategyIndex(int value) {
-
-        strategyIndex_ = value;
         bitField0_ |= 0x00000080;
+        strategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -29355,9 +30965,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;
       }
@@ -29438,9 +31050,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;
       }
@@ -29453,8 +31067,8 @@ public Builder setEntryPoint(
        * @return This builder for chaining.
        */
       public Builder clearEntryPoint() {
-        entryPoint_ = getDefaultInstance().getEntryPoint();
         bitField0_ = (bitField0_ & ~0x00000200);
+        entryPoint_ = getDefaultInstance().getEntryPoint();
         onChanged();
         return this;
       }
@@ -29469,9 +31083,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;
       }
@@ -29499,9 +31115,8 @@ public boolean getIsJustified() {
        * @return This builder for chaining.
        */
       public Builder setIsJustified(boolean value) {
-
-        isJustified_ = value;
         bitField0_ |= 0x00000400;
+        isJustified_ = value;
         onChanged();
         return this;
       }
@@ -29539,9 +31154,8 @@ public int getOtnCount() {
        * @return This builder for chaining.
        */
       public Builder setOtnCount(int value) {
-
-        otnCount_ = value;
         bitField0_ |= 0x00000800;
+        otnCount_ = value;
         onChanged();
         return this;
       }
@@ -29588,18 +31202,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);
       }
     };
 
@@ -29800,6 +31403,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;
@@ -29853,7 +31574,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.
@@ -29872,8 +31593,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.
@@ -29921,8 +31641,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.
@@ -29970,8 +31689,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;
@@ -30031,7 +31749,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.
@@ -30050,7 +31768,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.
@@ -30069,7 +31787,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;
@@ -30097,7 +31814,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.
@@ -30156,7 +31873,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
@@ -30203,7 +31920,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(11, evaluated_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -30260,7 +31977,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;
     }
 
@@ -30310,7 +32027,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;
     }
@@ -30444,20 +32161,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;
       }
 
@@ -30484,27 +32209,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)) {
@@ -30512,17 +32224,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;
@@ -30531,13 +32243,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) {
@@ -30557,18 +32308,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()) {
@@ -30590,7 +32341,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;
       }
@@ -30605,88 +32356,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_;
@@ -30733,11 +32413,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;
       }
       /**
@@ -30751,11 +32431,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;
       }
       /**
@@ -30768,17 +32448,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;
       }
       /**
@@ -30789,13 +32470,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;
       }
       /**
@@ -30836,8 +32517,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());
@@ -30869,9 +32549,8 @@ public int getSalience() {
        * @return This builder for chaining.
        */
       public Builder setSalience(int value) {
-
-        salience_ = value;
         bitField0_ |= 0x00000002;
+        salience_ = value;
         onChanged();
         return this;
       }
@@ -30936,9 +32615,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;
       }
@@ -30947,8 +32628,8 @@ public Builder setPackageName(
        * @return This builder for chaining.
        */
       public Builder clearPackageName() {
-        packageName_ = getDefaultInstance().getPackageName();
         bitField0_ = (bitField0_ & ~0x00000004);
+        packageName_ = getDefaultInstance().getPackageName();
         onChanged();
         return this;
       }
@@ -30959,9 +32640,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;
       }
@@ -31016,9 +32699,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;
       }
@@ -31027,8 +32712,8 @@ public Builder setRuleName(
        * @return This builder for chaining.
        */
       public Builder clearRuleName() {
-        ruleName_ = getDefaultInstance().getRuleName();
         bitField0_ = (bitField0_ & ~0x00000008);
+        ruleName_ = getDefaultInstance().getRuleName();
         onChanged();
         return this;
       }
@@ -31039,9 +32724,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;
       }
@@ -31112,9 +32799,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;
       }
@@ -31127,8 +32816,8 @@ public Builder setActivationGroup(
        * @return This builder for chaining.
        */
       public Builder clearActivationGroup() {
-        activationGroup_ = getDefaultInstance().getActivationGroup();
         bitField0_ = (bitField0_ & ~0x00000010);
+        activationGroup_ = getDefaultInstance().getActivationGroup();
         onChanged();
         return this;
       }
@@ -31143,9 +32832,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;
       }
@@ -31173,9 +32864,8 @@ public boolean getIsActivated() {
        * @return This builder for chaining.
        */
       public Builder setIsActivated(boolean value) {
-
-        isActivated_ = value;
         bitField0_ |= 0x00000020;
+        isActivated_ = value;
         onChanged();
         return this;
       }
@@ -31213,9 +32903,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000040;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -31235,7 +32924,7 @@ private void ensureLogicalDependencyIsMutable() {
         if (!((bitField0_ & 0x00000080) != 0)) {
           logicalDependency_ = mutableCopy(logicalDependency_);
           bitField0_ |= 0x00000080;
-        }
+         }
       }
       /**
        * repeated int64 logical_dependency = 10;
@@ -31269,7 +32958,6 @@ public long getLogicalDependency(int index) {
        */
       public Builder setLogicalDependency(
           int index, long value) {
-
         ensureLogicalDependencyIsMutable();
         logicalDependency_.setLong(index, value);
         onChanged();
@@ -31281,7 +32969,6 @@ public Builder setLogicalDependency(
        * @return This builder for chaining.
        */
       public Builder addLogicalDependency(long value) {
-
         ensureLogicalDependencyIsMutable();
         logicalDependency_.addLong(value);
         onChanged();
@@ -31334,9 +33021,8 @@ public boolean getEvaluated() {
        * @return This builder for chaining.
        */
       public Builder setEvaluated(boolean value) {
-
-        evaluated_ = value;
         bitField0_ |= 0x00000100;
+        evaluated_ = value;
         onChanged();
         return this;
       }
@@ -31383,18 +33069,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);
       }
     };
 
@@ -31483,6 +33158,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;
@@ -31497,7 +33251,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;
@@ -31525,7 +33278,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;
@@ -31585,7 +33337,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
@@ -31607,7 +33359,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, object_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -31626,7 +33378,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;
     }
 
@@ -31645,7 +33397,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;
     }
@@ -31762,26 +33514,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;
       }
 
@@ -31808,13 +33565,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);
@@ -31829,12 +33580,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) {
@@ -31883,7 +33664,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Tupl
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -31898,59 +33679,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_;
@@ -31960,7 +33699,7 @@ private void ensureHandleIdIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
           handleId_ = mutableCopy(handleId_);
           bitField0_ |= 0x00000001;
-        }
+         }
       }
       /**
        * repeated int64 handle_id = 1;
@@ -31994,7 +33733,6 @@ public long getHandleId(int index) {
        */
       public Builder setHandleId(
           int index, long value) {
-
         ensureHandleIdIsMutable();
         handleId_.setLong(index, value);
         onChanged();
@@ -32006,7 +33744,6 @@ public Builder setHandleId(
        * @return This builder for chaining.
        */
       public Builder addHandleId(long value) {
-
         ensureHandleIdIsMutable();
         handleId_.addLong(value);
         onChanged();
@@ -32040,7 +33777,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;
          }
       }
@@ -32265,8 +34002,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(),
@@ -32308,18 +34044,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);
       }
     };
 
@@ -32388,6 +34113,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;
@@ -32403,7 +34181,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.
@@ -32422,7 +34200,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.
@@ -32460,7 +34238,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
@@ -32477,7 +34255,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(2, object_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -32502,7 +34280,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;
     }
 
@@ -32521,7 +34299,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;
     }
@@ -32638,20 +34416,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;
       }
 
@@ -32678,12 +34462,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)) {
@@ -32691,12 +34469,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) {
@@ -32715,7 +34527,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;
       }
@@ -32730,40 +34542,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_;
@@ -32791,9 +34580,8 @@ public int getStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setStrategyIndex(int value) {
-
-        strategyIndex_ = value;
         bitField0_ |= 0x00000001;
+        strategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -32831,9 +34619,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;
       }
@@ -32880,18 +34670,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);
       }
     };
 
@@ -32987,6 +34766,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;
@@ -33001,7 +34847,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;
@@ -33042,7 +34887,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;
@@ -33102,7 +34946,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
@@ -33119,7 +34963,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, oBSOLETEJustification_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -33138,7 +34982,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;
     }
 
@@ -33157,7 +35001,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;
     }
@@ -33274,32 +35118,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;
       }
 
@@ -33326,13 +35174,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_);
@@ -33351,12 +35193,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) {
@@ -33421,7 +35293,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Trut
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -33436,56 +35308,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_;
@@ -33494,7 +35327,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;
          }
       }
@@ -33719,8 +35552,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(),
@@ -33734,7 +35566,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;
          }
       }
@@ -33959,8 +35791,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(),
@@ -34002,18 +35833,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);
       }
     };
 
@@ -34088,6 +35908,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;
@@ -34103,8 +35977,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.
@@ -34152,7 +36025,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.
@@ -34190,7 +36063,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
@@ -34206,7 +36079,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(2, tmsEnabled_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -34231,7 +36104,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;
     }
 
@@ -34251,7 +36124,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;
     }
@@ -34368,20 +36241,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;
       }
 
@@ -34408,25 +36287,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) {
@@ -34440,14 +36347,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;
       }
@@ -34462,40 +36369,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_;
@@ -34550,9 +36434,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;
       }
@@ -34561,8 +36447,8 @@ public Builder setType(
        * @return This builder for chaining.
        */
       public Builder clearType() {
-        type_ = getDefaultInstance().getType();
         bitField0_ = (bitField0_ & ~0x00000001);
+        type_ = getDefaultInstance().getType();
         onChanged();
         return this;
       }
@@ -34573,9 +36459,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;
       }
@@ -34603,9 +36491,8 @@ public boolean getTmsEnabled() {
        * @return This builder for chaining.
        */
       public Builder setTmsEnabled(boolean value) {
-
-        tmsEnabled_ = value;
         bitField0_ |= 0x00000002;
+        tmsEnabled_ = value;
         onChanged();
         return this;
       }
@@ -34652,18 +36539,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);
       }
     };
 
@@ -34764,6 +36640,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;
@@ -34779,7 +36745,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.
@@ -34798,7 +36764,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.
@@ -34817,7 +36783,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;
@@ -34896,7 +36861,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
@@ -34926,7 +36891,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getBeliefSet());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -34958,7 +36923,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;
     }
 
@@ -34986,7 +36951,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;
     }
@@ -35120,15 +37085,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;
       }
 
@@ -35155,21 +37123,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)) {
@@ -35180,15 +37133,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) {
@@ -35220,7 +37214,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;
       }
@@ -35235,63 +37229,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_;
@@ -35319,9 +37267,8 @@ public int getStatus() {
        * @return This builder for chaining.
        */
       public Builder setStatus(int value) {
-
-        status_ = value;
         bitField0_ |= 0x00000001;
+        status_ = value;
         onChanged();
         return this;
       }
@@ -35359,9 +37306,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000002;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -35381,7 +37327,7 @@ private void ensureOtherHandleIsMutable() {
         if (!((bitField0_ & 0x00000004) != 0)) {
           otherHandle_ = mutableCopy(otherHandle_);
           bitField0_ |= 0x00000004;
-        }
+         }
       }
       /**
        * repeated int64 other_handle = 3;
@@ -35415,7 +37361,6 @@ public long getOtherHandle(int index) {
        */
       public Builder setOtherHandle(
           int index, long value) {
-
         ensureOtherHandleIsMutable();
         otherHandle_.setLong(index, value);
         onChanged();
@@ -35427,7 +37372,6 @@ public Builder setOtherHandle(
        * @return This builder for chaining.
        */
       public Builder addOtherHandle(long value) {
-
         ensureOtherHandleIsMutable();
         otherHandle_.addLong(value);
         onChanged();
@@ -35487,11 +37431,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;
       }
       /**
@@ -35501,11 +37445,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;
       }
       /**
@@ -35514,30 +37458,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;
       }
       /**
@@ -35566,8 +37511,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());
@@ -35608,18 +37552,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);
       }
     };
 
@@ -35701,6 +37634,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;
@@ -35716,7 +37709,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.
@@ -35735,7 +37728,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;
@@ -35795,7 +37787,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
@@ -35812,7 +37804,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, logicalDependency_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -35834,7 +37826,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;
     }
 
@@ -35854,7 +37846,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;
     }
@@ -35971,26 +37963,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;
       }
 
@@ -36017,13 +38014,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_);
@@ -36033,18 +38029,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) {
@@ -36086,7 +38107,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Beli
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -36101,48 +38122,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_;
@@ -36170,9 +38160,8 @@ public long getHandleId() {
        * @return This builder for chaining.
        */
       public Builder setHandleId(long value) {
-
-        handleId_ = value;
         bitField0_ |= 0x00000001;
+        handleId_ = value;
         onChanged();
         return this;
       }
@@ -36191,7 +38180,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;
          }
       }
@@ -36416,8 +38405,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(),
@@ -36459,18 +38447,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);
       }
     };
 
@@ -36593,6 +38570,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;
@@ -36634,7 +38687,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
@@ -36661,7 +38714,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.
@@ -36680,7 +38733,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
@@ -36707,7 +38760,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.
@@ -36754,7 +38807,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
@@ -36783,7 +38836,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(11, value_);
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -36823,7 +38876,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;
     }
 
@@ -36854,7 +38907,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;
     }
@@ -36988,16 +39041,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;
       }
 
@@ -37024,18 +39081,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)) {
@@ -37043,20 +39096,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) {
@@ -37084,7 +39171,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;
       }
@@ -37099,57 +39186,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_;
@@ -37184,11 +39231,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
             throw new NullPointerException();
           }
           activation_ = value;
+          onChanged();
         } else {
           activationBuilder_.setMessage(value);
         }
         bitField0_ |= 0x00000001;
-        onChanged();
         return this;
       }
       /**
@@ -37198,11 +39245,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;
       }
       /**
@@ -37211,30 +39258,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;
       }
       /**
@@ -37263,8 +39311,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());
@@ -37308,9 +39355,8 @@ public int getObjectStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setObjectStrategyIndex(int value) {
-
-        objectStrategyIndex_ = value;
         bitField0_ |= 0x00000002;
+        objectStrategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -37352,9 +39398,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;
       }
@@ -37404,9 +39452,8 @@ public int getValueStrategyIndex() {
        * @return This builder for chaining.
        */
       public Builder setValueStrategyIndex(int value) {
-
-        valueStrategyIndex_ = value;
         bitField0_ |= 0x00000008;
+        valueStrategyIndex_ = value;
         onChanged();
         return this;
       }
@@ -37448,9 +39495,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;
       }
@@ -37497,18 +39546,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);
       }
     };
 
@@ -37579,6 +39617,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;
@@ -37920,6 +40013,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;
@@ -37935,7 +40187,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
@@ -37956,7 +40208,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;
       }
 
@@ -38221,7 +40474,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
@@ -38266,7 +40519,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(9, getSignalProcessInstance());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -38325,7 +40578,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;
       }
 
@@ -38372,7 +40625,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;
       }
@@ -38513,48 +40766,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;
         }
 
@@ -38581,69 +40842,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) {
@@ -38683,7 +40988,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;
         }
@@ -38698,98 +41003,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_;
@@ -38816,7 +41040,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;
         }
         /**
@@ -38894,11 +41119,11 @@ public Builder setBehaviorExpire(org.drools.serialization.protobuf.ProtobufMessa
               throw new NullPointerException();
             }
             behaviorExpire_ = value;
+            onChanged();
           } else {
             behaviorExpireBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -38912,11 +41137,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;
         }
         /**
@@ -38929,17 +41154,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;
         }
         /**
@@ -38950,13 +41176,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;
         }
         /**
@@ -38997,8 +41223,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());
@@ -39037,11 +41262,11 @@ public Builder setDeactivateCallback(org.drools.serialization.protobuf.ProtobufM
               throw new NullPointerException();
             }
             deactivateCallback_ = value;
+            onChanged();
           } else {
             deactivateCallbackBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -39051,11 +41276,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;
         }
         /**
@@ -39064,30 +41289,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;
         }
         /**
@@ -39116,8 +41342,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());
@@ -39156,11 +41381,11 @@ public Builder setLogicalRetract(org.drools.serialization.protobuf.ProtobufMessa
               throw new NullPointerException();
             }
             logicalRetract_ = value;
+            onChanged();
           } else {
             logicalRetractBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000008;
-          onChanged();
           return this;
         }
         /**
@@ -39170,11 +41395,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;
         }
         /**
@@ -39183,30 +41408,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;
         }
         /**
@@ -39235,8 +41461,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());
@@ -39275,11 +41500,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;
         }
         /**
@@ -39289,11 +41514,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;
         }
         /**
@@ -39302,30 +41527,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;
         }
         /**
@@ -39354,8 +41580,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());
@@ -39394,11 +41619,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;
         }
         /**
@@ -39408,11 +41633,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;
         }
         /**
@@ -39421,30 +41646,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;
         }
         /**
@@ -39473,8 +41699,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());
@@ -39513,11 +41738,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;
         }
         /**
@@ -39527,11 +41752,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;
         }
         /**
@@ -39540,30 +41765,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;
         }
         /**
@@ -39592,8 +41818,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());
@@ -39632,11 +41857,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;
         }
         /**
@@ -39646,11 +41871,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;
         }
         /**
@@ -39659,30 +41884,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;
         }
         /**
@@ -39711,8 +41937,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());
@@ -39751,11 +41976,11 @@ public Builder setSignalProcessInstance(org.drools.serialization.protobuf.Protob
               throw new NullPointerException();
             }
             signalProcessInstance_ = value;
+            onChanged();
           } else {
             signalProcessInstanceBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000100;
-          onChanged();
           return this;
         }
         /**
@@ -39765,11 +41990,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;
         }
         /**
@@ -39778,30 +42003,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;
         }
         /**
@@ -39830,8 +42056,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());
@@ -39872,18 +42097,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);
         }
       };
 
@@ -39940,6 +42154,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;
@@ -39955,7 +42217,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.
@@ -39990,7 +42252,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
@@ -40003,7 +42265,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(1, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -40023,7 +42285,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;
       }
 
@@ -40038,7 +42300,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;
       }
@@ -40155,19 +42417,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;
         }
 
@@ -40194,21 +42461,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) {
@@ -40224,7 +42519,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;
         }
@@ -40239,35 +42534,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_;
@@ -40295,9 +42572,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -40344,18 +42620,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);
         }
       };
 
@@ -40419,6 +42684,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;
@@ -40434,8 +42748,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.
@@ -40499,7 +42812,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
@@ -40511,7 +42824,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;
       }
@@ -40531,7 +42844,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;
       }
 
@@ -40546,7 +42859,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;
       }
@@ -40663,19 +42976,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;
         }
 
@@ -40702,21 +43020,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) {
@@ -40730,11 +43076,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;
         }
@@ -40749,35 +43095,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_;
@@ -40832,9 +43160,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;
         }
@@ -40843,8 +43173,8 @@ public Builder setRuleflowGroup(
          * @return This builder for chaining.
          */
         public Builder clearRuleflowGroup() {
-          ruleflowGroup_ = getDefaultInstance().getRuleflowGroup();
           bitField0_ = (bitField0_ & ~0x00000001);
+          ruleflowGroup_ = getDefaultInstance().getRuleflowGroup();
           onChanged();
           return this;
         }
@@ -40855,9 +43185,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;
         }
@@ -40894,18 +43226,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);
         }
       };
 
@@ -40999,6 +43320,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;
@@ -41014,7 +43406,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.
@@ -41059,7 +43451,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.
@@ -41078,7 +43470,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.
@@ -41122,7 +43514,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
@@ -41147,7 +43539,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBoolSize(4, update_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -41182,7 +43574,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;
       }
 
@@ -41212,7 +43604,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;
       }
@@ -41346,15 +43738,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;
         }
 
@@ -41381,12 +43776,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)) {
@@ -41394,9 +43783,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)) {
@@ -41407,9 +43798,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) {
@@ -41434,7 +43859,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;
         }
@@ -41449,52 +43874,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_;
@@ -41522,9 +43912,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -41569,11 +43958,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000002;
-          onChanged();
           return this;
         }
         /**
@@ -41583,11 +43972,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;
         }
         /**
@@ -41596,30 +43985,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;
         }
         /**
@@ -41648,8 +44038,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());
@@ -41681,9 +44070,8 @@ public boolean getFullyRetract() {
          * @return This builder for chaining.
          */
         public Builder setFullyRetract(boolean value) {
-
-          fullyRetract_ = value;
           bitField0_ |= 0x00000004;
+          fullyRetract_ = value;
           onChanged();
           return this;
         }
@@ -41721,9 +44109,8 @@ public boolean getUpdate() {
          * @return This builder for chaining.
          */
         public Builder setUpdate(boolean value) {
-
-          update_ = value;
           bitField0_ |= 0x00000008;
+          update_ = value;
           onChanged();
           return this;
         }
@@ -41770,18 +44157,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);
         }
       };
 
@@ -41838,6 +44214,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;
@@ -41853,7 +44277,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.
@@ -41888,7 +44312,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
@@ -41901,7 +44325,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(1, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -41921,7 +44345,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;
       }
 
@@ -41936,7 +44360,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;
       }
@@ -42053,19 +44477,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;
         }
 
@@ -42092,21 +44521,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) {
@@ -42122,7 +44579,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;
         }
@@ -42137,35 +44594,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_;
@@ -42193,9 +44632,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -42242,18 +44680,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);
         }
       };
 
@@ -42383,6 +44810,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;
@@ -42398,7 +44908,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.
@@ -42417,7 +44927,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.
@@ -42436,7 +44946,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.
@@ -42455,8 +44965,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.
@@ -42504,8 +45013,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.
@@ -42610,7 +45118,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
@@ -42641,7 +45149,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(6, getTuple());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -42686,7 +45194,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;
       }
 
@@ -42724,7 +45232,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;
       }
@@ -42858,17 +45366,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;
         }
 
@@ -42895,12 +45408,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)) {
@@ -42916,22 +45423,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) {
@@ -42954,19 +45497,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;
         }
@@ -42981,62 +45524,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_;
@@ -43064,9 +45562,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -43104,9 +45601,8 @@ public boolean getRemoveLogical() {
          * @return This builder for chaining.
          */
         public Builder setRemoveLogical(boolean value) {
-
-          removeLogical_ = value;
           bitField0_ |= 0x00000002;
+          removeLogical_ = value;
           onChanged();
           return this;
         }
@@ -43144,9 +45640,8 @@ public boolean getUpdateEqualsMap() {
          * @return This builder for chaining.
          */
         public Builder setUpdateEqualsMap(boolean value) {
-
-          updateEqualsMap_ = value;
           bitField0_ |= 0x00000004;
+          updateEqualsMap_ = value;
           onChanged();
           return this;
         }
@@ -43211,9 +45706,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;
         }
@@ -43222,8 +45719,8 @@ public Builder setOriginPkgName(
          * @return This builder for chaining.
          */
         public Builder clearOriginPkgName() {
-          originPkgName_ = getDefaultInstance().getOriginPkgName();
           bitField0_ = (bitField0_ & ~0x00000008);
+          originPkgName_ = getDefaultInstance().getOriginPkgName();
           onChanged();
           return this;
         }
@@ -43234,9 +45731,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;
         }
@@ -43291,9 +45790,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;
         }
@@ -43302,8 +45803,8 @@ public Builder setOriginRuleName(
          * @return This builder for chaining.
          */
         public Builder clearOriginRuleName() {
-          originRuleName_ = getDefaultInstance().getOriginRuleName();
           bitField0_ = (bitField0_ & ~0x00000010);
+          originRuleName_ = getDefaultInstance().getOriginRuleName();
           onChanged();
           return this;
         }
@@ -43314,9 +45815,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;
         }
@@ -43351,11 +45854,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;
         }
         /**
@@ -43365,11 +45868,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;
         }
         /**
@@ -43378,30 +45881,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;
         }
         /**
@@ -43430,8 +45934,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());
@@ -43472,18 +45975,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);
         }
       };
 
@@ -43551,6 +46043,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;
@@ -43566,7 +46111,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.
@@ -43585,7 +46130,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.
@@ -43623,7 +46168,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
@@ -43640,7 +46185,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt32Size(2, nodeId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -43665,7 +46210,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;
       }
 
@@ -43685,7 +46230,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;
       }
@@ -43802,20 +46347,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;
         }
 
@@ -43842,12 +46393,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)) {
@@ -43858,9 +46403,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) {
@@ -43879,7 +46458,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;
         }
@@ -43894,40 +46473,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_;
@@ -43955,9 +46511,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -43995,9 +46550,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000002;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -44044,18 +46598,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);
         }
       };
 
@@ -44131,6 +46674,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;
@@ -44146,8 +46743,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.
@@ -44195,7 +46791,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.
@@ -44233,7 +46829,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
@@ -44249,7 +46845,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBytesSize(2, event_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -44274,7 +46870,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;
       }
 
@@ -44293,7 +46889,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;
       }
@@ -44410,20 +47006,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;
         }
 
@@ -44450,25 +47052,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) {
@@ -44482,14 +47112,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;
         }
@@ -44504,40 +47134,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_;
@@ -44592,9 +47199,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;
         }
@@ -44603,8 +47212,8 @@ public Builder setType(
          * @return This builder for chaining.
          */
         public Builder clearType() {
-          type_ = getDefaultInstance().getType();
           bitField0_ = (bitField0_ & ~0x00000001);
+          type_ = getDefaultInstance().getType();
           onChanged();
           return this;
         }
@@ -44615,9 +47224,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;
         }
@@ -44645,9 +47256,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;
         }
@@ -44694,18 +47307,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);
         }
       };
 
@@ -44799,6 +47401,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;
@@ -44814,8 +47476,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.
@@ -44863,7 +47524,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.
@@ -44882,8 +47543,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.
@@ -44953,7 +47613,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
@@ -44972,7 +47632,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;
       }
@@ -45002,7 +47662,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;
       }
 
@@ -45025,7 +47685,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;
       }
@@ -45142,21 +47802,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;
         }
 
@@ -45183,29 +47850,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) {
@@ -45219,19 +47914,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;
         }
@@ -45246,45 +47941,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_;
@@ -45339,9 +48006,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;
         }
@@ -45350,8 +48019,8 @@ public Builder setType(
          * @return This builder for chaining.
          */
         public Builder clearType() {
-          type_ = getDefaultInstance().getType();
           bitField0_ = (bitField0_ & ~0x00000001);
+          type_ = getDefaultInstance().getType();
           onChanged();
           return this;
         }
@@ -45362,9 +48031,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;
         }
@@ -45392,9 +48063,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;
         }
@@ -45459,9 +48132,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;
         }
@@ -45470,8 +48145,8 @@ public Builder setProcessInstanceId(
          * @return This builder for chaining.
          */
         public Builder clearProcessInstanceId() {
-          processInstanceId_ = getDefaultInstance().getProcessInstanceId();
           bitField0_ = (bitField0_ & ~0x00000004);
+          processInstanceId_ = getDefaultInstance().getProcessInstanceId();
           onChanged();
           return this;
         }
@@ -45482,9 +48157,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;
         }
@@ -45521,18 +48198,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);
         }
       };
 
@@ -45553,7 +48219,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;
@@ -45610,7 +48275,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
@@ -45623,7 +48288,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, action_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -45640,7 +48305,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;
     }
 
@@ -45655,7 +48320,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;
     }
@@ -45772,25 +48437,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;
       }
 
@@ -45817,13 +48486,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_);
@@ -45833,12 +48496,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) {
@@ -45877,7 +48570,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Acti
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -45892,43 +48585,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_;
@@ -45937,7 +48604,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;
          }
       }
@@ -46162,8 +48829,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(),
@@ -46205,18 +48871,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);
       }
     };
 
@@ -46287,6 +48942,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;
@@ -46523,6 +49233,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;
@@ -46538,7 +49355,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.
@@ -46551,7 +49368,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;
       }
 
@@ -46696,7 +49514,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
@@ -46726,7 +49544,7 @@ public int getSerializedSize() {
             .computeMessageSize(5, getTimerNode());
         }
         size += extensionsSerializedSize();
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -46765,7 +49583,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;
@@ -46799,7 +49617,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;
       }
@@ -46937,28 +49755,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;
         }
 
@@ -46985,45 +49807,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) {
@@ -47052,7 +49937,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;
         }
@@ -47070,70 +49955,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_;
@@ -47152,7 +49984,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;
         }
         /**
@@ -47210,11 +50043,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;
         }
         /**
@@ -47224,11 +50057,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;
         }
         /**
@@ -47237,30 +50070,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;
         }
         /**
@@ -47289,8 +50123,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());
@@ -47329,11 +50162,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -47343,11 +50176,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;
         }
         /**
@@ -47356,30 +50189,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;
         }
         /**
@@ -47408,8 +50242,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());
@@ -47448,11 +50281,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;
         }
         /**
@@ -47462,11 +50295,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;
         }
         /**
@@ -47475,30 +50308,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;
         }
         /**
@@ -47527,8 +50361,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());
@@ -47567,11 +50400,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;
         }
         /**
@@ -47581,11 +50414,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;
         }
         /**
@@ -47594,30 +50427,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;
         }
         /**
@@ -47646,8 +50480,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());
@@ -47688,18 +50521,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);
         }
       };
 
@@ -47803,6 +50625,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;
@@ -47818,7 +50705,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.
@@ -47837,8 +50724,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.
@@ -47886,8 +50772,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.
@@ -47935,7 +50820,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.
@@ -47979,7 +50864,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
@@ -48002,7 +50887,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(4, nextFireTimestamp_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -48037,7 +50922,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;
       }
 
@@ -48066,7 +50951,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;
       }
@@ -48183,22 +51068,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;
         }
 
@@ -48225,12 +51118,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)) {
@@ -48238,20 +51125,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) {
@@ -48268,19 +51189,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;
         }
@@ -48295,50 +51216,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_;
@@ -48366,9 +51254,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000001;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -48433,9 +51320,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;
         }
@@ -48444,8 +51333,8 @@ public Builder setEntryPointId(
          * @return This builder for chaining.
          */
         public Builder clearEntryPointId() {
-          entryPointId_ = getDefaultInstance().getEntryPointId();
           bitField0_ = (bitField0_ & ~0x00000002);
+          entryPointId_ = getDefaultInstance().getEntryPointId();
           onChanged();
           return this;
         }
@@ -48456,9 +51345,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;
         }
@@ -48513,9 +51404,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;
         }
@@ -48524,8 +51417,8 @@ public Builder setClassName(
          * @return This builder for chaining.
          */
         public Builder clearClassName() {
-          className_ = getDefaultInstance().getClassName();
           bitField0_ = (bitField0_ & ~0x00000004);
+          className_ = getDefaultInstance().getClassName();
           onChanged();
           return this;
         }
@@ -48536,9 +51429,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;
         }
@@ -48566,9 +51461,8 @@ public long getNextFireTimestamp() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTimestamp(long value) {
-
-          nextFireTimestamp_ = value;
           bitField0_ |= 0x00000008;
+          nextFireTimestamp_ = value;
           onChanged();
           return this;
         }
@@ -48615,18 +51509,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);
         }
       };
 
@@ -48702,6 +51585,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;
@@ -48788,7 +51740,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
@@ -48805,7 +51757,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(2, getTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -48830,7 +51782,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;
       }
 
@@ -48849,7 +51801,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;
       }
@@ -48984,17 +51936,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;
         }
 
@@ -49021,29 +51974,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) {
@@ -49062,7 +52047,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;
         }
@@ -49077,44 +52062,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_;
@@ -49149,11 +52107,11 @@ public Builder setActivation(org.drools.serialization.protobuf.ProtobufMessages.
               throw new NullPointerException();
             }
             activation_ = value;
+            onChanged();
           } else {
             activationBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000001;
-          onChanged();
           return this;
         }
         /**
@@ -49163,11 +52121,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;
         }
         /**
@@ -49176,30 +52134,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;
         }
         /**
@@ -49228,8 +52187,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());
@@ -49268,11 +52226,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;
         }
         /**
@@ -49282,11 +52240,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;
         }
         /**
@@ -49295,30 +52253,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;
         }
         /**
@@ -49347,8 +52306,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());
@@ -49389,18 +52347,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);
         }
       };
 
@@ -49479,6 +52426,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;
@@ -49494,7 +52499,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.
@@ -49513,7 +52518,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.
@@ -49532,7 +52537,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.
@@ -49573,7 +52578,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
@@ -49594,7 +52599,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(3, handleId_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -49624,7 +52629,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;
       }
 
@@ -49648,7 +52653,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;
       }
@@ -49765,21 +52770,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;
         }
 
@@ -49806,12 +52818,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)) {
@@ -49826,9 +52832,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) {
@@ -49850,7 +52890,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;
         }
@@ -49865,45 +52905,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_;
@@ -49931,9 +52943,8 @@ public int getDEPRECATEDNodeId() {
          * @return This builder for chaining.
          */
         public Builder setDEPRECATEDNodeId(int value) {
-
-          dEPRECATEDNodeId_ = value;
           bitField0_ |= 0x00000001;
+          dEPRECATEDNodeId_ = value;
           onChanged();
           return this;
         }
@@ -49971,9 +52982,8 @@ public int getDEPRECATEDBehaviorIndex() {
          * @return This builder for chaining.
          */
         public Builder setDEPRECATEDBehaviorIndex(int value) {
-
-          dEPRECATEDBehaviorIndex_ = value;
           bitField0_ |= 0x00000002;
+          dEPRECATEDBehaviorIndex_ = value;
           onChanged();
           return this;
         }
@@ -50011,9 +53021,8 @@ public long getHandleId() {
          * @return This builder for chaining.
          */
         public Builder setHandleId(long value) {
-
-          handleId_ = value;
           bitField0_ |= 0x00000004;
+          handleId_ = value;
           onChanged();
           return this;
         }
@@ -50060,18 +53069,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);
         }
       };
 
@@ -50158,6 +53156,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;
@@ -50173,7 +53245,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.
@@ -50266,7 +53338,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
@@ -50287,7 +53359,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(3, getTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -50317,7 +53389,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;
       }
 
@@ -50340,7 +53412,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;
       }
@@ -50475,18 +53547,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;
         }
 
@@ -50513,12 +53587,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)) {
@@ -50526,20 +53594,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) {
@@ -50561,7 +53667,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;
         }
@@ -50576,49 +53682,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_;
@@ -50646,9 +53720,8 @@ public int getNodeId() {
          * @return This builder for chaining.
          */
         public Builder setNodeId(int value) {
-
-          nodeId_ = value;
           bitField0_ |= 0x00000001;
+          nodeId_ = value;
           onChanged();
           return this;
         }
@@ -50693,11 +53766,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;
         }
         /**
@@ -50707,11 +53780,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;
         }
         /**
@@ -50720,30 +53793,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;
         }
         /**
@@ -50772,8 +53846,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());
@@ -50812,11 +53885,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;
         }
         /**
@@ -50826,11 +53899,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;
         }
         /**
@@ -50839,30 +53912,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;
         }
         /**
@@ -50891,8 +53965,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());
@@ -50933,18 +54006,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);
         }
       };
 
@@ -50965,7 +54027,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;
@@ -51028,7 +54089,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
@@ -51041,7 +54102,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, timer_.get(i));
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -51058,7 +54119,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;
     }
 
@@ -51073,7 +54134,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;
     }
@@ -51190,25 +54251,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;
       }
 
@@ -51235,13 +54300,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_);
@@ -51251,12 +54310,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) {
@@ -51295,7 +54384,7 @@ public Builder mergeFrom(org.drools.serialization.protobuf.ProtobufMessages.Time
             }
           }
         }
-        this.mergeUnknownFields(other.getUnknownFields());
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
@@ -51315,43 +54404,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_;
@@ -51360,7 +54423,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;
          }
       }
@@ -51585,8 +54648,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(),
@@ -51628,18 +54690,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);
       }
     };
 
@@ -51757,6 +54808,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;
@@ -51999,8 +55157,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
@@ -52010,6 +55167,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;
@@ -52025,7 +55268,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.
@@ -52044,7 +55287,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.
@@ -52063,7 +55306,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.
@@ -52082,7 +55325,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.
@@ -52101,8 +55344,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.
@@ -52150,7 +55392,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.
@@ -52169,9 +55411,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.
@@ -52240,7 +55480,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
@@ -52280,7 +55520,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getCalendarNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -52327,7 +55567,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;
       }
 
@@ -52369,7 +55609,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;
       }
@@ -52486,26 +55726,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;
         }
 
@@ -52532,12 +55782,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)) {
@@ -52557,20 +55801,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) {
@@ -52596,8 +55875,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()) {
@@ -52606,14 +55885,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;
         }
@@ -52628,66 +55907,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_;
@@ -52715,9 +55945,8 @@ public long getStartTime() {
          * @return This builder for chaining.
          */
         public Builder setStartTime(long value) {
-
-          startTime_ = value;
           bitField0_ |= 0x00000001;
+          startTime_ = value;
           onChanged();
           return this;
         }
@@ -52755,9 +55984,8 @@ public long getEndTime() {
          * @return This builder for chaining.
          */
         public Builder setEndTime(long value) {
-
-          endTime_ = value;
           bitField0_ |= 0x00000002;
+          endTime_ = value;
           onChanged();
           return this;
         }
@@ -52795,9 +56023,8 @@ public int getRepeatLimit() {
          * @return This builder for chaining.
          */
         public Builder setRepeatLimit(int value) {
-
-          repeatLimit_ = value;
           bitField0_ |= 0x00000004;
+          repeatLimit_ = value;
           onChanged();
           return this;
         }
@@ -52835,9 +56062,8 @@ public int getRepeatCount() {
          * @return This builder for chaining.
          */
         public Builder setRepeatCount(int value) {
-
-          repeatCount_ = value;
           bitField0_ |= 0x00000008;
+          repeatCount_ = value;
           onChanged();
           return this;
         }
@@ -52902,9 +56128,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;
         }
@@ -52913,8 +56141,8 @@ public Builder setCronExpression(
          * @return This builder for chaining.
          */
         public Builder clearCronExpression() {
-          cronExpression_ = getDefaultInstance().getCronExpression();
           bitField0_ = (bitField0_ & ~0x00000010);
+          cronExpression_ = getDefaultInstance().getCronExpression();
           onChanged();
           return this;
         }
@@ -52925,9 +56153,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;
         }
@@ -52955,9 +56185,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000020;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -52972,13 +56201,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;
@@ -52986,8 +56214,7 @@ private void ensureCalendarNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getCalendarNameList() {
-          calendarName_.makeImmutable();
-          return calendarName_;
+          return calendarName_.getUnmodifiableView();
         }
         /**
          * repeated string calendar_name = 7;
@@ -53021,10 +56248,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;
         }
@@ -53035,10 +56263,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;
         }
@@ -53052,7 +56281,6 @@ public Builder addAllCalendarName(
           ensureCalendarNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, calendarName_);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -53061,9 +56289,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;
         }
@@ -53074,10 +56301,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;
         }
@@ -53114,18 +56342,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);
         }
       };
 
@@ -53253,8 +56470,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
@@ -53264,6 +56480,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;
@@ -53279,7 +56580,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.
@@ -53298,7 +56599,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.
@@ -53317,7 +56618,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.
@@ -53336,7 +56637,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.
@@ -53355,7 +56656,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.
@@ -53374,7 +56675,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.
@@ -53393,9 +56694,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.
@@ -53464,7 +56763,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
@@ -53505,7 +56804,7 @@ public int getSerializedSize() {
           size += dataSize;
           size += 1 * getCalendarNameList().size();
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -53552,7 +56851,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;
       }
 
@@ -53595,7 +56894,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;
       }
@@ -53712,26 +57011,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;
         }
 
@@ -53758,12 +57067,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)) {
@@ -53790,13 +57093,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) {
@@ -53830,14 +57168,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;
         }
@@ -53852,66 +57190,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_;
@@ -53939,9 +57228,8 @@ public long getStartTime() {
          * @return This builder for chaining.
          */
         public Builder setStartTime(long value) {
-
-          startTime_ = value;
           bitField0_ |= 0x00000001;
+          startTime_ = value;
           onChanged();
           return this;
         }
@@ -53979,9 +57267,8 @@ public long getEndTime() {
          * @return This builder for chaining.
          */
         public Builder setEndTime(long value) {
-
-          endTime_ = value;
           bitField0_ |= 0x00000002;
+          endTime_ = value;
           onChanged();
           return this;
         }
@@ -54019,9 +57306,8 @@ public int getRepeatLimit() {
          * @return This builder for chaining.
          */
         public Builder setRepeatLimit(int value) {
-
-          repeatLimit_ = value;
           bitField0_ |= 0x00000004;
+          repeatLimit_ = value;
           onChanged();
           return this;
         }
@@ -54059,9 +57345,8 @@ public int getRepeatCount() {
          * @return This builder for chaining.
          */
         public Builder setRepeatCount(int value) {
-
-          repeatCount_ = value;
           bitField0_ |= 0x00000008;
+          repeatCount_ = value;
           onChanged();
           return this;
         }
@@ -54099,9 +57384,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000010;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -54139,9 +57423,8 @@ public long getPeriod() {
          * @return This builder for chaining.
          */
         public Builder setPeriod(long value) {
-
-          period_ = value;
           bitField0_ |= 0x00000020;
+          period_ = value;
           onChanged();
           return this;
         }
@@ -54156,13 +57439,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;
@@ -54170,8 +57452,7 @@ private void ensureCalendarNameIsMutable() {
          */
         public com.google.protobuf.ProtocolStringList
             getCalendarNameList() {
-          calendarName_.makeImmutable();
-          return calendarName_;
+          return calendarName_.getUnmodifiableView();
         }
         /**
          * repeated string calendar_name = 8;
@@ -54205,10 +57486,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;
         }
@@ -54219,10 +57501,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;
         }
@@ -54236,7 +57519,6 @@ public Builder addAllCalendarName(
           ensureCalendarNameIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
               values, calendarName_);
-          bitField0_ |= 0x00000040;
           onChanged();
           return this;
         }
@@ -54245,9 +57527,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;
         }
@@ -54258,10 +57539,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;
         }
@@ -54298,18 +57580,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);
         }
       };
 
@@ -54366,6 +57637,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;
@@ -54381,7 +57700,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.
@@ -54416,7 +57735,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
@@ -54429,7 +57748,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeInt64Size(1, nextFireTime_);
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -54449,7 +57768,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;
       }
 
@@ -54465,7 +57784,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;
       }
@@ -54582,19 +57901,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;
         }
 
@@ -54621,21 +57945,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) {
@@ -54651,7 +58003,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;
         }
@@ -54666,35 +58018,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_;
@@ -54722,9 +58056,8 @@ public long getNextFireTime() {
          * @return This builder for chaining.
          */
         public Builder setNextFireTime(long value) {
-
-          nextFireTime_ = value;
           bitField0_ |= 0x00000001;
+          nextFireTime_ = value;
           onChanged();
           return this;
         }
@@ -54771,18 +58104,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);
         }
       };
 
@@ -54865,6 +58187,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;
@@ -54880,7 +58268,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.
@@ -54899,7 +58287,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.
@@ -54966,7 +58354,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
@@ -54987,7 +58375,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(3, getTimerTrigger());
         }
-        size += getUnknownFields().getSerializedSize();
+        size += unknownFields.getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -55017,7 +58405,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;
       }
 
@@ -55042,7 +58430,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;
       }
@@ -55176,14 +58564,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;
         }
 
@@ -55210,12 +58600,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)) {
@@ -55227,14 +58611,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) {
@@ -55256,7 +58676,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;
         }
@@ -55271,47 +58691,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_;
@@ -55339,9 +58729,8 @@ public long getMaxDurationTimestamp() {
          * @return This builder for chaining.
          */
         public Builder setMaxDurationTimestamp(long value) {
-
-          maxDurationTimestamp_ = value;
           bitField0_ |= 0x00000001;
+          maxDurationTimestamp_ = value;
           onChanged();
           return this;
         }
@@ -55379,9 +58768,8 @@ public long getTimerCurrentDate() {
          * @return This builder for chaining.
          */
         public Builder setTimerCurrentDate(long value) {
-
-          timerCurrentDate_ = value;
           bitField0_ |= 0x00000002;
+          timerCurrentDate_ = value;
           onChanged();
           return this;
         }
@@ -55426,11 +58814,11 @@ public Builder setTimerTrigger(org.drools.serialization.protobuf.ProtobufMessage
               throw new NullPointerException();
             }
             timerTrigger_ = value;
+            onChanged();
           } else {
             timerTriggerBuilder_.setMessage(value);
           }
           bitField0_ |= 0x00000004;
-          onChanged();
           return this;
         }
         /**
@@ -55440,11 +58828,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;
         }
         /**
@@ -55453,30 +58841,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;
         }
         /**
@@ -55505,8 +58894,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());
@@ -55547,18 +58935,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);
         }
       };
 
@@ -55580,7 +58957,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.
@@ -55593,7 +58970,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;
     }
 
@@ -55730,7 +59108,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
@@ -55759,7 +59137,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(5, getCmdt());
       }
-      size += getUnknownFields().getSerializedSize();
+      size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -55798,7 +59176,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;
     }
 
@@ -55829,7 +59207,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;
     }
@@ -55966,28 +59344,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;
       }
 
@@ -56014,45 +59396,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) {
@@ -56080,7 +59498,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;
       }
@@ -56095,70 +59513,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_;
@@ -56177,7 +59542,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;
       }
       /**
@@ -56235,11 +59601,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;
       }
       /**
@@ -56249,11 +59615,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;
       }
       /**
@@ -56262,30 +59628,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;
       }
       /**
@@ -56314,8 +59681,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());
@@ -56354,11 +59720,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;
       }
       /**
@@ -56368,11 +59734,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;
       }
       /**
@@ -56381,30 +59747,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;
       }
       /**
@@ -56433,8 +59800,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());
@@ -56473,11 +59839,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;
       }
       /**
@@ -56487,11 +59853,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;
       }
       /**
@@ -56500,30 +59866,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;
       }
       /**
@@ -56552,8 +59919,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());
@@ -56592,11 +59958,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;
       }
       /**
@@ -56606,11 +59972,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;
       }
       /**
@@ -56619,30 +59985,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;
       }
       /**
@@ -56671,8 +60038,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());
@@ -56713,18 +60079,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);
       }
     };
 
@@ -57624,4 +60979,4 @@ public org.drools.serialization.protobuf.ProtobufMessages.Trigger getDefaultInst
   }
 
   // @@protoc_insertion_point(outer_class_scope)
-}
+}
\ No newline at end of file