diff --git a/cnf/.settings/org.eclipse.core.resources.prefs b/cnf/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..68a0304 --- /dev/null +++ b/cnf/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=windows-1252 diff --git a/cnf/build.bnd b/cnf/build.bnd index 9a12b45..4390d29 100644 --- a/cnf/build.bnd +++ b/cnf/build.bnd @@ -1,77 +1,7 @@ -src: src/main/java,src-gen/main/java -bin: target/classes -target-dir: target - --runee: JavaSE-11 -javac.source=11 -javac.target=11 -javac.compliance=11 - --resolve.effective: resolve, active --releaserepo: Release - -remoteworkspace: true copyright.year = ${tstamp;yyyy} - -# Configure Repositories --plugin.1.R7.API: \ - aQute.bnd.repository.maven.pom.provider.BndPomRepository; \ - snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \ - releaseUrls=https://repo.maven.apache.org/maven2/; \ - revision=org.osgi.enroute:osgi-api:7.0.0; \ - readOnly=true; \ - name="OSGi R7 API" --plugin.2.R7.Impl: \ - aQute.bnd.repository.maven.pom.provider.BndPomRepository; \ - snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \ - releaseUrls=https://repo.maven.apache.org/maven2/; \ - revision=org.osgi.enroute:impl-index:7.0.0; \ - readOnly=true; \ - name="OSGi R7 Reference Implementations" --plugin.3.Test: \ - aQute.bnd.repository.maven.pom.provider.BndPomRepository; \ - snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \ - releaseUrls=https://repo.maven.apache.org/maven2/; \ - revision=org.osgi.enroute:test-bundles:7.0.0; \ - readOnly=true; \ - name="Testing Bundles" --plugin.4.Debug: \ - aQute.bnd.repository.maven.pom.provider.BndPomRepository; \ - snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \ - releaseUrls=https://repo.maven.apache.org/maven2/; \ - revision=org.osgi.enroute:debug-bundles:7.0.0; \ - readOnly=true; \ - name="Debug Bundles" --plugin.5.Central: \ - aQute.bnd.repository.maven.provider.MavenBndRepository; \ - releaseUrl=https://repo.maven.apache.org/maven2/; \ - index=${.}/central.maven; \ - readOnly=true; \ - name="Maven Central" --plugin.6.Local: \ - aQute.bnd.deployer.repository.LocalIndexedRepo; \ - name = Local; \ - pretty = true; \ - local = ${build}/local - --plugin.7.Templates: \ - aQute.bnd.deployer.repository.LocalIndexedRepo; \ - name = Templates; \ - pretty = true; \ - local = ${build}/templates - --plugin.8.Release: \ - aQute.bnd.deployer.repository.LocalIndexedRepo; \ - name = Release; \ - pretty = true; \ - local = ${build}/release - --plugin.9.ECFATCENTRAL: \ - aQute.bnd.repository.maven.provider.MavenBndRepository; \ - releaseUrl=https://repo1.maven.org/maven2/; \ - index=${.}/ecfatcentral.maven; \ - name="ECF Remote Services" +Bundle-Version: 1.0.0.${tstamp} -releaserepo: Release -baselinerepo: Release @@ -79,9 +9,6 @@ copyright.year = ${tstamp;yyyy} # Always use contracts -contract: * -# JUnit -junit: org.apache.servicemix.bundles.junit; version=4.12 -mockito: org.mockito.mockito-core; version=2.13.0 -mockito-deps: org.objenesis; version=2.6.0,\ - net.bytebuddy.byte-buddy; version=1.7.9,\ - net.bytebuddy.byte-buddy-agent; version=1.7.9 +-runfw: org.apache.felix.framework +-runee: JavaSE-17 + diff --git a/cnf/central.maven b/cnf/central.maven deleted file mode 100644 index b5a8441..0000000 --- a/cnf/central.maven +++ /dev/null @@ -1,195 +0,0 @@ -org.apache.felix:org.apache.felix.configadmin:1.9.20 -org.apache.felix:org.apache.felix.configurator:1.0.14 -org.apache.felix:org.apache.felix.converter:1.0.14 -org.apache.felix:org.apache.felix.coordinator:1.0.2 -org.apache.felix:org.apache.felix.eventadmin:1.6.2 -org.apache.felix:org.apache.felix.fileinstall:3.6.8 -org.apache.felix:org.apache.felix.framework.security:2.8.0 -org.apache.felix:org.apache.felix.framework:7.0.0 -org.apache.felix:org.apache.felix.gogo.command:1.1.2 -org.apache.felix:org.apache.felix.gogo.runtime:1.1.4 -org.apache.felix:org.apache.felix.gogo.shell:1.1.4 -org.apache.felix:org.apache.felix.gogo.shell:1.1.4 -org.apache.felix:org.apache.felix.http.jetty:4.1.4 -org.apache.felix:org.apache.felix.http.servlet-api:1.1.2 -org.apache.felix:org.apache.felix.http.servlet-api:1.1.2 -org.apache.felix:org.apache.felix.inventory:1.0.6 -org.apache.felix:org.apache.felix.log.extension:1.0.0 -org.apache.felix:org.apache.felix.log:1.2.4 -org.apache.felix:org.apache.felix.metatype:1.2.4 -org.apache.felix:org.apache.felix.scr:2.1.26 -org.apache.felix:org.apache.felix.shell.remote:1.2.0 -org.apache.felix:org.apache.felix.threaddump:1.0.0 -org.apache.felix:org.apache.felix.useradmin:1.0.4 -org.apache.felix:org.apache.felix.webconsole.plugins.ds:2.1.0 -org.apache.felix:org.apache.felix.webconsole.plugins.memoryusage:1.0.10 -org.apache.felix:org.apache.felix.webconsole.plugins.scriptconsole:1.0.2 -org.apache.felix:org.apache.felix.webconsole.plugins.useradmin:1.0.2 -org.apache.felix:org.apache.felix.webconsole:4.6.0 -org.apache.servicemix.bundles:org.apache.servicemix.bundles.junit:4.13_1 -org.hamcrest:hamcrest-core:2.2 - -org.osgi:org.osgi.annotation.bundle:1.1.0 -org.osgi:org.osgi.dto:1.1.1 -org.osgi:org.osgi.framework:1.10.0 -org.osgi:org.osgi.jmx:1.1.0 -org.osgi:org.osgi.namespace.contract:1.0.0 -org.osgi:org.osgi.namespace.extender:1.0.1 -org.osgi:org.osgi.namespace.implementation:1.0.0 -org.osgi:org.osgi.namespace.service:1.0.0 -org.osgi:org.osgi.namespace.unresolvable:1.0.0 -org.osgi:org.osgi.resource:1.0.1 -org.osgi:org.osgi.service.application:1.1.0 -org.osgi:org.osgi.service.async:1.0.0 -org.osgi:org.osgi.service.blueprint:1.0.2 -org.osgi:org.osgi.service.cdi:1.0.0 -org.osgi:org.osgi.service.clusterinfo:1.0.0 -org.osgi:org.osgi.service.cm:1.6.0 -org.osgi:org.osgi.service.component.annotations:1.4.0 -org.osgi:org.osgi.service.component:1.4.0 -org.osgi:org.osgi.service.condpermadmin:1.1.2 -org.osgi:org.osgi.service.configurator:1.0.0 -org.osgi:org.osgi.service.coordinator:1.0.2 -org.osgi:org.osgi.service.event:1.4.0 -org.osgi:org.osgi.service.http.whiteboard:1.1.0 -org.osgi:org.osgi.service.http:1.2.1 -org.osgi:org.osgi.service.jaxrs:jar:1.0.0 -org.osgi:org.osgi.service.jdbc:1.0.0 -org.osgi:org.osgi.service.log:1.5.0 -org.osgi:org.osgi.service.metatype.annotations:1.4.0 -org.osgi:org.osgi.service.metatype:1.4.0 -org.osgi:org.osgi.service.packageadmin:1.2.1 -org.osgi:org.osgi.service.remoteserviceadmin:1.1.0 -org.osgi:org.osgi.service.repository:1.1.0 -org.osgi:org.osgi.service.resolver:1.1.1 -org.osgi:org.osgi.service.rest:1.0.0 -org.osgi:org.osgi.service.serviceloader:1.0.0 -org.osgi:org.osgi.service.url:1.0.1 -org.osgi:org.osgi.service.useradmin:1.1.0 -org.osgi:org.osgi.util.converter:1.0.1 -org.osgi:org.osgi.util.function:1.1.0 -org.osgi:org.osgi.util.measurement:1.0.2 -org.osgi:org.osgi.util.position:1.0.1 -org.osgi:org.osgi.util.promise:1.1.1 -org.osgi:org.osgi.util.pushstream:1.0.1 -org.osgi:org.osgi.util.tracker:1.5.3 -org.osgi:org.osgi.util.xml:1.0.1 -org.osgi:osgi.annotation:8.0.0 -org.osgi:osgi.core:8.0.0 -org.slf4j:slf4j-api:1.7.30 -org.slf4j:slf4j-simple:1.7.30 -org.eclipse.persistence:javax.persistence:2.2.1 - -# List repository contents using GAV coordinates\\com.google.protobuf:protoc:exe:linux-aarch_64:4.0.0-rc-2 -# protoc -com.google.protobuf:protoc:exe:linux-ppcle_64:4.0.0-rc-2 -com.google.protobuf:protoc:exe:linux-s390x:4.0.0-rc-2 -com.google.protobuf:protoc:exe:linux-x86_32:4.0.0-rc-2 -com.google.protobuf:protoc:exe:linux-x86_64:4.0.0-rc-2 -com.google.protobuf:protoc:exe:osx-x86_64:4.0.0-rc-2 -com.google.protobuf:protoc:exe:windows-x86_32:4.0.0-rc-2 -com.google.protobuf:protoc:exe:windows-x86_64:4.0.0-rc-2 -# protobuf java -com.google.protobuf:protobuf-java:4.0.0-rc-2 -# grpc-java protoc plugin -io.grpc:protoc-gen-grpc-java:exe:windows-x86_64:1.39.0 -io.grpc:protoc-gen-grpc-java:exe:osx-x86_64:1.39.0 -io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:1.39.0 -# grpc-java jar libs -io.grpc:grpc-api:1.39.0 -io.grpc:grpc-core:1.39.0 -io.grpc:grpc-stub:1.39.0 -io.grpc:grpc-context:1.39.0 -io.grpc:grpc-protobuf:1.39.0 -io.grpc:grpc-services:1.39.0 -io.grpc:grpc-netty:1.39.0 -# saleforce/rxgrpc protoc plugin and reactivex -com.salesforce.servicelibs:rxgrpc:exe:windows-x86_64:1.2.3 -com.salesforce.servicelibs:rxgrpc:exe:osx-x86_64:1.2.3 -com.salesforce.servicelibs:rxgrpc:exe:linux-x86_64:1.2.3 -com.salesforce.servicelibs:rxgrpc-stub:1.2.3 -com.salesforce.servicelibs:rx3grpc-stub:1.2.3 -com.salesforce.servicelibs:reactive-grpc-common:1.2.3 -# rxjava2 jar api -io.reactivex.rxjava2:rxjava:2.2.19 -# rxjava2 jar api -io.reactivex.rxjava3:rxjava:3.1.1 -# gson -com.google.code.gson:gson:2.8.6 -# failureaccess -com.google.guava:failureaccess:1.0.1 -# guava android -com.google.guava:guava:30.1-android -# grpc-ogsi-generator protoc plugin -org.eclipse.ecf:grpc-osgi-generator:exe:windows-x86_64:1.5.4 -org.eclipse.ecf:grpc-osgi-generator:exe:osx-x86_64:1.5.4 -org.eclipse.ecf:grpc-osgi-generator:exe:linux-x86_64:1.5.4 -# netty - -io.netty:netty-buffer:4.1.68.Final -io.netty:netty-codec:4.1.68.Final -io.netty:netty-codec-http:4.1.68.Final -io.netty:netty-codec-http2:4.1.68.Final -io.netty:netty-codec-socks:4.1.68.Final -io.netty:netty-common:4.1.68.Final -io.netty:netty-handler:4.1.68.Final -io.netty:netty-handler-proxy:4.1.68.Final -io.netty:netty-resolver:4.1.68.Final -io.netty:netty-transport:4.1.68.Final -# reactive streams -org.reactivestreams:reactive-streams:1.0.3 -# slf4j api and simple -org.slf4j:slf4j-api:1.7.25 -org.slf4j:slf4j-simple:1.7.25 -# javax.annotation jsr305 -org.apache.tomcat:annotations-api:6.0.53 -# bnd libg -biz.aQute.bnd:aQute.libg:5.0.0 - -#hazelcast -com.hazelcast:hazelcast-all:4.0.3 - -#jackson -com.fasterxml.jackson.core:jackson-core:2.11.3 -com.fasterxml.jackson.core:jackson-databind:2.11.3 -com.fasterxml.jackson.core:jackson-annotations:2.11.3 -com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.11.3 -com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.11.3 -com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.3 -# activation -com.sun.activation:javax.activation:1.2.0 -#jakarta-annotation -jakarta.annotation:jakarta.annotation-api:1.3.4 -# jakarta rs-api -jakarta.ws.rs:jakarta.ws.rs-api:2.1.5 -# jakarta xml bind -jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 -# validation api -javax.validation:validation-api:2.0.1.Final -#jaxb-api -javax.xml.bind:jaxb-api:2.2.12 -# cxf -org.apache.cxf:cxf-rt-rs-client:3.3.4 -org.apache.cxf:cxf-rt-frontend-jaxrs:3.3.4 -org.apache.cxf:cxf-rt-security:3.3.4 -org.apache.cxf:cxf-rt-transports-http:3.3.4 - -# hk2 -org.glassfish.hk2:hk2-api:2.6.1 -org.glassfish.hk2.external:aopalliance-repackaged:2.6.1 -org.glassfish.hk2.external:jakarta.inject:2.6.1 -org.glassfish.hk2:hk2-locator:2.6.1 -org.glassfish.hk2:osgi-resource-locator:1.0.3 -org.glassfish.hk2:hk2-utils:2.6.1 -# jersey -org.glassfish.jersey.core:jersey-server:2.30.1 -org.glassfish.jersey.core:jersey-common:2.30.1 -org.glassfish.jersey.core:jersey-client:2.30.1 -org.glassfish.jersey.containers:jersey-container-servlet:2.30.1 -org.glassfish.jersey.containers:jersey-container-servlet-core:2.30.1 -org.glassfish.jersey.ext:jersey-entity-filtering:2.30.1 -org.glassfish.jersey.inject:jersey-hk2:2.30.1 -org.glassfish.jersey.media:jersey-media-jaxb:2.30.1 -org.glassfish.jersey.media:jersey-media-json-jackson:2.30.1 - - diff --git a/cnf/ecfatcentral.maven b/cnf/ecfatcentral.maven deleted file mode 100644 index 2a6c2c4..0000000 --- a/cnf/ecfatcentral.maven +++ /dev/null @@ -1,34 +0,0 @@ -org.eclipse.platform:org.eclipse.core.jobs:3.9.3 -org.eclipse.platform:org.eclipse.equinox.common:3.9.0 -org.eclipse.platform:org.eclipse.equinox.concurrent:1.1.0 -org.eclipse.platform:org.eclipse.equinox.supplement:1.7.0 -org.eclipse.ecf:org.eclipse.ecf.identity:3.9.401 -org.eclipse.ecf:org.eclipse.ecf:3.9.101 -org.eclipse.ecf:org.eclipse.ecf.sharedobject:2.6.100 -org.eclipse.ecf:org.eclipse.ecf.discovery:5.1.1 -org.eclipse.ecf:org.eclipse.ecf.remoteservice.asyncproxy:2.1.2 -org.eclipse.ecf:org.eclipse.ecf.remoteservice:8.13.101 -org.eclipse.ecf:org.eclipse.ecf.console:1.3.100 -org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin.console:1.2.100 -org.eclipse.ecf:org.eclipse.osgi.services.remoteserviceadmin:1.6.300 -org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy:1.0.101 -org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin:4.8.0 -org.eclipse.ecf:org.eclipse.ecf.osgi.services.distribution:2.1.500 -org.eclipse.ecf:org.eclipse.ecf.provider:4.8.301 -org.eclipse.ecf:org.eclipse.ecf.provider.remoteservice:4.4.201 -org.eclipse.ecf:ch.ethz.iks.r_osgi.remote:1.2.203 -org.eclipse.ecf:org.eclipse.ecf.provider.r_osgi:3.6.301 -org.eclipse.ecf:org.objectweb.asm:5.0.1.v201404251740 -org.eclipse.ecf:javax.servlet:3.1.0.v201410161800 -org.eclipse.ecf:org.apache.commons.codec:1.9.0.v20170208-1614 -org.eclipse.ecf:org.apache.commons.logging:1.1.1.v201101211721 -org.eclipse.ecf:org.apache.log4j:1.2.15.v201012070815 -org.eclipse.ecf:org.apache.httpcomponents.httpclient:4.5.2.v20170210-0925 -org.eclipse.ecf:org.apache.httpcomponents.httpcore:4.4.6.v20170210-0925 -org.eclipse.ecf:org.json:1.0.0.v201011060100 -org.eclipse.ecf:org.eclipse.ecf.remoteservice.eventadmin:1.3.100 -org.eclipse.ecf:org.eclipse.ecf.provider.jmdns:4.3.301 -org.eclipse.ecf:org.eclipse.ecf.provider.jslp:3.2.301 -org.eclipse.ecf:ch.ethz.iks.slp:1.4.0 - -org.eclipse.ecf:org.eclipse.ecf.bndtools.grpc:1.2.1 \ No newline at end of file diff --git a/cnf/ext/build.mvn b/cnf/ext/build.mvn new file mode 100644 index 0000000..146cae1 --- /dev/null +++ b/cnf/ext/build.mvn @@ -0,0 +1,106 @@ +# OSGi R8 + +biz.aQute.bnd:biz.aQute.bndlib:7.0.0 +biz.aQute.bnd:aQute.libg:7.0.0 +biz.aQute.bnd:biz.aQute.launchpad:7.0.0 +biz.aQute.bnd:biz.aQute.bnd.runtime.gogo:7.0.0 +biz.aQute.bnd:biz.aQute.bnd.runtime.snapshot:7.0.0 +biz.aQute:biz.aQute.osgi.templates:1.10.0 + +org.osgi:org.osgi.annotation.bundle:2.0.0 +org.osgi:org.osgi.annotation.versioning:1.1.2 +org.osgi:org.osgi.application:1.0.0 +org.osgi:org.osgi.dto:1.1.1 +org.osgi:org.osgi.framework:1.10.0 +org.osgi:org.osgi.jmx:1.1.0 +org.osgi:org.osgi.namespace.contract:1.0.0 +org.osgi:org.osgi.namespace.extender:1.0.1 +org.osgi:org.osgi.namespace.implementation:1.0.0 +org.osgi:org.osgi.namespace.service:1.0.0 +org.osgi:org.osgi.namespace.unresolvable:1.0.0 +org.osgi:org.osgi.resource:1.0.1 +org.osgi:org.osgi.service.application:1.1.0 +org.osgi:org.osgi.service.async:1.0.0 +org.osgi:org.osgi.service.blueprint:1.0.2 +org.osgi:org.osgi.service.cdi:1.0.1 +org.osgi:org.osgi.service.clusterinfo:1.0.0 +org.osgi:org.osgi.service.cm:1.6.1 +org.osgi:org.osgi.service.component:1.5.1 +org.osgi:org.osgi.service.component.annotations:1.5.1 +org.osgi:org.osgi.service.condition:1.0.0 +org.osgi:org.osgi.service.condpermadmin:1.1.2 +org.osgi:org.osgi.service.configurator:1.0.1 +org.osgi:org.osgi.service.coordinator:1.0.2 +org.osgi:org.osgi.service.dal:1.0.2 +org.osgi:org.osgi.service.dal.functions:1.0.1 +org.osgi:org.osgi.service.deploymentadmin:1.1.0 +org.osgi:org.osgi.service.device:1.1.1 +org.osgi:org.osgi.service.dmt:2.0.2 +org.osgi:org.osgi.service.enocean:1.0.1 +org.osgi:org.osgi.service.event:1.4.1 +org.osgi:org.osgi.service.feature:1.0.0 +org.osgi:org.osgi.service.http:1.2.2 +org.osgi:org.osgi.service.http.whiteboard:1.1.1 +org.osgi:org.osgi.service.io:1.0.0 +org.osgi:org.osgi.service.jakartars:2.0.0 +org.osgi:org.osgi.service.jaxrs:1.0.1 +org.osgi:org.osgi.service.jdbc:1.1.0 +org.osgi:org.osgi.service.jndi:1.0.1 +org.osgi:org.osgi.service.jpa:1.1.1 +org.osgi:org.osgi.service.log:1.5.0 +org.osgi:org.osgi.service.log.stream:1.0.0 +org.osgi:org.osgi.service.metatype:1.4.1 +org.osgi:org.osgi.service.metatype.annotations:1.4.1 +org.osgi:org.osgi.service.monitor:1.0.0 +org.osgi:org.osgi.service.networkadapter:1.0.1 +org.osgi:org.osgi.service.onem2m:1.0.0 +org.osgi:org.osgi.service.packageadmin:1.2.1 +org.osgi:org.osgi.service.permissionadmin:1.2.1 +org.osgi:org.osgi.service.prefs:1.1.2 +org.osgi:org.osgi.service.provisioning:1.2.0 +org.osgi:org.osgi.service.remoteserviceadmin:1.1.0 +org.osgi:org.osgi.service.repository:1.1.0 +org.osgi:org.osgi.service.resolver:1.1.1 +org.osgi:org.osgi.service.resourcemonitoring:1.0.1 +org.osgi:org.osgi.service.rest:1.0.0 +org.osgi:org.osgi.service.serial:1.0.1 +org.osgi:org.osgi.service.serviceloader:1.0.0 +org.osgi:org.osgi.service.servlet:2.0.0 +org.osgi:org.osgi.service.startlevel:1.1.1 +org.osgi:org.osgi.service.subsystem:1.1.0 +org.osgi:org.osgi.service.tr069todmt:1.0.2 +org.osgi:org.osgi.service.transaction.control:1.0.0 +org.osgi:org.osgi.service.typedevent:1.0.0 +org.osgi:org.osgi.service.upnp:1.2.1 +org.osgi:org.osgi.service.url:1.0.1 +org.osgi:org.osgi.service.usbinfo:1.0.1 +org.osgi:org.osgi.service.useradmin:1.1.1 +org.osgi:org.osgi.service.wireadmin:1.0.2 +org.osgi:org.osgi.service.zigbee:1.0.1 +org.osgi:org.osgi.util.converter:1.0.9 +org.osgi:org.osgi.util.function:1.2.0 +org.osgi:org.osgi.util.measurement:1.0.2 +org.osgi:org.osgi.util.position:1.0.1 +org.osgi:org.osgi.util.promise:1.3.0 +org.osgi:org.osgi.util.pushstream:1.1.0 +org.osgi:org.osgi.util.tracker:1.5.4 +org.osgi:org.osgi.util.xml:1.0.2 +org.osgi:osgi.annotation:8.1.0 +org.osgi:osgi.core:8.0.0 +org.osgi:osgi.enterprise:7.0.0 +org.osgi:osgi.promise:8.1.0 +org.osgi:slf4j.osgi:2.0.0 + +org.slf4j:slf4j-api:2.0.9 + +org.apache.servicemix.bundles:org.apache.servicemix.bundles.junit:4.12_1 +org.mockito:mockito-core:2.13.0 +org.mockito:mockito-all:1.10.19 +org.easymock:easymock:5.2.0 +org.assertj:assertj-core:3.24.2 +org.objenesis:objenesis:2.6 + + +org.osgi:osgi.enroute.junit.wrapper:4.12.0 +org.osgi:osgi.enroute.hamcrest.wrapper:1.3.0 + diff --git a/cnf/ext/defaults.bnd b/cnf/ext/defaults.bnd new file mode 100644 index 0000000..299fb10 --- /dev/null +++ b/cnf/ext/defaults.bnd @@ -0,0 +1,77 @@ +-plugin.1.build: \ + aQute.bnd.repository.maven.provider.MavenBndRepository; \ + snapshotUrl="https://oss.sonatype.org/content/repositories/snapshots/"; \ + releaseUrl=https://repo.maven.apache.org/maven2/; \ + index=${.}/build.mvn; \ + readOnly=true; \ + name="OSGI R8 - Build" + +-plugin.1.runtime: \ + aQute.bnd.repository.maven.provider.MavenBndRepository; \ + snapshotUrl="https://oss.sonatype.org/content/repositories/snapshots/"; \ + releaseUrl="https://repo.maven.apache.org/maven2/"; \ + index=${.}/runtime.mvn; \ + readOnly=true; \ + name="OSGI R8 - Runtime Distro" + +-plugin.2.runtime: \ + aQute.bnd.repository.maven.provider.MavenBndRepository; \ + releaseUrl=https://repo.maven.apache.org/maven2/; \ + index=${.}/ecf.support.mvn; \ + readOnly=true; \ + name="ECF Maven Central Support, Etcd Discovery Provider, and Tools" + +-plugin.3.Local: \ + aQute.bnd.deployer.repository.LocalIndexedRepo; \ + name = Local; \ + pretty = true; \ + local = ${build}/local + +-plugin.3.Templates: \ + aQute.bnd.deployer.repository.LocalIndexedRepo; \ + name = Templates; \ + pretty = true; \ + local = ${build}/templates + +-plugin.3.Release: \ + aQute.bnd.deployer.repository.LocalIndexedRepo; \ + name = Release; \ + pretty = true; \ + local = ${build}/release + +-plugin.4.ECFRSSDK: \ + aQute.bnd.repository.p2.provider.P2Repository; \ + url = https://download.eclipse.org/rt/ecf/latest/site.p2; \ + name = ECF Remote Services SDK + +-plugin.5.ECFGRPC: \ + aQute.bnd.repository.p2.provider.P2Repository; \ + url = https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/; \ + pretty = true; \ + name = ECF gRPC Distribution Provider + +-runsystemcapabilities.dflt: ${native_capability} + +debug-bundles: \ + osgi.identity;filter:='(osgi.identity=osgi.enroute.webconsole.xray.provider)',\ + osgi.implementation;filter:='(osgi.implementation=osgi.metatype)',\ + osgi.implementation;filter:='(osgi.implementation=osgi.event)',\ + osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\ + osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)', \ + osgi.identity;filter:='(osgi.identity=org.apache.felix.webconsole.plugins.ds)' + +# the driver-variable (see https://bnd.bndtools.org/macros/driver.html) +# helps to build to different folders e.g. depending on if Eclipse builds +# or e.g. gradle builds. +# that avoids conflicts between gradle and eclipse build +# target-dir: dir specifies where build places the .jar and classes +target-dir generated${if;${driver;eclipse};;/${driver}} +src src/main/java, src/main/resources, src-gen/main/java +testsrc src/test/java +bin ${target-dir}/classes +testbin ${target-dir}/test-classes + +# This is the version of JUnit that will be used at build time and run time +junit: org.apache.servicemix.bundles.junit +mockito: org.mockito.mockito-core,\ + org.objenesis \ No newline at end of file diff --git a/cnf/ext/ecf.support.mvn b/cnf/ext/ecf.support.mvn new file mode 100644 index 0000000..18f8e4a --- /dev/null +++ b/cnf/ext/ecf.support.mvn @@ -0,0 +1,8 @@ +org.eclipse.persistence:javax.persistence:2.2.1 +com.google.guava:guava:31.1-android +# javax.annotation jsr305 +org.apache.tomcat:annotations-api:6.0.53 +# org.eclipse.ecf:grpc-osgi-generator for bndtools +org.eclipse.ecf:org.eclipse.ecf.bndtools.grpc:1.3.0 +#etcd3 discovery provider +org.eclipse.ecf:org.eclipse.ecf.provider.etcd3:1.1.0 diff --git a/cnf/ext/java.bnd b/cnf/ext/java.bnd new file mode 100644 index 0000000..4cd9927 --- /dev/null +++ b/cnf/ext/java.bnd @@ -0,0 +1,4 @@ +javac.source: 17 +javac.target: 17 +javac.compliance: 17 +javac.debug: on diff --git a/cnf/ext/runtime.mvn b/cnf/ext/runtime.mvn new file mode 100644 index 0000000..9f93b7d --- /dev/null +++ b/cnf/ext/runtime.mvn @@ -0,0 +1,84 @@ +org.apache.felix:org.apache.felix.framework:7.0.5 +org.apache.felix:org.apache.felix.framework.security:2.8.4 + +org.apache.felix:org.apache.felix.configadmin:1.9.26 +org.apache.felix:org.apache.felix.configurator:1.0.18 +org.apache.felix:org.apache.felix.coordinator:1.0.2 +org.apache.felix:org.apache.felix.eventadmin:1.6.4 +org.apache.felix:org.apache.felix.fileinstall:3.7.4 +org.apache.felix:org.apache.felix.http.servlet-api:3.0.0 +org.apache.felix:org.apache.felix.http.jetty:5.1.4 +org.apache.felix:org.apache.felix.inventory:2.0.0 +org.apache.felix:org.apache.felix.log:1.3.0 +org.apache.felix:org.apache.felix.log.extension:1.0.0 +org.eclipse.platform:org.eclipse.equinox.log.stream:1.1.100 +org.apache.felix:org.apache.felix.metatype:1.2.4 +org.apache.felix:org.apache.felix.scr:2.2.6 + +org.osgi:org.knopflerfish.bundle.useradmin:4.1.1 + +org.apache.felix:org.apache.felix.gogo.command:1.1.2 +org.apache.felix:org.apache.felix.gogo.runtime:1.1.6 +org.apache.felix:org.apache.felix.gogo.shell:1.1.4 +org.apache.felix:org.apache.felix.gogo.jline:1.1.8 +org.apache.felix:org.apache.felix.shell.remote:1.2.0 +org.jline:jline:3.24.1 + +org.apache.felix:org.apache.felix.threaddump:1.0.0 +org.apache.felix:org.apache.felix.converter:1.0.18 + +org.apache.felix:org.apache.felix.webconsole.plugins.ds:2.3.0 +org.apache.felix:org.apache.felix.webconsole.plugins.memoryusage:1.1.0 +org.apache.felix:org.apache.felix.webconsole.plugins.scriptconsole:1.0.2 +org.apache.felix:org.apache.felix.webconsole.plugins.useradmin:1.0.2 +org.apache.felix:org.apache.felix.webconsole.plugins.event:1.2.0 +org.apache.felix:org.apache.felix.webconsole.plugins.packageadmin:1.1.0 +org.apache.felix:org.apache.felix.webconsole:4.9.6 + + +org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-io:1.4_3 +commons-fileupload:commons-fileupload:1.5 + +org.osgi:org.knopflerfish.bundle.useradmin:4.1.1 +org.eclipse.concierge:org.eclipse.concierge.service.clusterinfo:1.0.0 + +org.apache.aries.async:org.apache.aries.async:1.0.1 + +com.h2database:h2:2.2.224 + +org.slf4j:slf4j-nop:2.0.9 +org.slf4j:slf4j-simple:2.0.9 + +org.osgi:org.osgi.util.function:1.2.0 +org.osgi:org.osgi.util.measurement:1.0.2 +org.osgi:org.osgi.util.position:1.0.1 +org.osgi:org.osgi.util.promise:1.3.0 +org.osgi:org.osgi.util.pushstream:1.1.0 +org.osgi:org.osgi.util.tracker:1.5.4 +org.osgi:org.osgi.util.xml:1.0.2 + +org.eclipse.platform:org.eclipse.core.jobs:3.15.100 +org.eclipse.platform:org.eclipse.equinox.common:3.15.100 +org.eclipse.platform:org.eclipse.equinox.concurrent:1.2.200 +org.eclipse.platform:org.eclipse.equinox.supplement:1.10.700 +org.eclipse.ecf:org.eclipse.ecf.identity:3.10.0 +org.eclipse.ecf:org.eclipse.ecf:3.11.0 +org.eclipse.ecf:org.eclipse.ecf.sharedobject:2.6.200 +org.eclipse.ecf:org.eclipse.ecf.discovery:5.1.2 +org.eclipse.ecf:org.eclipse.ecf.remoteservice.asyncproxy:2.1.200 +org.eclipse.ecf:org.eclipse.ecf.remoteservice:8.14.0 +org.eclipse.ecf:org.eclipse.ecf.console:1.4.0 +org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin.console:1.3.1 +org.eclipse.ecf:org.eclipse.osgi.services.remoteserviceadmin:1.6.301 +org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy:1.0.102 +org.eclipse.ecf:org.eclipse.ecf.osgi.services.remoteserviceadmin:4.9.3 +org.eclipse.ecf:org.eclipse.ecf.osgi.services.distribution:2.1.700 +org.eclipse.ecf:org.eclipse.ecf.provider:4.10.0 +org.eclipse.ecf:org.eclipse.ecf.provider.remoteservice:4.6.1 +org.eclipse.ecf:org.eclipse.ecf.provider.jmdns:4.3.302 + +org.glassfish:javax.json:1.1.4 + +# not found anymore net.sourceforge.htmlunit:htmlunit-osgi:2.35.0 + +biz.aQute:osgi.enroute.webconsole.xray.provider:2.2.0 diff --git a/cnf/local/index.xml.sha b/cnf/local/index.xml.sha deleted file mode 100644 index 1ba2541..0000000 --- a/cnf/local/index.xml.sha +++ /dev/null @@ -1 +0,0 @@ -e1f4feeadd2fc6371a856e05ff538fc9faad47b3b02f0739ec05d06721c4f8a6 \ No newline at end of file diff --git a/cnf/release/index.xml b/cnf/release/index.xml index da84c96..dd1bd3b 100644 --- a/cnf/release/index.xml +++ b/cnf/release/index.xml @@ -1,5 +1,5 @@ - + @@ -10,8 +10,8 @@ - + @@ -24,8 +24,8 @@ - + diff --git a/cnf/templates/index.xml b/cnf/templates/index.xml index aae577e..8e2fdf0 100644 --- a/cnf/templates/index.xml +++ b/cnf/templates/index.xml @@ -1,5 +1,5 @@ - + @@ -88,8 +88,8 @@ - + @@ -135,8 +135,8 @@ - + diff --git a/org.eclipse.ecf.provider.etcd3/.classpath b/org.eclipse.ecf.provider.etcd3/.classpath index d03f75b..0724e33 100644 --- a/org.eclipse.ecf.provider.etcd3/.classpath +++ b/org.eclipse.ecf.provider.etcd3/.classpath @@ -1,13 +1,13 @@ - - - - + - + - + + + + diff --git a/org.eclipse.ecf.provider.etcd3/.gitignore b/org.eclipse.ecf.provider.etcd3/.gitignore index 09e3bc9..7d263d1 100644 --- a/org.eclipse.ecf.provider.etcd3/.gitignore +++ b/org.eclipse.ecf.provider.etcd3/.gitignore @@ -1,2 +1,3 @@ /bin/ /target/ +/generated/ diff --git a/org.eclipse.ecf.provider.etcd3/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ecf.provider.etcd3/.settings/org.eclipse.jdt.core.prefs index 3973c73..f605d52 100644 --- a/org.eclipse.ecf.provider.etcd3/.settings/org.eclipse.jdt.core.prefs +++ b/org.eclipse.ecf.provider.etcd3/.settings/org.eclipse.jdt.core.prefs @@ -10,9 +10,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary= org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=17 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -74,7 +74,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled @@ -113,5 +113,5 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/org.eclipse.ecf.provider.etcd3/bnd.bnd b/org.eclipse.ecf.provider.etcd3/bnd.bnd index d10d07f..e8d296e 100644 --- a/org.eclipse.ecf.provider.etcd3/bnd.bnd +++ b/org.eclipse.ecf.provider.etcd3/bnd.bnd @@ -7,13 +7,13 @@ -buildpath: \ org.apache.tomcat:annotations-api,\ com.google.guava:guava,\ - com.salesforce.servicelibs:rx3grpc-stub,\ - com.salesforce.servicelibs:reactive-grpc-common,\ - io.grpc:grpc-api,\ - io.grpc:grpc-protobuf,\ - io.grpc:grpc-stub,\ - io.grpc:grpc-context,\ - io.reactivex.rxjava3:rxjava,\ + com.salesforce.servicelibs.reactive-grpc-common,\ + com.salesforce.servicelibs.rx3grpc-stub,\ + wrapped.io.grpc.grpc-api,\ + wrapped.io.grpc.grpc-protobuf,\ + wrapped.io.grpc.grpc-stub,\ + wrapped.io.grpc.grpc-context,\ + io.reactivex.rxjava3.rxjava,\ org.osgi.framework,\ org.eclipse.ecf,\ org.eclipse.ecf.discovery,\ @@ -24,18 +24,18 @@ org.eclipse.core.jobs,\ org.json,\ org.eclipse.equinox.concurrent,\ - com.google.protobuf,\ - org.reactivestreams.reactive-streams,\ - slf4j.api + wrapped.com.google.protobuf.protobuf-java,\ + slf4j.api,\ + reactive-streams -javac.source=1.8 -javac.target=1.8 +javac.source=17 +javac.target=17 package-version = 1.0.2 -Bundle-Version: 1.1.0.${tstamp} +Bundle-Version: 1.2.0.${tstamp} -runfw: org.apache.felix.framework;version='[7.0.0,7.0.0]' --runee: JavaSE-1.8 +-runee: JavaSE-17 Import-Package: com.google.common.util.concurrent;version="26.0", org.osgi.framework, * diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmMember.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmMember.java index 4c43bc2..8f07588 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmMember.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmMember.java @@ -26,59 +26,6 @@ protected java.lang.Object newInstance( return new AlarmMember(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AlarmMember( - 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; - case 8: { - - memberID_ = input.readUInt64(); - break; - } - case 16: { - int rawValue = input.readEnum(); - - alarm_ = rawValue; - 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AlarmMember_descriptor; @@ -93,7 +40,7 @@ private AlarmMember( } public static final int MEMBERID_FIELD_NUMBER = 1; - private long memberID_; + private long memberID_ = 0L; /** *
    * memberID is the ID of the member associated with the raised alarm.
@@ -108,7 +55,7 @@ public long getMemberID() {
   }
 
   public static final int ALARM_FIELD_NUMBER = 2;
-  private int alarm_;
+  private int alarm_ = 0;
   /**
    * 
    * alarm is the type of alarm which has been raised.
@@ -129,8 +76,7 @@ public long getMemberID() {
    * @return The alarm.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType getAlarm() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.valueOf(alarm_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.forNumber(alarm_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.UNRECOGNIZED : result;
   }
 
@@ -154,7 +100,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (alarm_ != org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.NONE.getNumber()) {
       output.writeEnum(2, alarm_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -171,7 +117,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(2, alarm_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -189,7 +135,7 @@ public boolean equals(final java.lang.Object obj) {
     if (getMemberID()
         != other.getMemberID()) return false;
     if (alarm_ != other.alarm_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -205,7 +151,7 @@ public int hashCode() {
         getMemberID());
     hash = (37 * hash) + ALARM_FIELD_NUMBER;
     hash = (53 * hash) + alarm_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -322,26 +268,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember.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;
       memberID_ = 0L;
-
       alarm_ = 0;
-
       return this;
     }
 
@@ -368,44 +308,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember result = new org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember(this);
-      result.memberID_ = memberID_;
-      result.alarm_ = alarm_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.memberID_ = memberID_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.alarm_ = alarm_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember) {
@@ -424,7 +341,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember oth
       if (other.alarm_ != 0) {
         setAlarmValue(other.getAlarmValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -439,19 +356,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              memberID_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              alarm_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long memberID_ ;
     /**
@@ -476,8 +417,9 @@ public long getMemberID() {
      * @return This builder for chaining.
      */
     public Builder setMemberID(long value) {
-      
+
       memberID_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -490,7 +432,7 @@ public Builder setMemberID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMemberID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       memberID_ = 0L;
       onChanged();
       return this;
@@ -518,8 +460,8 @@ public Builder clearMemberID() {
      * @return This builder for chaining.
      */
     public Builder setAlarmValue(int value) {
-      
       alarm_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -533,8 +475,7 @@ public Builder setAlarmValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType getAlarm() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.valueOf(alarm_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.forNumber(alarm_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.UNRECOGNIZED : result;
     }
     /**
@@ -550,7 +491,7 @@ public Builder setAlarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType value)
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       alarm_ = value.getNumber();
       onChanged();
       return this;
@@ -564,7 +505,7 @@ public Builder setAlarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType value)
      * @return This builder for chaining.
      */
     public Builder clearAlarm() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       alarm_ = 0;
       onChanged();
       return this;
@@ -602,7 +543,18 @@ public AlarmMember parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AlarmMember(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmRequest.java
index d46071b..d51e572 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmRequest.java
@@ -27,65 +27,6 @@ protected java.lang.Object newInstance(
     return new AlarmRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AlarmRequest(
-      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;
-          case 8: {
-            int rawValue = input.readEnum();
-
-            action_ = rawValue;
-            break;
-          }
-          case 16: {
-
-            memberID_ = input.readUInt64();
-            break;
-          }
-          case 24: {
-            int rawValue = input.readEnum();
-
-            alarm_ = rawValue;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AlarmRequest_descriptor;
@@ -217,7 +158,7 @@ private AlarmAction(int value) {
   }
 
   public static final int ACTION_FIELD_NUMBER = 1;
-  private int action_;
+  private int action_ = 0;
   /**
    * 
    * action is the kind of alarm request to issue. The action
@@ -242,13 +183,12 @@ private AlarmAction(int value) {
    * @return The action.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction getAction() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.valueOf(action_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.forNumber(action_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.UNRECOGNIZED : result;
   }
 
   public static final int MEMBERID_FIELD_NUMBER = 2;
-  private long memberID_;
+  private long memberID_ = 0L;
   /**
    * 
    * memberID is the ID of the member associated with the alarm. If memberID is 0, the
@@ -264,7 +204,7 @@ public long getMemberID() {
   }
 
   public static final int ALARM_FIELD_NUMBER = 3;
-  private int alarm_;
+  private int alarm_ = 0;
   /**
    * 
    * alarm is the type of alarm to consider for this request.
@@ -285,8 +225,7 @@ public long getMemberID() {
    * @return The alarm.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType getAlarm() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.valueOf(alarm_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.forNumber(alarm_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.UNRECOGNIZED : result;
   }
 
@@ -313,7 +252,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (alarm_ != org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.NONE.getNumber()) {
       output.writeEnum(3, alarm_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -334,7 +273,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(3, alarm_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -353,7 +292,7 @@ public boolean equals(final java.lang.Object obj) {
     if (getMemberID()
         != other.getMemberID()) return false;
     if (alarm_ != other.alarm_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -371,7 +310,7 @@ public int hashCode() {
         getMemberID());
     hash = (37 * hash) + ALARM_FIELD_NUMBER;
     hash = (53 * hash) + alarm_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -488,28 +427,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.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;
       action_ = 0;
-
       memberID_ = 0L;
-
       alarm_ = 0;
-
       return this;
     }
 
@@ -536,45 +468,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest(this);
-      result.action_ = action_;
-      result.memberID_ = memberID_;
-      result.alarm_ = alarm_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.action_ = action_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.memberID_ = memberID_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.alarm_ = alarm_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest) {
@@ -596,7 +507,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest ot
       if (other.alarm_ != 0) {
         setAlarmValue(other.getAlarmValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -611,19 +522,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              action_ = input.readEnum();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              memberID_ = input.readUInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              alarm_ = input.readEnum();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int action_ = 0;
     /**
@@ -651,8 +591,8 @@ public Builder mergeFrom(
      * @return This builder for chaining.
      */
     public Builder setActionValue(int value) {
-      
       action_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -668,8 +608,7 @@ public Builder setActionValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction getAction() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.valueOf(action_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.forNumber(action_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.AlarmAction.UNRECOGNIZED : result;
     }
     /**
@@ -687,7 +626,7 @@ public Builder setAction(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.Al
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000001;
       action_ = value.getNumber();
       onChanged();
       return this;
@@ -703,7 +642,7 @@ public Builder setAction(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest.Al
      * @return This builder for chaining.
      */
     public Builder clearAction() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       action_ = 0;
       onChanged();
       return this;
@@ -734,8 +673,9 @@ public long getMemberID() {
      * @return This builder for chaining.
      */
     public Builder setMemberID(long value) {
-      
+
       memberID_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -749,7 +689,7 @@ public Builder setMemberID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMemberID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       memberID_ = 0L;
       onChanged();
       return this;
@@ -777,8 +717,8 @@ public Builder clearMemberID() {
      * @return This builder for chaining.
      */
     public Builder setAlarmValue(int value) {
-      
       alarm_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -792,8 +732,7 @@ public Builder setAlarmValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType getAlarm() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.valueOf(alarm_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType result = org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.forNumber(alarm_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType.UNRECOGNIZED : result;
     }
     /**
@@ -809,7 +748,7 @@ public Builder setAlarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType value)
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000004;
       alarm_ = value.getNumber();
       onChanged();
       return this;
@@ -823,7 +762,7 @@ public Builder setAlarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmType value)
      * @return This builder for chaining.
      */
     public Builder clearAlarm() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       alarm_ = 0;
       onChanged();
       return this;
@@ -861,7 +800,18 @@ public AlarmRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AlarmRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmResponse.java
index d9b469e..4ab2f26 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AlarmResponse.java
@@ -26,74 +26,6 @@ protected java.lang.Object newInstance(
     return new AlarmResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AlarmResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              alarms_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            alarms_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember.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)) {
-        alarms_ = java.util.Collections.unmodifiableList(alarms_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AlarmResponse_descriptor;
@@ -130,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ALARMS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List alarms_;
   /**
    * 
@@ -213,7 +146,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < alarms_.size(); i++) {
       output.writeMessage(2, alarms_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -230,7 +163,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, alarms_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -252,7 +185,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getAlarmsList()
         .equals(other.getAlarmsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -271,7 +204,7 @@ public int hashCode() {
       hash = (37 * hash) + ALARMS_FIELD_NUMBER;
       hash = (53 * hash) + getAlarmsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -388,35 +321,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getAlarmsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (alarmsBuilder_ == null) {
         alarms_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        alarms_ = null;
         alarmsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -443,57 +371,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse result) {
       if (alarmsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           alarms_ = java.util.Collections.unmodifiableList(alarms_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.alarms_ = alarms_;
       } else {
         result.alarms_ = alarmsBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse) {
@@ -513,7 +417,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse o
         if (!other.alarms_.isEmpty()) {
           if (alarms_.isEmpty()) {
             alarms_ = other.alarms_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureAlarmsIsMutable();
             alarms_.addAll(other.alarms_);
@@ -526,7 +430,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse o
             alarmsBuilder_.dispose();
             alarmsBuilder_ = null;
             alarms_ = other.alarms_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             alarmsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getAlarmsFieldBuilder() : null;
@@ -535,7 +439,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse o
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -550,17 +454,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember.parser(),
+                      extensionRegistry);
+              if (alarmsBuilder_ == null) {
+                ensureAlarmsIsMutable();
+                alarms_.add(m);
+              } else {
+                alarmsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -573,7 +510,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -595,11 +532,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -609,11 +546,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -621,38 +558,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -687,9 +624,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List alarms_ =
       java.util.Collections.emptyList();
     private void ensureAlarmsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         alarms_ = new java.util.ArrayList(alarms_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -883,7 +820,7 @@ public Builder addAllAlarms(
     public Builder clearAlarms() {
       if (alarmsBuilder_ == null) {
         alarms_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         alarmsBuilder_.clear();
@@ -988,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember.Builder addAlarmsBuil
         alarmsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember, org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMember.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.AlarmMemberOrBuilder>(
                 alarms_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         alarms_ = null;
@@ -1028,7 +965,18 @@ public AlarmResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AlarmResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableRequest.java
index 70c2427..d699a27 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthDisableRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthDisableRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthDisableRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest buildPartial()
       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.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public AuthDisableRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthDisableRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableResponse.java
index defeb62..e86e85e 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthDisableResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthDisableResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthDisableResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthDisableResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResp
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthDisableResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthDisableResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableRequest.java
index 911c75a..fa5f872 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthEnableRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthEnableRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthEnableRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest buildPartial()
       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.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public AuthEnableRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthEnableRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableResponse.java
index 6537723..7998890 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthEnableResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthEnableResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthEnableResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthEnableResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRespo
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthEnableResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthEnableResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthGrpc.java
index a26fadd..7e8061f 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthGrpc.java
@@ -5,8 +5,9 @@
 /**
  */
 @javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.39.0)",
+    value = "by gRPC proto compiler (version 1.54.0)",
     comments = "Source: rpc.proto")
+@io.grpc.stub.annotations.GrpcGenerated
 public final class AuthGrpc {
 
   private AuthGrpc() {}
@@ -556,14 +557,14 @@ public AuthFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callO
 
   /**
    */
-  public static abstract class AuthImplBase implements io.grpc.BindableService {
+  public interface AsyncService {
 
     /**
      * 
      * AuthEnable enables authentication.
      * 
*/ - public void authEnable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest request, + default void authEnable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getAuthEnableMethod(), responseObserver); } @@ -573,7 +574,7 @@ public void authEnable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest * AuthDisable disables authentication. *
*/ - public void authDisable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest request, + default void authDisable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getAuthDisableMethod(), responseObserver); } @@ -583,7 +584,7 @@ public void authDisable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableReque * Authenticate processes an authenticate request. *
*/ - public void authenticate(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest request, + default void authenticate(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getAuthenticateMethod(), responseObserver); } @@ -593,7 +594,7 @@ public void authenticate(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateReq * UserAdd adds a new user. *
*/ - public void userAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest request, + default void userAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserAddMethod(), responseObserver); } @@ -603,7 +604,7 @@ public void userAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest r * UserGet gets detailed user information. *
*/ - public void userGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest request, + default void userGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserGetMethod(), responseObserver); } @@ -613,7 +614,7 @@ public void userGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest r * UserList gets a list of all users. *
*/ - public void userList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest request, + default void userList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserListMethod(), responseObserver); } @@ -623,7 +624,7 @@ public void userList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest * UserDelete deletes a specified user. *
*/ - public void userDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest request, + default void userDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserDeleteMethod(), responseObserver); } @@ -633,7 +634,7 @@ public void userDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteReq * UserChangePassword changes the password of a specified user. * */ - public void userChangePassword(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest request, + default void userChangePassword(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserChangePasswordMethod(), responseObserver); } @@ -643,7 +644,7 @@ public void userChangePassword(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserC * UserGrant grants a role to a specified user. * */ - public void userGrantRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest request, + default void userGrantRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserGrantRoleMethod(), responseObserver); } @@ -653,7 +654,7 @@ public void userGrantRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantR * UserRevokeRole revokes a role of specified user. * */ - public void userRevokeRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest request, + default void userRevokeRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUserRevokeRoleMethod(), responseObserver); } @@ -663,7 +664,7 @@ public void userRevokeRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevok * RoleAdd adds a new role. * */ - public void roleAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest request, + default void roleAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleAddMethod(), responseObserver); } @@ -673,7 +674,7 @@ public void roleAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest r * RoleGet gets detailed role information. * */ - public void roleGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest request, + default void roleGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleGetMethod(), responseObserver); } @@ -683,7 +684,7 @@ public void roleGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest r * RoleList gets lists of all roles. * */ - public void roleList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest request, + default void roleList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleListMethod(), responseObserver); } @@ -693,7 +694,7 @@ public void roleList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest * RoleDelete deletes a specified role. * */ - public void roleDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest request, + default void roleDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleDeleteMethod(), responseObserver); } @@ -703,7 +704,7 @@ public void roleDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteReq * RoleGrantPermission grants a permission of a specified key or range to a specified role. * */ - public void roleGrantPermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest request, + default void roleGrantPermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleGrantPermissionMethod(), responseObserver); } @@ -713,132 +714,28 @@ public void roleGrantPermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRole * RoleRevokePermission revokes a key or range permission of a specified role. * */ - public void roleRevokePermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest request, + default void roleRevokePermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRoleRevokePermissionMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Auth. + */ + public static abstract class AuthImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getAuthEnableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse>( - this, METHODID_AUTH_ENABLE))) - .addMethod( - getAuthDisableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse>( - this, METHODID_AUTH_DISABLE))) - .addMethod( - getAuthenticateMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse>( - this, METHODID_AUTHENTICATE))) - .addMethod( - getUserAddMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse>( - this, METHODID_USER_ADD))) - .addMethod( - getUserGetMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse>( - this, METHODID_USER_GET))) - .addMethod( - getUserListMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse>( - this, METHODID_USER_LIST))) - .addMethod( - getUserDeleteMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse>( - this, METHODID_USER_DELETE))) - .addMethod( - getUserChangePasswordMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse>( - this, METHODID_USER_CHANGE_PASSWORD))) - .addMethod( - getUserGrantRoleMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse>( - this, METHODID_USER_GRANT_ROLE))) - .addMethod( - getUserRevokeRoleMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse>( - this, METHODID_USER_REVOKE_ROLE))) - .addMethod( - getRoleAddMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse>( - this, METHODID_ROLE_ADD))) - .addMethod( - getRoleGetMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse>( - this, METHODID_ROLE_GET))) - .addMethod( - getRoleListMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse>( - this, METHODID_ROLE_LIST))) - .addMethod( - getRoleDeleteMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse>( - this, METHODID_ROLE_DELETE))) - .addMethod( - getRoleGrantPermissionMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse>( - this, METHODID_ROLE_GRANT_PERMISSION))) - .addMethod( - getRoleRevokePermissionMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse>( - this, METHODID_ROLE_REVOKE_PERMISSION))) - .build(); + return AuthGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service Auth. */ - public static final class AuthStub extends io.grpc.stub.AbstractAsyncStub { + public static final class AuthStub + extends io.grpc.stub.AbstractAsyncStub { private AuthStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -1028,8 +925,10 @@ public void roleRevokePermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRol } /** + * A stub to allow clients to do synchronous rpc calls to service Auth. */ - public static final class AuthBlockingStub extends io.grpc.stub.AbstractBlockingStub { + public static final class AuthBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private AuthBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -1203,8 +1102,10 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service Auth. */ - public static final class AuthFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class AuthFutureStub + extends io.grpc.stub.AbstractFutureStub { private AuthFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -1415,10 +1316,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final AuthImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(AuthImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -1507,6 +1408,123 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getAuthEnableMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableResponse>( + service, METHODID_AUTH_ENABLE))) + .addMethod( + getAuthDisableMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableResponse>( + service, METHODID_AUTH_DISABLE))) + .addMethod( + getAuthenticateMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse>( + service, METHODID_AUTHENTICATE))) + .addMethod( + getUserAddMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse>( + service, METHODID_USER_ADD))) + .addMethod( + getUserGetMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse>( + service, METHODID_USER_GET))) + .addMethod( + getUserListMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse>( + service, METHODID_USER_LIST))) + .addMethod( + getUserDeleteMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse>( + service, METHODID_USER_DELETE))) + .addMethod( + getUserChangePasswordMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse>( + service, METHODID_USER_CHANGE_PASSWORD))) + .addMethod( + getUserGrantRoleMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse>( + service, METHODID_USER_GRANT_ROLE))) + .addMethod( + getUserRevokeRoleMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse>( + service, METHODID_USER_REVOKE_ROLE))) + .addMethod( + getRoleAddMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse>( + service, METHODID_ROLE_ADD))) + .addMethod( + getRoleGetMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse>( + service, METHODID_ROLE_GET))) + .addMethod( + getRoleListMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse>( + service, METHODID_ROLE_LIST))) + .addMethod( + getRoleDeleteMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse>( + service, METHODID_ROLE_DELETE))) + .addMethod( + getRoleGrantPermissionMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse>( + service, METHODID_ROLE_GRANT_PERMISSION))) + .addMethod( + getRoleRevokePermissionMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse>( + service, METHODID_ROLE_REVOKE_PERMISSION))) + .build(); + } + private static abstract class AuthBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { AuthBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddRequest.java index b660c69..9b2ffaa 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddRequest.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddRequest.java @@ -26,54 +26,6 @@ protected java.lang.Object newInstance( return new AuthRoleAddRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AuthRoleAddRequest( - 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; - case 10: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleAddRequest_descriptor; @@ -88,7 +40,8 @@ private AuthRoleAddRequest( } public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** *
    * name is the name of the role to add to the authentication system.
@@ -147,10 +100,10 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -159,10 +112,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -179,7 +132,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -192,7 +145,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -309,24 +262,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest.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;
       name_ = "";
-
       return this;
     }
 
@@ -353,43 +301,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest) {
@@ -404,9 +327,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequ
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -421,19 +345,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -488,11 +431,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -505,8 +446,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -521,12 +462,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -563,7 +502,18 @@ public AuthRoleAddRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleAddRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddResponse.java
index 6f811e2..8b2aa76 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleAddResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleAddResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleAddResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleAddResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResp
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthRoleAddResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleAddResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteRequest.java
index d318428..267bf9a 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteRequest.java
@@ -26,54 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleDeleteRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleDeleteRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            role_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleDeleteRequest_descriptor;
@@ -88,7 +40,8 @@ private AuthRoleDeleteRequest(
   }
 
   public static final int ROLE_FIELD_NUMBER = 1;
-  private volatile java.lang.Object role_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object role_ = "";
   /**
    * string role = 1;
    * @return The role.
@@ -139,10 +92,10 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, role_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -151,10 +104,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, role_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -171,7 +124,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getRole()
         .equals(other.getRole())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +137,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + ROLE_FIELD_NUMBER;
     hash = (53 * hash) + getRole().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,24 +254,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest.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;
       role_ = "";
-
       return this;
     }
 
@@ -345,43 +293,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest(this);
-      result.role_ = role_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.role_ = role_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest) {
@@ -396,9 +319,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteR
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest.getDefaultInstance()) return this;
       if (!other.getRole().isEmpty()) {
         role_ = other.role_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -413,19 +337,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              role_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object role_ = "";
     /**
@@ -468,11 +411,9 @@ public java.lang.String getRole() {
      */
     public Builder setRole(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -481,8 +422,8 @@ public Builder setRole(
      * @return This builder for chaining.
      */
     public Builder clearRole() {
-      
       role_ = getDefaultInstance().getRole();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -493,12 +434,10 @@ public Builder clearRole() {
      */
     public Builder setRoleBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -535,7 +474,18 @@ public AuthRoleDeleteRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleDeleteRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteResponse.java
index 13f7295..cf872e5 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleDeleteResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleDeleteResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleDeleteResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleDeleteResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteR
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthRoleDeleteResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleDeleteResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetRequest.java
index 043c737..681b6e2 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetRequest.java
@@ -26,54 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleGetRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleGetRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            role_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleGetRequest_descriptor;
@@ -88,7 +40,8 @@ private AuthRoleGetRequest(
   }
 
   public static final int ROLE_FIELD_NUMBER = 1;
-  private volatile java.lang.Object role_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object role_ = "";
   /**
    * string role = 1;
    * @return The role.
@@ -139,10 +92,10 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, role_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -151,10 +104,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, role_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -171,7 +124,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getRole()
         .equals(other.getRole())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +137,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + ROLE_FIELD_NUMBER;
     hash = (53 * hash) + getRole().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,24 +254,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest.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;
       role_ = "";
-
       return this;
     }
 
@@ -345,43 +293,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest(this);
-      result.role_ = role_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.role_ = role_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest) {
@@ -396,9 +319,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequ
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest.getDefaultInstance()) return this;
       if (!other.getRole().isEmpty()) {
         role_ = other.role_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -413,19 +337,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              role_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object role_ = "";
     /**
@@ -468,11 +411,9 @@ public java.lang.String getRole() {
      */
     public Builder setRole(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -481,8 +422,8 @@ public Builder setRole(
      * @return This builder for chaining.
      */
     public Builder clearRole() {
-      
       role_ = getDefaultInstance().getRole();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -493,12 +434,10 @@ public Builder clearRole() {
      */
     public Builder setRoleBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -535,7 +474,18 @@ public AuthRoleGetRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleGetRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetResponse.java
index d94137a..bb17530 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGetResponse.java
@@ -26,74 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleGetResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleGetResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              perm_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            perm_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.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)) {
-        perm_ = java.util.Collections.unmodifiableList(perm_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleGetResponse_descriptor;
@@ -130,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int PERM_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List perm_;
   /**
    * repeated .authpb.Permission perm = 2;
@@ -193,7 +126,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < perm_.size(); i++) {
       output.writeMessage(2, perm_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -210,7 +143,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, perm_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -232,7 +165,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getPermList()
         .equals(other.getPermList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -251,7 +184,7 @@ public int hashCode() {
       hash = (37 * hash) + PERM_FIELD_NUMBER;
       hash = (53 * hash) + getPermList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -368,35 +301,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getPermFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (permBuilder_ == null) {
         perm_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        perm_ = null;
         permBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -423,57 +351,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse result) {
       if (permBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           perm_ = java.util.Collections.unmodifiableList(perm_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.perm_ = perm_;
       } else {
         result.perm_ = permBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse) {
@@ -493,7 +397,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResp
         if (!other.perm_.isEmpty()) {
           if (perm_.isEmpty()) {
             perm_ = other.perm_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensurePermIsMutable();
             perm_.addAll(other.perm_);
@@ -506,7 +410,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResp
             permBuilder_.dispose();
             permBuilder_ = null;
             perm_ = other.perm_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             permBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getPermFieldBuilder() : null;
@@ -515,7 +419,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResp
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -530,17 +434,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.parser(),
+                      extensionRegistry);
+              if (permBuilder_ == null) {
+                ensurePermIsMutable();
+                perm_.add(m);
+              } else {
+                permBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -553,7 +490,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -575,11 +512,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -589,11 +526,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -601,38 +538,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -667,9 +604,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List perm_ =
       java.util.Collections.emptyList();
     private void ensurePermIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         perm_ = new java.util.ArrayList(perm_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -819,7 +756,7 @@ public Builder addAllPerm(
     public Builder clearPerm() {
       if (permBuilder_ == null) {
         perm_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         permBuilder_.clear();
@@ -896,7 +833,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder addPermBu
         permBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission, org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.auth.PermissionOrBuilder>(
                 perm_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         perm_ = null;
@@ -936,7 +873,18 @@ public AuthRoleGetResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleGetResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionRequest.java
index 8959d6e..225eafa 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionRequest.java
@@ -26,67 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleGrantPermissionRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleGrantPermissionRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder subBuilder = null;
-            if (perm_ != null) {
-              subBuilder = perm_.toBuilder();
-            }
-            perm_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(perm_);
-              perm_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleGrantPermissionRequest_descriptor;
@@ -101,7 +40,8 @@ private AuthRoleGrantPermissionRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * name is the name of the role which will be granted the permission.
@@ -181,7 +121,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission getPerm() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.auth.PermissionOrBuilder getPermOrBuilder() {
-    return getPerm();
+    return perm_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.getDefaultInstance() : perm_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -198,13 +138,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
     if (perm_ != null) {
       output.writeMessage(2, getPerm());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -213,14 +153,14 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
     if (perm_ != null) {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getPerm());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -242,7 +182,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getPerm()
           .equals(other.getPerm())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -259,7 +199,7 @@ public int hashCode() {
       hash = (37 * hash) + PERM_FIELD_NUMBER;
       hash = (53 * hash) + getPerm().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -376,28 +316,22 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest.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;
       name_ = "";
-
-      if (permBuilder_ == null) {
-        perm_ = null;
-      } else {
-        perm_ = null;
+      perm_ = null;
+      if (permBuilder_ != null) {
+        permBuilder_.dispose();
         permBuilder_ = null;
       }
       return this;
@@ -426,48 +360,23 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest bu
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest(this);
-      result.name_ = name_;
-      if (permBuilder_ == null) {
-        result.perm_ = perm_;
-      } else {
-        result.perm_ = permBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.perm_ = permBuilder_ == null
+            ? perm_
+            : permBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest) {
@@ -482,12 +391,13 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPe
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasPerm()) {
         mergePerm(other.getPerm());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -502,19 +412,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getPermFieldBuilder().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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -569,11 +505,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -586,8 +520,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -602,12 +536,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -624,7 +556,7 @@ public Builder setNameBytes(
      * @return Whether the perm field is set.
      */
     public boolean hasPerm() {
-      return permBuilder_ != null || perm_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -654,11 +586,11 @@ public Builder setPerm(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission v
           throw new NullPointerException();
         }
         perm_ = value;
-        onChanged();
       } else {
         permBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -672,11 +604,11 @@ public Builder setPerm(
         org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder builderForValue) {
       if (permBuilder_ == null) {
         perm_ = builderForValue.build();
-        onChanged();
       } else {
         permBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -688,17 +620,18 @@ public Builder setPerm(
      */
     public Builder mergePerm(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission value) {
       if (permBuilder_ == null) {
-        if (perm_ != null) {
-          perm_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.newBuilder(perm_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          perm_ != null &&
+          perm_ != org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.getDefaultInstance()) {
+          getPermBuilder().mergeFrom(value);
         } else {
           perm_ = value;
         }
-        onChanged();
       } else {
         permBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -709,14 +642,13 @@ public Builder mergePerm(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission
      * .authpb.Permission perm = 2;
      */
     public Builder clearPerm() {
-      if (permBuilder_ == null) {
-        perm_ = null;
-        onChanged();
-      } else {
-        perm_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      perm_ = null;
+      if (permBuilder_ != null) {
+        permBuilder_.dispose();
         permBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -727,7 +659,7 @@ public Builder clearPerm() {
      * .authpb.Permission perm = 2;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder getPermBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getPermFieldBuilder().getBuilder();
     }
@@ -799,7 +731,18 @@ public AuthRoleGrantPermissionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleGrantPermissionRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionResponse.java
index b22820e..8d3ecd8 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleGrantPermissionResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleGrantPermissionResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleGrantPermissionResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleGrantPermissionResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse b
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPe
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthRoleGrantPermissionResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleGrantPermissionResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListRequest.java
index 6b83c9e..81b2ac8 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleListRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleListRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleListRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest buildPartial(
       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.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public AuthRoleListRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleListRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListResponse.java
index e67a55d..c46a4e3 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleListResponse.java
@@ -16,7 +16,8 @@ private AuthRoleListResponse(com.google.protobuf.GeneratedMessageV3.Builder b
     super(builder);
   }
   private AuthRoleListResponse() {
-    roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
   }
 
   @java.lang.Override
@@ -26,74 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleListResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleListResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              roles_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            roles_.add(s);
-            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)) {
-        roles_ = roles_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleListResponse_descriptor;
@@ -130,11 +63,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ROLES_FIELD_NUMBER = 2;
-  private com.google.protobuf.LazyStringList roles_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList roles_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * repeated string roles = 2;
    * @return A list containing the roles.
@@ -188,7 +123,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < roles_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, roles_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -209,7 +144,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getRolesList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -231,7 +166,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getRolesList()
         .equals(other.getRolesList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -250,7 +185,7 @@ public int hashCode() {
       hash = (37 * hash) + ROLES_FIELD_NUMBER;
       hash = (53 * hash) + getRolesList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -367,30 +302,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-      roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      roles_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -417,53 +347,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      if (((bitField0_ & 0x00000001) != 0)) {
-        roles_ = roles_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.roles_ = roles_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        roles_.makeImmutable();
+        result.roles_ = roles_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse) {
@@ -482,14 +383,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRes
       if (!other.roles_.isEmpty()) {
         if (roles_.isEmpty()) {
           roles_ = other.roles_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000002;
         } else {
           ensureRolesIsMutable();
           roles_.addAll(other.roles_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -504,17 +405,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureRolesIsMutable();
+              roles_.add(s);
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -527,7 +454,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -549,11 +476,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -563,11 +490,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -575,38 +502,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -638,12 +565,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
       return headerBuilder_;
     }
 
-    private com.google.protobuf.LazyStringList roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensureRolesIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!roles_.isModifiable()) {
         roles_ = new com.google.protobuf.LazyStringArrayList(roles_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000002;
     }
     /**
      * repeated string roles = 2;
@@ -651,7 +579,8 @@ private void ensureRolesIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getRolesList() {
-      return roles_.getUnmodifiableView();
+      roles_.makeImmutable();
+      return roles_;
     }
     /**
      * repeated string roles = 2;
@@ -685,11 +614,10 @@ public java.lang.String getRoles(int index) {
      */
     public Builder setRoles(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRolesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRolesIsMutable();
       roles_.set(index, value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -700,11 +628,10 @@ public Builder setRoles(
      */
     public Builder addRoles(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRolesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRolesIsMutable();
       roles_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -718,6 +645,7 @@ public Builder addAllRoles(
       ensureRolesIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, roles_);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -726,8 +654,9 @@ public Builder addAllRoles(
      * @return This builder for chaining.
      */
     public Builder clearRoles() {
-      roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000002);;
       onChanged();
       return this;
     }
@@ -738,12 +667,11 @@ public Builder clearRoles() {
      */
     public Builder addRolesBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureRolesIsMutable();
       roles_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -780,7 +708,18 @@ public AuthRoleListResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleListResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionRequest.java
index 8dfffe6..6dc3240 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionRequest.java
@@ -28,66 +28,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleRevokePermissionRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleRevokePermissionRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            role_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            key_ = s;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            rangeEnd_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleRevokePermissionRequest_descriptor;
@@ -102,7 +42,8 @@ private AuthRoleRevokePermissionRequest(
   }
 
   public static final int ROLE_FIELD_NUMBER = 1;
-  private volatile java.lang.Object role_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object role_ = "";
   /**
    * string role = 1;
    * @return The role.
@@ -140,7 +81,8 @@ public java.lang.String getRole() {
   }
 
   public static final int KEY_FIELD_NUMBER = 2;
-  private volatile java.lang.Object key_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object key_ = "";
   /**
    * string key = 2;
    * @return The key.
@@ -178,7 +120,8 @@ public java.lang.String getKey() {
   }
 
   public static final int RANGE_END_FIELD_NUMBER = 3;
-  private volatile java.lang.Object rangeEnd_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object rangeEnd_ = "";
   /**
    * string range_end = 3;
    * @return The rangeEnd.
@@ -229,16 +172,16 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, role_);
     }
-    if (!getKeyBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, key_);
     }
-    if (!getRangeEndBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rangeEnd_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, rangeEnd_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -247,16 +190,16 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, role_);
     }
-    if (!getKeyBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_);
     }
-    if (!getRangeEndBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rangeEnd_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, rangeEnd_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -277,7 +220,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getKey())) return false;
     if (!getRangeEnd()
         .equals(other.getRangeEnd())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -294,7 +237,7 @@ public int hashCode() {
     hash = (53 * hash) + getKey().hashCode();
     hash = (37 * hash) + RANGE_END_FIELD_NUMBER;
     hash = (53 * hash) + getRangeEnd().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -411,28 +354,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest.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;
       role_ = "";
-
       key_ = "";
-
       rangeEnd_ = "";
-
       return this;
     }
 
@@ -459,45 +395,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest b
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest(this);
-      result.role_ = role_;
-      result.key_ = key_;
-      result.rangeEnd_ = rangeEnd_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.role_ = role_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.rangeEnd_ = rangeEnd_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest) {
@@ -512,17 +427,20 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokeP
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest.getDefaultInstance()) return this;
       if (!other.getRole().isEmpty()) {
         role_ = other.role_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getKey().isEmpty()) {
         key_ = other.key_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (!other.getRangeEnd().isEmpty()) {
         rangeEnd_ = other.rangeEnd_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -537,19 +455,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              role_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              key_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              rangeEnd_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object role_ = "";
     /**
@@ -592,11 +539,9 @@ public java.lang.String getRole() {
      */
     public Builder setRole(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -605,8 +550,8 @@ public Builder setRole(
      * @return This builder for chaining.
      */
     public Builder clearRole() {
-      
       role_ = getDefaultInstance().getRole();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -617,12 +562,10 @@ public Builder clearRole() {
      */
     public Builder setRoleBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       role_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -668,11 +611,9 @@ public java.lang.String getKey() {
      */
     public Builder setKey(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -681,8 +622,8 @@ public Builder setKey(
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
       key_ = getDefaultInstance().getKey();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -693,12 +634,10 @@ public Builder clearKey() {
      */
     public Builder setKeyBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       key_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -744,11 +683,9 @@ public java.lang.String getRangeEnd() {
      */
     public Builder setRangeEnd(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       rangeEnd_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -757,8 +694,8 @@ public Builder setRangeEnd(
      * @return This builder for chaining.
      */
     public Builder clearRangeEnd() {
-      
       rangeEnd_ = getDefaultInstance().getRangeEnd();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -769,12 +706,10 @@ public Builder clearRangeEnd() {
      */
     public Builder setRangeEndBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       rangeEnd_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -811,7 +746,18 @@ public AuthRoleRevokePermissionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleRevokePermissionRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionResponse.java
index 402fa8f..4e74231 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthRoleRevokePermissionResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthRoleRevokePermissionResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthRoleRevokePermissionResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthRoleRevokePermissionResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokeP
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthRoleRevokePermissionResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthRoleRevokePermissionResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddRequest.java
index 031c71e..1835286 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddRequest.java
@@ -27,60 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserAddRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserAddRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            password_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserAddRequest_descriptor;
@@ -95,7 +41,8 @@ private AuthUserAddRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -133,7 +80,8 @@ public java.lang.String getName() {
   }
 
   public static final int PASSWORD_FIELD_NUMBER = 2;
-  private volatile java.lang.Object password_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object password_ = "";
   /**
    * string password = 2;
    * @return The password.
@@ -184,13 +132,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -199,13 +147,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -224,7 +172,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getPassword()
         .equals(other.getPassword())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -239,7 +187,7 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
     hash = (53 * hash) + getPassword().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -356,26 +304,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest.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;
       name_ = "";
-
       password_ = "";
-
       return this;
     }
 
@@ -402,44 +344,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest(this);
-      result.name_ = name_;
-      result.password_ = password_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.password_ = password_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest) {
@@ -454,13 +373,15 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequ
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getPassword().isEmpty()) {
         password_ = other.password_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,19 +396,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              password_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -530,11 +475,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -543,8 +486,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -555,12 +498,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -606,11 +547,9 @@ public java.lang.String getPassword() {
      */
     public Builder setPassword(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -619,8 +558,8 @@ public Builder setPassword(
      * @return This builder for chaining.
      */
     public Builder clearPassword() {
-      
       password_ = getDefaultInstance().getPassword();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -631,12 +570,10 @@ public Builder clearPassword() {
      */
     public Builder setPasswordBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -673,7 +610,18 @@ public AuthUserAddRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserAddRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddResponse.java
index 838e348..0317b10 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserAddResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserAddResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserAddResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserAddResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResp
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthUserAddResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserAddResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordRequest.java
index 81ee7e7..267d401 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordRequest.java
@@ -27,60 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserChangePasswordRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserChangePasswordRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            password_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserChangePasswordRequest_descriptor;
@@ -95,7 +41,8 @@ private AuthUserChangePasswordRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * name is the name of the user whose password is being changed.
@@ -141,7 +88,8 @@ public java.lang.String getName() {
   }
 
   public static final int PASSWORD_FIELD_NUMBER = 2;
-  private volatile java.lang.Object password_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object password_ = "";
   /**
    * 
    * password is the new password for the user.
@@ -200,13 +148,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -215,13 +163,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -240,7 +188,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getPassword()
         .equals(other.getPassword())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -255,7 +203,7 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
     hash = (53 * hash) + getPassword().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -372,26 +320,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest.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;
       name_ = "";
-
       password_ = "";
-
       return this;
     }
 
@@ -418,44 +360,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest bui
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest(this);
-      result.name_ = name_;
-      result.password_ = password_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.password_ = password_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest) {
@@ -470,13 +389,15 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangeP
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getPassword().isEmpty()) {
         password_ = other.password_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -491,19 +412,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              password_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -558,11 +503,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,8 +518,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -591,12 +534,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -654,11 +595,9 @@ public java.lang.String getPassword() {
      */
     public Builder setPassword(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -671,8 +610,8 @@ public Builder setPassword(
      * @return This builder for chaining.
      */
     public Builder clearPassword() {
-      
       password_ = getDefaultInstance().getPassword();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -687,12 +626,10 @@ public Builder clearPassword() {
      */
     public Builder setPasswordBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -729,7 +666,18 @@ public AuthUserChangePasswordRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserChangePasswordRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordResponse.java
index 00b1dc4..fdd193f 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserChangePasswordResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserChangePasswordResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserChangePasswordResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserChangePasswordResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse bu
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangeP
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthUserChangePasswordResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserChangePasswordResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteRequest.java
index d577645..7a65aa2 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteRequest.java
@@ -26,54 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthUserDeleteRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserDeleteRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserDeleteRequest_descriptor;
@@ -88,7 +40,8 @@ private AuthUserDeleteRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * name is the name of the user to delete.
@@ -147,10 +100,10 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -159,10 +112,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -179,7 +132,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -192,7 +145,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -309,24 +262,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest.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;
       name_ = "";
-
       return this;
     }
 
@@ -353,43 +301,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest) {
@@ -404,9 +327,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteR
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -421,19 +345,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -488,11 +431,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -505,8 +446,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -521,12 +462,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -563,7 +502,18 @@ public AuthUserDeleteRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserDeleteRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteResponse.java
index 1902647..54b387a 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserDeleteResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserDeleteResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserDeleteResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserDeleteResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteR
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthUserDeleteResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserDeleteResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetRequest.java
index 71538db..14c5f84 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetRequest.java
@@ -26,54 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthUserGetRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserGetRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserGetRequest_descriptor;
@@ -88,7 +40,8 @@ private AuthUserGetRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -139,10 +92,10 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -151,10 +104,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -171,7 +124,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +137,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,24 +254,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest.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;
       name_ = "";
-
       return this;
     }
 
@@ -345,43 +293,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest) {
@@ -396,9 +319,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequ
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -413,19 +337,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -468,11 +411,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -481,8 +422,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -493,12 +434,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -535,7 +474,18 @@ public AuthUserGetRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserGetRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetResponse.java
index fa9d364..2224b5b 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGetResponse.java
@@ -16,7 +16,8 @@ private AuthUserGetResponse(com.google.protobuf.GeneratedMessageV3.Builder bu
     super(builder);
   }
   private AuthUserGetResponse() {
-    roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
   }
 
   @java.lang.Override
@@ -26,74 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserGetResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserGetResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              roles_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            roles_.add(s);
-            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)) {
-        roles_ = roles_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserGetResponse_descriptor;
@@ -130,11 +63,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ROLES_FIELD_NUMBER = 2;
-  private com.google.protobuf.LazyStringList roles_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList roles_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * repeated string roles = 2;
    * @return A list containing the roles.
@@ -188,7 +123,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < roles_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, roles_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -209,7 +144,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getRolesList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -231,7 +166,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getRolesList()
         .equals(other.getRolesList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -250,7 +185,7 @@ public int hashCode() {
       hash = (37 * hash) + ROLES_FIELD_NUMBER;
       hash = (53 * hash) + getRolesList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -367,30 +302,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-      roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      roles_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -417,53 +347,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      if (((bitField0_ & 0x00000001) != 0)) {
-        roles_ = roles_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.roles_ = roles_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        roles_.makeImmutable();
+        result.roles_ = roles_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse) {
@@ -482,14 +383,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResp
       if (!other.roles_.isEmpty()) {
         if (roles_.isEmpty()) {
           roles_ = other.roles_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000002;
         } else {
           ensureRolesIsMutable();
           roles_.addAll(other.roles_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -504,17 +405,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureRolesIsMutable();
+              roles_.add(s);
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -527,7 +454,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -549,11 +476,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -563,11 +490,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -575,38 +502,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -638,12 +565,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
       return headerBuilder_;
     }
 
-    private com.google.protobuf.LazyStringList roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensureRolesIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!roles_.isModifiable()) {
         roles_ = new com.google.protobuf.LazyStringArrayList(roles_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000002;
     }
     /**
      * repeated string roles = 2;
@@ -651,7 +579,8 @@ private void ensureRolesIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getRolesList() {
-      return roles_.getUnmodifiableView();
+      roles_.makeImmutable();
+      return roles_;
     }
     /**
      * repeated string roles = 2;
@@ -685,11 +614,10 @@ public java.lang.String getRoles(int index) {
      */
     public Builder setRoles(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRolesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRolesIsMutable();
       roles_.set(index, value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -700,11 +628,10 @@ public Builder setRoles(
      */
     public Builder addRoles(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRolesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRolesIsMutable();
       roles_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -718,6 +645,7 @@ public Builder addAllRoles(
       ensureRolesIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, roles_);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -726,8 +654,9 @@ public Builder addAllRoles(
      * @return This builder for chaining.
      */
     public Builder clearRoles() {
-      roles_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      roles_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000002);;
       onChanged();
       return this;
     }
@@ -738,12 +667,11 @@ public Builder clearRoles() {
      */
     public Builder addRolesBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureRolesIsMutable();
       roles_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -780,7 +708,18 @@ public AuthUserGetResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserGetResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleRequest.java
index 325f962..17c1109 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleRequest.java
@@ -27,60 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserGrantRoleRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserGrantRoleRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            user_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            role_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserGrantRoleRequest_descriptor;
@@ -95,7 +41,8 @@ private AuthUserGrantRoleRequest(
   }
 
   public static final int USER_FIELD_NUMBER = 1;
-  private volatile java.lang.Object user_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object user_ = "";
   /**
    * 
    * user is the name of the user which should be granted a given role.
@@ -141,7 +88,8 @@ public java.lang.String getUser() {
   }
 
   public static final int ROLE_FIELD_NUMBER = 2;
-  private volatile java.lang.Object role_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object role_ = "";
   /**
    * 
    * role is the name of the role to grant to the user.
@@ -200,13 +148,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getUserBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(user_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, user_);
     }
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, role_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -215,13 +163,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getUserBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(user_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, user_);
     }
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, role_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -240,7 +188,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getUser())) return false;
     if (!getRole()
         .equals(other.getRole())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -255,7 +203,7 @@ public int hashCode() {
     hash = (53 * hash) + getUser().hashCode();
     hash = (37 * hash) + ROLE_FIELD_NUMBER;
     hash = (53 * hash) + getRole().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -372,26 +320,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest.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;
       user_ = "";
-
       role_ = "";
-
       return this;
     }
 
@@ -418,44 +360,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest build()
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest(this);
-      result.user_ = user_;
-      result.role_ = role_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.user_ = user_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.role_ = role_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest) {
@@ -470,13 +389,15 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRo
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest.getDefaultInstance()) return this;
       if (!other.getUser().isEmpty()) {
         user_ = other.user_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getRole().isEmpty()) {
         role_ = other.role_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -491,19 +412,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              user_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              role_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object user_ = "";
     /**
@@ -558,11 +503,9 @@ public java.lang.String getUser() {
      */
     public Builder setUser(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       user_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,8 +518,8 @@ public Builder setUser(
      * @return This builder for chaining.
      */
     public Builder clearUser() {
-      
       user_ = getDefaultInstance().getUser();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -591,12 +534,10 @@ public Builder clearUser() {
      */
     public Builder setUserBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       user_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -654,11 +595,9 @@ public java.lang.String getRole() {
      */
     public Builder setRole(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       role_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -671,8 +610,8 @@ public Builder setRole(
      * @return This builder for chaining.
      */
     public Builder clearRole() {
-      
       role_ = getDefaultInstance().getRole();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -687,12 +626,10 @@ public Builder clearRole() {
      */
     public Builder setRoleBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       role_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -729,7 +666,18 @@ public AuthUserGrantRoleRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserGrantRoleRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleResponse.java
index 41feb9c..acb4469 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserGrantRoleResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserGrantRoleResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserGrantRoleResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserGrantRoleResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse build()
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRo
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthUserGrantRoleResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserGrantRoleResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListRequest.java
index 4d870ce..c5e3b17 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserListRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserListRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserListRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest buildPartial(
       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.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public AuthUserListRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserListRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListResponse.java
index e6e9814..dc830a7 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserListResponse.java
@@ -16,7 +16,8 @@ private AuthUserListResponse(com.google.protobuf.GeneratedMessageV3.Builder b
     super(builder);
   }
   private AuthUserListResponse() {
-    users_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    users_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
   }
 
   @java.lang.Override
@@ -26,74 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserListResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserListResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              users_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            users_.add(s);
-            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)) {
-        users_ = users_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserListResponse_descriptor;
@@ -130,11 +63,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int USERS_FIELD_NUMBER = 2;
-  private com.google.protobuf.LazyStringList users_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList users_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * repeated string users = 2;
    * @return A list containing the users.
@@ -188,7 +123,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < users_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, users_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -209,7 +144,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getUsersList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -231,7 +166,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getUsersList()
         .equals(other.getUsersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -250,7 +185,7 @@ public int hashCode() {
       hash = (37 * hash) + USERS_FIELD_NUMBER;
       hash = (53 * hash) + getUsersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -367,30 +302,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-      users_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      users_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -417,53 +347,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      if (((bitField0_ & 0x00000001) != 0)) {
-        users_ = users_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.users_ = users_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        users_.makeImmutable();
+        result.users_ = users_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse) {
@@ -482,14 +383,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRes
       if (!other.users_.isEmpty()) {
         if (users_.isEmpty()) {
           users_ = other.users_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000002;
         } else {
           ensureUsersIsMutable();
           users_.addAll(other.users_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -504,17 +405,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureUsersIsMutable();
+              users_.add(s);
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -527,7 +454,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -549,11 +476,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -563,11 +490,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -575,38 +502,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -638,12 +565,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
       return headerBuilder_;
     }
 
-    private com.google.protobuf.LazyStringList users_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList users_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensureUsersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!users_.isModifiable()) {
         users_ = new com.google.protobuf.LazyStringArrayList(users_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000002;
     }
     /**
      * repeated string users = 2;
@@ -651,7 +579,8 @@ private void ensureUsersIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getUsersList() {
-      return users_.getUnmodifiableView();
+      users_.makeImmutable();
+      return users_;
     }
     /**
      * repeated string users = 2;
@@ -685,11 +614,10 @@ public java.lang.String getUsers(int index) {
      */
     public Builder setUsers(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureUsersIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureUsersIsMutable();
       users_.set(index, value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -700,11 +628,10 @@ public Builder setUsers(
      */
     public Builder addUsers(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureUsersIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureUsersIsMutable();
       users_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -718,6 +645,7 @@ public Builder addAllUsers(
       ensureUsersIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, users_);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -726,8 +654,9 @@ public Builder addAllUsers(
      * @return This builder for chaining.
      */
     public Builder clearUsers() {
-      users_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      users_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000002);;
       onChanged();
       return this;
     }
@@ -738,12 +667,11 @@ public Builder clearUsers() {
      */
     public Builder addUsersBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureUsersIsMutable();
       users_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -780,7 +708,18 @@ public AuthUserListResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserListResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleRequest.java
index 34a5a50..7e343f5 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleRequest.java
@@ -27,60 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthUserRevokeRoleRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserRevokeRoleRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            role_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserRevokeRoleRequest_descriptor;
@@ -95,7 +41,8 @@ private AuthUserRevokeRoleRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -133,7 +80,8 @@ public java.lang.String getName() {
   }
 
   public static final int ROLE_FIELD_NUMBER = 2;
-  private volatile java.lang.Object role_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object role_ = "";
   /**
    * string role = 2;
    * @return The role.
@@ -184,13 +132,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, role_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -199,13 +147,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (!getRoleBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(role_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, role_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -224,7 +172,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getRole()
         .equals(other.getRole())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -239,7 +187,7 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + ROLE_FIELD_NUMBER;
     hash = (53 * hash) + getRole().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -356,26 +304,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest.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;
       name_ = "";
-
       role_ = "";
-
       return this;
     }
 
@@ -402,44 +344,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest build()
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest(this);
-      result.name_ = name_;
-      result.role_ = role_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.role_ = role_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest) {
@@ -454,13 +373,15 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeR
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getRole().isEmpty()) {
         role_ = other.role_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,19 +396,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              role_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -530,11 +475,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -543,8 +486,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -555,12 +498,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -606,11 +547,9 @@ public java.lang.String getRole() {
      */
     public Builder setRole(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       role_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -619,8 +558,8 @@ public Builder setRole(
      * @return This builder for chaining.
      */
     public Builder clearRole() {
-      
       role_ = getDefaultInstance().getRole();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -631,12 +570,10 @@ public Builder clearRole() {
      */
     public Builder setRoleBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       role_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -673,7 +610,18 @@ public AuthUserRevokeRoleRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserRevokeRoleRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleResponse.java
index 0590fe0..f657965 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthUserRevokeRoleResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new AuthUserRevokeRoleResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthUserRevokeRoleResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthUserRevokeRoleResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse build(
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeR
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public AuthUserRevokeRoleResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthUserRevokeRoleResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateRequest.java
index 66da1ba..ad8bee7 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateRequest.java
@@ -27,60 +27,6 @@ protected java.lang.Object newInstance(
     return new AuthenticateRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthenticateRequest(
-      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;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            password_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthenticateRequest_descriptor;
@@ -95,7 +41,8 @@ private AuthenticateRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -133,7 +80,8 @@ public java.lang.String getName() {
   }
 
   public static final int PASSWORD_FIELD_NUMBER = 2;
-  private volatile java.lang.Object password_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object password_ = "";
   /**
    * string password = 2;
    * @return The password.
@@ -184,13 +132,13 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -199,13 +147,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (!getPasswordBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -224,7 +172,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getPassword()
         .equals(other.getPassword())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -239,7 +187,7 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
     hash = (53 * hash) + getPassword().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -356,26 +304,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest.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;
       name_ = "";
-
       password_ = "";
-
       return this;
     }
 
@@ -402,44 +344,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest(this);
-      result.name_ = name_;
-      result.password_ = password_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.password_ = password_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest) {
@@ -454,13 +373,15 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateReq
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getPassword().isEmpty()) {
         password_ = other.password_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,19 +396,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              password_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -530,11 +475,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -543,8 +486,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -555,12 +498,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -606,11 +547,9 @@ public java.lang.String getPassword() {
      */
     public Builder setPassword(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -619,8 +558,8 @@ public Builder setPassword(
      * @return This builder for chaining.
      */
     public Builder clearPassword() {
-      
       password_ = getDefaultInstance().getPassword();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -631,12 +570,10 @@ public Builder clearPassword() {
      */
     public Builder setPasswordBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       password_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -673,7 +610,18 @@ public AuthenticateRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthenticateRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateResponse.java
index be35d8c..b1a29d6 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/AuthenticateResponse.java
@@ -26,67 +26,6 @@ protected java.lang.Object newInstance(
     return new AuthenticateResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private AuthenticateResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            token_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_AuthenticateResponse_descriptor;
@@ -123,11 +62,12 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object token_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object token_ = "";
   /**
    * 
    * token is an authorized token that can be used in succeeding RPCs
@@ -189,10 +129,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    if (!getTokenBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, token_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -205,10 +145,10 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    if (!getTokenBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, token_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -230,7 +170,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getToken()
         .equals(other.getToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -247,7 +187,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -364,30 +304,24 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       token_ = "";
-
       return this;
     }
 
@@ -414,48 +348,23 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.token_ = token_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.token_ = token_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse) {
@@ -473,9 +382,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRes
       }
       if (!other.getToken().isEmpty()) {
         token_ = other.token_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -490,19 +400,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              token_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -512,7 +448,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -534,11 +470,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -548,11 +484,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -560,38 +496,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -676,11 +612,9 @@ public java.lang.String getToken() {
      */
     public Builder setToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       token_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -693,8 +627,8 @@ public Builder setToken(
      * @return This builder for chaining.
      */
     public Builder clearToken() {
-      
       token_ = getDefaultInstance().getToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -709,12 +643,10 @@ public Builder clearToken() {
      */
     public Builder setTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       token_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -751,7 +683,18 @@ public AuthenticateResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new AuthenticateResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ClusterGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ClusterGrpc.java
index b27ac72..0e4af93 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ClusterGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ClusterGrpc.java
@@ -5,8 +5,9 @@
 /**
  */
 @javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.39.0)",
+    value = "by gRPC proto compiler (version 1.54.0)",
     comments = "Source: rpc.proto")
+@io.grpc.stub.annotations.GrpcGenerated
 public final class ClusterGrpc {
 
   private ClusterGrpc() {}
@@ -184,14 +185,14 @@ public ClusterFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions ca
 
   /**
    */
-  public static abstract class ClusterImplBase implements io.grpc.BindableService {
+  public interface AsyncService {
 
     /**
      * 
      * MemberAdd adds a member into the cluster.
      * 
*/ - public void memberAdd(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest request, + default void memberAdd(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMemberAddMethod(), responseObserver); } @@ -201,7 +202,7 @@ public void memberAdd(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest r * MemberRemove removes an existing member from the cluster. *
*/ - public void memberRemove(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest request, + default void memberRemove(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMemberRemoveMethod(), responseObserver); } @@ -211,7 +212,7 @@ public void memberRemove(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveReq * MemberUpdate updates the member configuration. *
*/ - public void memberUpdate(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest request, + default void memberUpdate(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMemberUpdateMethod(), responseObserver); } @@ -221,48 +222,28 @@ public void memberUpdate(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateReq * MemberList lists all the members in the cluster. *
*/ - public void memberList(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest request, + default void memberList(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMemberListMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Cluster. + */ + public static abstract class ClusterImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getMemberAddMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse>( - this, METHODID_MEMBER_ADD))) - .addMethod( - getMemberRemoveMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse>( - this, METHODID_MEMBER_REMOVE))) - .addMethod( - getMemberUpdateMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse>( - this, METHODID_MEMBER_UPDATE))) - .addMethod( - getMemberListMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse>( - this, METHODID_MEMBER_LIST))) - .build(); + return ClusterGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service Cluster. */ - public static final class ClusterStub extends io.grpc.stub.AbstractAsyncStub { + public static final class ClusterStub + extends io.grpc.stub.AbstractAsyncStub { private ClusterStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -320,8 +301,10 @@ public void memberList(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest } /** + * A stub to allow clients to do synchronous rpc calls to service Cluster. */ - public static final class ClusterBlockingStub extends io.grpc.stub.AbstractBlockingStub { + public static final class ClusterBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private ClusterBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -375,8 +358,10 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse memberList(org } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service Cluster. */ - public static final class ClusterFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class ClusterFutureStub + extends io.grpc.stub.AbstractFutureStub { private ClusterFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -443,10 +428,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final ClusterImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(ClusterImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -487,6 +472,39 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getMemberAddMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse>( + service, METHODID_MEMBER_ADD))) + .addMethod( + getMemberRemoveMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse>( + service, METHODID_MEMBER_REMOVE))) + .addMethod( + getMemberUpdateMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse>( + service, METHODID_MEMBER_UPDATE))) + .addMethod( + getMemberListMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse>( + service, METHODID_MEMBER_LIST))) + .build(); + } + private static abstract class ClusterBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { ClusterBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionRequest.java index 7affe99..e27dae6 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionRequest.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionRequest.java @@ -30,58 +30,6 @@ protected java.lang.Object newInstance( return new CompactionRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private CompactionRequest( - 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; - case 8: { - - revision_ = input.readInt64(); - break; - } - case 16: { - - physical_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_CompactionRequest_descriptor; @@ -96,7 +44,7 @@ private CompactionRequest( } public static final int REVISION_FIELD_NUMBER = 1; - private long revision_; + private long revision_ = 0L; /** *
    * revision is the key-value store revision for the compaction operation.
@@ -111,7 +59,7 @@ public long getRevision() {
   }
 
   public static final int PHYSICAL_FIELD_NUMBER = 2;
-  private boolean physical_;
+  private boolean physical_ = false;
   /**
    * 
    * physical is set so the RPC will wait until the compaction is physically
@@ -147,7 +95,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (physical_ != false) {
       output.writeBool(2, physical_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -164,7 +112,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(2, physical_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -183,7 +131,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getRevision()) return false;
     if (getPhysical()
         != other.getPhysical()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -200,7 +148,7 @@ public int hashCode() {
     hash = (37 * hash) + PHYSICAL_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getPhysical());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -322,26 +270,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest.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;
       revision_ = 0L;
-
       physical_ = false;
-
       return this;
     }
 
@@ -368,44 +310,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest(this);
-      result.revision_ = revision_;
-      result.physical_ = physical_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.revision_ = revision_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.physical_ = physical_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest) {
@@ -424,7 +343,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionReque
       if (other.getPhysical() != false) {
         setPhysical(other.getPhysical());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -439,19 +358,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              revision_ = input.readInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              physical_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long revision_ ;
     /**
@@ -476,8 +419,9 @@ public long getRevision() {
      * @return This builder for chaining.
      */
     public Builder setRevision(long value) {
-      
+
       revision_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -490,7 +434,7 @@ public Builder setRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       revision_ = 0L;
       onChanged();
       return this;
@@ -523,8 +467,9 @@ public boolean getPhysical() {
      * @return This builder for chaining.
      */
     public Builder setPhysical(boolean value) {
-      
+
       physical_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -539,7 +484,7 @@ public Builder setPhysical(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearPhysical() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       physical_ = false;
       onChanged();
       return this;
@@ -577,7 +522,18 @@ public CompactionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CompactionRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionResponse.java
index fa59748..bcbe083 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompactionResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new CompactionResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private CompactionResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_CompactionResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRespo
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public CompactionResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CompactionResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Compare.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Compare.java
index 0e53906..1644a61 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Compare.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Compare.java
@@ -29,90 +29,6 @@ protected java.lang.Object newInstance(
     return new Compare();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private Compare(
-      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;
-          case 8: {
-            int rawValue = input.readEnum();
-
-            result_ = rawValue;
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            target_ = rawValue;
-            break;
-          }
-          case 26: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 32: {
-            targetUnionCase_ = 4;
-            targetUnion_ = input.readInt64();
-            break;
-          }
-          case 40: {
-            targetUnionCase_ = 5;
-            targetUnion_ = input.readInt64();
-            break;
-          }
-          case 48: {
-            targetUnionCase_ = 6;
-            targetUnion_ = input.readInt64();
-            break;
-          }
-          case 58: {
-            targetUnionCase_ = 7;
-            targetUnion_ = input.readBytes();
-            break;
-          }
-          case 66: {
-
-            rangeEnd_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_Compare_descriptor;
@@ -379,6 +295,7 @@ private CompareTarget(int value) {
   }
 
   private int targetUnionCase_ = 0;
+  @SuppressWarnings("serial")
   private java.lang.Object targetUnion_;
   public enum TargetUnionCase
       implements com.google.protobuf.Internal.EnumLite,
@@ -424,7 +341,7 @@ public int getNumber() {
   }
 
   public static final int RESULT_FIELD_NUMBER = 1;
-  private int result_;
+  private int result_ = 0;
   /**
    * 
    * result is logical comparison operation for this comparison.
@@ -445,13 +362,12 @@ public int getNumber() {
    * @return The result.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult getResult() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.valueOf(result_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.forNumber(result_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.UNRECOGNIZED : result;
   }
 
   public static final int TARGET_FIELD_NUMBER = 2;
-  private int target_;
+  private int target_ = 0;
   /**
    * 
    * target is the key-value field to inspect for the comparison.
@@ -472,13 +388,12 @@ public int getNumber() {
    * @return The target.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget getTarget() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.valueOf(target_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.forNumber(target_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.UNRECOGNIZED : result;
   }
 
   public static final int KEY_FIELD_NUMBER = 3;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the subject key for the comparison operation.
@@ -493,6 +408,18 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int VERSION_FIELD_NUMBER = 4;
+  /**
+   * 
+   * version is the version of the given key
+   * 
+ * + * int64 version = 4; + * @return Whether the version field is set. + */ + @java.lang.Override + public boolean hasVersion() { + return targetUnionCase_ == 4; + } /** *
    * version is the version of the given key
@@ -510,6 +437,18 @@ public long getVersion() {
   }
 
   public static final int CREATE_REVISION_FIELD_NUMBER = 5;
+  /**
+   * 
+   * create_revision is the creation revision of the given key
+   * 
+ * + * int64 create_revision = 5; + * @return Whether the createRevision field is set. + */ + @java.lang.Override + public boolean hasCreateRevision() { + return targetUnionCase_ == 5; + } /** *
    * create_revision is the creation revision of the given key
@@ -527,6 +466,18 @@ public long getCreateRevision() {
   }
 
   public static final int MOD_REVISION_FIELD_NUMBER = 6;
+  /**
+   * 
+   * mod_revision is the last modified revision of the given key.
+   * 
+ * + * int64 mod_revision = 6; + * @return Whether the modRevision field is set. + */ + @java.lang.Override + public boolean hasModRevision() { + return targetUnionCase_ == 6; + } /** *
    * mod_revision is the last modified revision of the given key.
@@ -544,6 +495,18 @@ public long getModRevision() {
   }
 
   public static final int VALUE_FIELD_NUMBER = 7;
+  /**
+   * 
+   * value is the value of the given key, in bytes.
+   * 
+ * + * bytes value = 7; + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return targetUnionCase_ == 7; + } /** *
    * value is the value of the given key, in bytes.
@@ -561,7 +524,7 @@ public com.google.protobuf.ByteString getValue() {
   }
 
   public static final int RANGE_END_FIELD_NUMBER = 8;
-  private com.google.protobuf.ByteString rangeEnd_;
+  private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * range_end compares the given target to all keys in the range [key, range_end).
@@ -618,7 +581,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!rangeEnd_.isEmpty()) {
       output.writeBytes(8, rangeEnd_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -663,7 +626,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBytesSize(8, rangeEnd_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -705,7 +668,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -747,7 +710,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -864,30 +827,22 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.Compare.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;
       result_ = 0;
-
       target_ = 0;
-
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
-
       targetUnionCase_ = 0;
       targetUnion_ = null;
       return this;
@@ -916,59 +871,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Compare build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.Compare buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.Compare result = new org.eclipse.ecf.provider.etcd3.grpc.api.Compare(this);
-      result.result_ = result_;
-      result.target_ = target_;
-      result.key_ = key_;
-      if (targetUnionCase_ == 4) {
-        result.targetUnion_ = targetUnion_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.Compare result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.result_ = result_;
       }
-      if (targetUnionCase_ == 5) {
-        result.targetUnion_ = targetUnion_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.target_ = target_;
       }
-      if (targetUnionCase_ == 6) {
-        result.targetUnion_ = targetUnion_;
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.key_ = key_;
       }
-      if (targetUnionCase_ == 7) {
-        result.targetUnion_ = targetUnion_;
+      if (((from_bitField0_ & 0x00000080) != 0)) {
+        result.rangeEnd_ = rangeEnd_;
       }
-      result.rangeEnd_ = rangeEnd_;
-      result.targetUnionCase_ = targetUnionCase_;
-      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);
+    private void buildPartialOneofs(org.eclipse.ecf.provider.etcd3.grpc.api.Compare result) {
+      result.targetUnionCase_ = targetUnionCase_;
+      result.targetUnion_ = this.targetUnion_;
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.Compare) {
@@ -1014,7 +943,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.Compare other)
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1029,17 +958,70 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.Compare parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              result_ = input.readEnum();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              target_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            case 32: {
+              targetUnion_ = input.readInt64();
+              targetUnionCase_ = 4;
+              break;
+            } // case 32
+            case 40: {
+              targetUnion_ = input.readInt64();
+              targetUnionCase_ = 5;
+              break;
+            } // case 40
+            case 48: {
+              targetUnion_ = input.readInt64();
+              targetUnionCase_ = 6;
+              break;
+            } // case 48
+            case 58: {
+              targetUnion_ = input.readBytes();
+              targetUnionCase_ = 7;
+              break;
+            } // case 58
+            case 66: {
+              rangeEnd_ = input.readBytes();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 66
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.Compare) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int targetUnionCase_ = 0;
@@ -1057,6 +1039,7 @@ public Builder clearTargetUnion() {
       return this;
     }
 
+    private int bitField0_;
 
     private int result_ = 0;
     /**
@@ -1080,8 +1063,8 @@ public Builder clearTargetUnion() {
      * @return This builder for chaining.
      */
     public Builder setResultValue(int value) {
-      
       result_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1095,8 +1078,7 @@ public Builder setResultValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult getResult() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.valueOf(result_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.forNumber(result_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareResult.UNRECOGNIZED : result;
     }
     /**
@@ -1112,7 +1094,7 @@ public Builder setResult(org.eclipse.ecf.provider.etcd3.grpc.api.Compare.Compare
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000001;
       result_ = value.getNumber();
       onChanged();
       return this;
@@ -1126,7 +1108,7 @@ public Builder setResult(org.eclipse.ecf.provider.etcd3.grpc.api.Compare.Compare
      * @return This builder for chaining.
      */
     public Builder clearResult() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       result_ = 0;
       onChanged();
       return this;
@@ -1154,8 +1136,8 @@ public Builder clearResult() {
      * @return This builder for chaining.
      */
     public Builder setTargetValue(int value) {
-      
       target_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1169,8 +1151,7 @@ public Builder setTargetValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget getTarget() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.valueOf(target_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.forNumber(target_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.Compare.CompareTarget.UNRECOGNIZED : result;
     }
     /**
@@ -1186,7 +1167,7 @@ public Builder setTarget(org.eclipse.ecf.provider.etcd3.grpc.api.Compare.Compare
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       target_ = value.getNumber();
       onChanged();
       return this;
@@ -1200,7 +1181,7 @@ public Builder setTarget(org.eclipse.ecf.provider.etcd3.grpc.api.Compare.Compare
      * @return This builder for chaining.
      */
     public Builder clearTarget() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       target_ = 0;
       onChanged();
       return this;
@@ -1229,11 +1210,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1246,12 +1225,23 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
     }
 
+    /**
+     * 
+     * version is the version of the given key
+     * 
+ * + * int64 version = 4; + * @return Whether the version field is set. + */ + public boolean hasVersion() { + return targetUnionCase_ == 4; + } /** *
      * version is the version of the given key
@@ -1276,6 +1266,7 @@ public long getVersion() {
      * @return This builder for chaining.
      */
     public Builder setVersion(long value) {
+
       targetUnionCase_ = 4;
       targetUnion_ = value;
       onChanged();
@@ -1298,6 +1289,17 @@ public Builder clearVersion() {
       return this;
     }
 
+    /**
+     * 
+     * create_revision is the creation revision of the given key
+     * 
+ * + * int64 create_revision = 5; + * @return Whether the createRevision field is set. + */ + public boolean hasCreateRevision() { + return targetUnionCase_ == 5; + } /** *
      * create_revision is the creation revision of the given key
@@ -1322,6 +1324,7 @@ public long getCreateRevision() {
      * @return This builder for chaining.
      */
     public Builder setCreateRevision(long value) {
+
       targetUnionCase_ = 5;
       targetUnion_ = value;
       onChanged();
@@ -1344,6 +1347,17 @@ public Builder clearCreateRevision() {
       return this;
     }
 
+    /**
+     * 
+     * mod_revision is the last modified revision of the given key.
+     * 
+ * + * int64 mod_revision = 6; + * @return Whether the modRevision field is set. + */ + public boolean hasModRevision() { + return targetUnionCase_ == 6; + } /** *
      * mod_revision is the last modified revision of the given key.
@@ -1368,6 +1382,7 @@ public long getModRevision() {
      * @return This builder for chaining.
      */
     public Builder setModRevision(long value) {
+
       targetUnionCase_ = 6;
       targetUnion_ = value;
       onChanged();
@@ -1390,6 +1405,17 @@ public Builder clearModRevision() {
       return this;
     }
 
+    /**
+     * 
+     * value is the value of the given key, in bytes.
+     * 
+ * + * bytes value = 7; + * @return Whether the value field is set. + */ + public boolean hasValue() { + return targetUnionCase_ == 7; + } /** *
      * value is the value of the given key, in bytes.
@@ -1414,10 +1440,8 @@ 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();
-  }
-  targetUnionCase_ = 7;
+      if (value == null) { throw new NullPointerException(); }
+      targetUnionCase_ = 7;
       targetUnion_ = value;
       onChanged();
       return this;
@@ -1464,11 +1488,9 @@ public com.google.protobuf.ByteString getRangeEnd() {
      * @return This builder for chaining.
      */
     public Builder setRangeEnd(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       rangeEnd_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1482,7 +1504,7 @@ public Builder setRangeEnd(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearRangeEnd() {
-      
+      bitField0_ = (bitField0_ & ~0x00000080);
       rangeEnd_ = getDefaultInstance().getRangeEnd();
       onChanged();
       return this;
@@ -1520,7 +1542,18 @@ public Compare parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Compare(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompareOrBuilder.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompareOrBuilder.java
index 2dc915f..920117e 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompareOrBuilder.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/CompareOrBuilder.java
@@ -55,6 +55,15 @@ public interface CompareOrBuilder extends
    */
   com.google.protobuf.ByteString getKey();
 
+  /**
+   * 
+   * version is the version of the given key
+   * 
+ * + * int64 version = 4; + * @return Whether the version field is set. + */ + boolean hasVersion(); /** *
    * version is the version of the given key
@@ -65,6 +74,15 @@ public interface CompareOrBuilder extends
    */
   long getVersion();
 
+  /**
+   * 
+   * create_revision is the creation revision of the given key
+   * 
+ * + * int64 create_revision = 5; + * @return Whether the createRevision field is set. + */ + boolean hasCreateRevision(); /** *
    * create_revision is the creation revision of the given key
@@ -75,6 +93,15 @@ public interface CompareOrBuilder extends
    */
   long getCreateRevision();
 
+  /**
+   * 
+   * mod_revision is the last modified revision of the given key.
+   * 
+ * + * int64 mod_revision = 6; + * @return Whether the modRevision field is set. + */ + boolean hasModRevision(); /** *
    * mod_revision is the last modified revision of the given key.
@@ -85,6 +112,15 @@ public interface CompareOrBuilder extends
    */
   long getModRevision();
 
+  /**
+   * 
+   * value is the value of the given key, in bytes.
+   * 
+ * + * bytes value = 7; + * @return Whether the value field is set. + */ + boolean hasValue(); /** *
    * value is the value of the given key, in bytes.
@@ -106,5 +142,5 @@ public interface CompareOrBuilder extends
    */
   com.google.protobuf.ByteString getRangeEnd();
 
-  public org.eclipse.ecf.provider.etcd3.grpc.api.Compare.TargetUnionCase getTargetUnionCase();
+  org.eclipse.ecf.provider.etcd3.grpc.api.Compare.TargetUnionCase getTargetUnionCase();
 }
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentRequest.java
index af3abad..eda669a 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new DefragmentRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private DefragmentRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_DefragmentRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest buildPartial()
       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.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public DefragmentRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DefragmentRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentResponse.java
index 5ca8d5e..f0412dd 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DefragmentResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new DefragmentResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private DefragmentResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_DefragmentResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRespo
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public DefragmentResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DefragmentResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeRequest.java
index f287fd6..8196893 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeRequest.java
@@ -27,63 +27,6 @@ protected java.lang.Object newInstance(
     return new DeleteRangeRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private DeleteRangeRequest(
-      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;
-          case 10: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 18: {
-
-            rangeEnd_ = input.readBytes();
-            break;
-          }
-          case 24: {
-
-            prevKv_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_DeleteRangeRequest_descriptor;
@@ -98,7 +41,7 @@ private DeleteRangeRequest(
   }
 
   public static final int KEY_FIELD_NUMBER = 1;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the first key to delete in the range.
@@ -113,7 +56,7 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int RANGE_END_FIELD_NUMBER = 2;
-  private com.google.protobuf.ByteString rangeEnd_;
+  private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * range_end is the key following the last key to delete for the range [key, range_end).
@@ -132,7 +75,7 @@ public com.google.protobuf.ByteString getRangeEnd() {
   }
 
   public static final int PREV_KV_FIELD_NUMBER = 3;
-  private boolean prevKv_;
+  private boolean prevKv_ = false;
   /**
    * 
    * If prev_kv is set, etcd gets the previous key-value pairs before deleting it.
@@ -170,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (prevKv_ != false) {
       output.writeBool(3, prevKv_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -191,7 +134,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(3, prevKv_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -212,7 +155,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getRangeEnd())) return false;
     if (getPrevKv()
         != other.getPrevKv()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -230,7 +173,7 @@ public int hashCode() {
     hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getPrevKv());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -347,28 +290,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest.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;
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
-
       prevKv_ = false;
-
       return this;
     }
 
@@ -395,45 +331,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest(this);
-      result.key_ = key_;
-      result.rangeEnd_ = rangeEnd_;
-      result.prevKv_ = prevKv_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.rangeEnd_ = rangeEnd_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.prevKv_ = prevKv_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest) {
@@ -455,7 +370,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequ
       if (other.getPrevKv() != false) {
         setPrevKv(other.getPrevKv());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -470,19 +385,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              rangeEnd_ = input.readBytes();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              prevKv_ = input.readBool();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
     /**
@@ -507,11 +451,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -524,7 +466,7 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
@@ -561,11 +503,9 @@ public com.google.protobuf.ByteString getRangeEnd() {
      * @return This builder for chaining.
      */
     public Builder setRangeEnd(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       rangeEnd_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -582,7 +522,7 @@ public Builder setRangeEnd(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearRangeEnd() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       rangeEnd_ = getDefaultInstance().getRangeEnd();
       onChanged();
       return this;
@@ -613,8 +553,9 @@ public boolean getPrevKv() {
      * @return This builder for chaining.
      */
     public Builder setPrevKv(boolean value) {
-      
+
       prevKv_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -628,7 +569,7 @@ public Builder setPrevKv(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearPrevKv() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       prevKv_ = false;
       onChanged();
       return this;
@@ -666,7 +607,18 @@ public DeleteRangeRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteRangeRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeResponse.java
index 0179113..e6f87e5 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/DeleteRangeResponse.java
@@ -26,79 +26,6 @@ protected java.lang.Object newInstance(
     return new DeleteRangeResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private DeleteRangeResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            deleted_ = input.readInt64();
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              prevKvs_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            prevKvs_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.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)) {
-        prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_DeleteRangeResponse_descriptor;
@@ -135,11 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int DELETED_FIELD_NUMBER = 2;
-  private long deleted_;
+  private long deleted_ = 0L;
   /**
    * 
    * deleted is the number of keys deleted by the delete range request.
@@ -154,6 +81,7 @@ public long getDeleted() {
   }
 
   public static final int PREV_KVS_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List prevKvs_;
   /**
    * 
@@ -236,7 +164,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < prevKvs_.size(); i++) {
       output.writeMessage(3, prevKvs_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -257,7 +185,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, prevKvs_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -281,7 +209,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getDeleted()) return false;
     if (!getPrevKvsList()
         .equals(other.getPrevKvsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -303,7 +231,7 @@ public int hashCode() {
       hash = (37 * hash) + PREV_KVS_FIELD_NUMBER;
       hash = (53 * hash) + getPrevKvsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -420,37 +348,31 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getPrevKvsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       deleted_ = 0L;
-
       if (prevKvsBuilder_ == null) {
         prevKvs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        prevKvs_ = null;
         prevKvsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000004);
       return this;
     }
 
@@ -477,58 +399,36 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.deleted_ = deleted_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse result) {
       if (prevKvsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000004) != 0)) {
           prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
         }
         result.prevKvs_ = prevKvs_;
       } else {
         result.prevKvs_ = prevKvsBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.deleted_ = deleted_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse) {
@@ -551,7 +451,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResp
         if (!other.prevKvs_.isEmpty()) {
           if (prevKvs_.isEmpty()) {
             prevKvs_ = other.prevKvs_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
           } else {
             ensurePrevKvsIsMutable();
             prevKvs_.addAll(other.prevKvs_);
@@ -564,7 +464,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResp
             prevKvsBuilder_.dispose();
             prevKvsBuilder_ = null;
             prevKvs_ = other.prevKvs_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
             prevKvsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getPrevKvsFieldBuilder() : null;
@@ -573,7 +473,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResp
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -588,17 +488,55 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              deleted_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(),
+                      extensionRegistry);
+              if (prevKvsBuilder_ == null) {
+                ensurePrevKvsIsMutable();
+                prevKvs_.add(m);
+              } else {
+                prevKvsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 26
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -611,7 +549,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -633,11 +571,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -647,11 +585,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -659,38 +597,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -745,8 +683,9 @@ public long getDeleted() {
      * @return This builder for chaining.
      */
     public Builder setDeleted(long value) {
-      
+
       deleted_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -759,7 +698,7 @@ public Builder setDeleted(long value) {
      * @return This builder for chaining.
      */
     public Builder clearDeleted() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       deleted_ = 0L;
       onChanged();
       return this;
@@ -768,9 +707,9 @@ public Builder clearDeleted() {
     private java.util.List prevKvs_ =
       java.util.Collections.emptyList();
     private void ensurePrevKvsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000004) != 0)) {
         prevKvs_ = new java.util.ArrayList(prevKvs_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000004;
        }
     }
 
@@ -964,7 +903,7 @@ public Builder addAllPrevKvs(
     public Builder clearPrevKvs() {
       if (prevKvsBuilder_ == null) {
         prevKvs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
       } else {
         prevKvsBuilder_.clear();
@@ -1069,7 +1008,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder addPrevKvsBui
         prevKvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue, org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder>(
                 prevKvs_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000004) != 0),
                 getParentForChildren(),
                 isClean());
         prevKvs_ = null;
@@ -1109,7 +1048,18 @@ public DeleteRangeResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteRangeResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVRequest.java
index 90660e4..e2ab16d 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVRequest.java
@@ -25,53 +25,6 @@ protected java.lang.Object newInstance(
     return new HashKVRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private HashKVRequest(
-      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;
-          case 8: {
-
-            revision_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_HashKVRequest_descriptor;
@@ -86,7 +39,7 @@ private HashKVRequest(
   }
 
   public static final int REVISION_FIELD_NUMBER = 1;
-  private long revision_;
+  private long revision_ = 0L;
   /**
    * 
    * revision is the key-value store revision for the hash operation.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (revision_ != 0L) {
       output.writeInt64(1, revision_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(1, revision_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getRevision()
         != other.getRevision()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + REVISION_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getRevision());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest.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;
       revision_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest(this);
-      result.revision_ = revision_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.revision_ = revision_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest o
       if (other.getRevision() != 0L) {
         setRevision(other.getRevision());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              revision_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long revision_ ;
     /**
@@ -426,8 +368,9 @@ public long getRevision() {
      * @return This builder for chaining.
      */
     public Builder setRevision(long value) {
-      
+
       revision_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       revision_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public HashKVRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new HashKVRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVResponse.java
index c8b7d32..956af5b 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashKVResponse.java
@@ -25,71 +25,6 @@ protected java.lang.Object newInstance(
     return new HashKVResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private HashKVResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            hash_ = input.readUInt32();
-            break;
-          }
-          case 24: {
-
-            compactRevision_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_HashKVResponse_descriptor;
@@ -126,11 +61,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int HASH_FIELD_NUMBER = 2;
-  private int hash_;
+  private int hash_ = 0;
   /**
    * 
    * hash is the hash value computed from the responding member's MVCC keys up to a given revision.
@@ -145,7 +80,7 @@ public int getHash() {
   }
 
   public static final int COMPACT_REVISION_FIELD_NUMBER = 3;
-  private long compactRevision_;
+  private long compactRevision_ = 0L;
   /**
    * 
    * compact_revision is the compacted revision of key-value store when hash begins.
@@ -182,7 +117,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (compactRevision_ != 0L) {
       output.writeInt64(3, compactRevision_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -203,7 +138,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(3, compactRevision_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -227,7 +162,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getHash()) return false;
     if (getCompactRevision()
         != other.getCompactRevision()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -247,7 +182,7 @@ public int hashCode() {
     hash = (37 * hash) + COMPACT_REVISION_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getCompactRevision());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -364,32 +299,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       hash_ = 0;
-
       compactRevision_ = 0L;
-
       return this;
     }
 
@@ -416,49 +344,26 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.hash_ = hash_;
-      result.compactRevision_ = compactRevision_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.hash_ = hash_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.compactRevision_ = compactRevision_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse) {
@@ -480,7 +385,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse
       if (other.getCompactRevision() != 0L) {
         setCompactRevision(other.getCompactRevision());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -495,19 +400,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              hash_ = input.readUInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              compactRevision_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -517,7 +453,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -539,11 +475,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -553,11 +489,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -565,38 +501,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -651,8 +587,9 @@ public int getHash() {
      * @return This builder for chaining.
      */
     public Builder setHash(int value) {
-      
+
       hash_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -665,7 +602,7 @@ public Builder setHash(int value) {
      * @return This builder for chaining.
      */
     public Builder clearHash() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       hash_ = 0;
       onChanged();
       return this;
@@ -694,8 +631,9 @@ public long getCompactRevision() {
      * @return This builder for chaining.
      */
     public Builder setCompactRevision(long value) {
-      
+
       compactRevision_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -708,7 +646,7 @@ public Builder setCompactRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearCompactRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       compactRevision_ = 0L;
       onChanged();
       return this;
@@ -746,7 +684,18 @@ public HashKVResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new HashKVResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashRequest.java
index c3c3339..256a093 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new HashRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private HashRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_HashRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest buildPartial() {
       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.eclipse.ecf.provider.etcd3.grpc.api.HashRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public HashRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new HashRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashResponse.java
index cb17106..bfb15ca 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/HashResponse.java
@@ -25,66 +25,6 @@ protected java.lang.Object newInstance(
     return new HashResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private HashResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            hash_ = input.readUInt32();
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_HashResponse_descriptor;
@@ -121,11 +61,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int HASH_FIELD_NUMBER = 2;
-  private int hash_;
+  private int hash_ = 0;
   /**
    * 
    * hash is the hash value computed from the responding member's key-value store.
@@ -159,7 +99,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (hash_ != 0) {
       output.writeUInt32(2, hash_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -176,7 +116,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt32Size(2, hash_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -198,7 +138,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (getHash()
         != other.getHash()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -215,7 +155,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + HASH_FIELD_NUMBER;
     hash = (53 * hash) + getHash();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -332,30 +272,24 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       hash_ = 0;
-
       return this;
     }
 
@@ -382,48 +316,23 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.hash_ = hash_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.hash_ = hash_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse) {
@@ -442,7 +351,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse ot
       if (other.getHash() != 0) {
         setHash(other.getHash());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -457,19 +366,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              hash_ = input.readUInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -479,7 +414,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -501,11 +436,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -515,11 +450,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -527,38 +462,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -613,8 +548,9 @@ public int getHash() {
      * @return This builder for chaining.
      */
     public Builder setHash(int value) {
-      
+
       hash_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -627,7 +563,7 @@ public Builder setHash(int value) {
      * @return This builder for chaining.
      */
     public Builder clearHash() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       hash_ = 0;
       onChanged();
       return this;
@@ -665,7 +601,18 @@ public HashResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new HashResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/KVGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/KVGrpc.java
index d851285..48b8bec 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/KVGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/KVGrpc.java
@@ -5,8 +5,9 @@
 /**
  */
 @javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.39.0)",
+    value = "by gRPC proto compiler (version 1.54.0)",
     comments = "Source: rpc.proto")
+@io.grpc.stub.annotations.GrpcGenerated
 public final class KVGrpc {
 
   private KVGrpc() {}
@@ -215,14 +216,14 @@ public KVFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOpt
 
   /**
    */
-  public static abstract class KVImplBase implements io.grpc.BindableService {
+  public interface AsyncService {
 
     /**
      * 
      * Range gets the keys in the range from the key-value store.
      * 
*/ - public void range(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest request, + default void range(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRangeMethod(), responseObserver); } @@ -234,7 +235,7 @@ public void range(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest request, * and generates one event in the event history. *
*/ - public void put(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest request, + default void put(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getPutMethod(), responseObserver); } @@ -246,7 +247,7 @@ public void put(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest request, * and generates a delete event in the event history for every deleted key. *
*/ - public void deleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest request, + default void deleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteRangeMethod(), responseObserver); } @@ -259,7 +260,7 @@ public void deleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeReque * It is not allowed to modify the same key several times within one txn. *
*/ - public void txn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest request, + default void txn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTxnMethod(), responseObserver); } @@ -271,55 +272,28 @@ public void txn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest request, * indefinitely. *
*/ - public void compact(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest request, + default void compact(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getCompactMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service KV. + */ + public static abstract class KVImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getRangeMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse>( - this, METHODID_RANGE))) - .addMethod( - getPutMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse>( - this, METHODID_PUT))) - .addMethod( - getDeleteRangeMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse>( - this, METHODID_DELETE_RANGE))) - .addMethod( - getTxnMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse>( - this, METHODID_TXN))) - .addMethod( - getCompactMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse>( - this, METHODID_COMPACT))) - .build(); + return KVGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service KV. */ - public static final class KVStub extends io.grpc.stub.AbstractAsyncStub { + public static final class KVStub + extends io.grpc.stub.AbstractAsyncStub { private KVStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -397,8 +371,10 @@ public void compact(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest re } /** + * A stub to allow clients to do synchronous rpc calls to service KV. */ - public static final class KVBlockingStub extends io.grpc.stub.AbstractBlockingStub { + public static final class KVBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private KVBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -471,8 +447,10 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse compact(org.ec } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service KV. */ - public static final class KVFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class KVFutureStub + extends io.grpc.stub.AbstractFutureStub { private KVFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -560,10 +538,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final KVImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(KVImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -608,6 +586,46 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getRangeMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse>( + service, METHODID_RANGE))) + .addMethod( + getPutMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse>( + service, METHODID_PUT))) + .addMethod( + getDeleteRangeMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse>( + service, METHODID_DELETE_RANGE))) + .addMethod( + getTxnMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse>( + service, METHODID_TXN))) + .addMethod( + getCompactMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.CompactionResponse>( + service, METHODID_COMPACT))) + .build(); + } + private static abstract class KVBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { KVBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantRequest.java index 4e80d4e..e6dc140 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantRequest.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantRequest.java @@ -25,58 +25,6 @@ protected java.lang.Object newInstance( return new LeaseGrantRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private LeaseGrantRequest( - 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; - case 8: { - - tTL_ = input.readInt64(); - break; - } - case 16: { - - iD_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseGrantRequest_descriptor; @@ -91,7 +39,7 @@ private LeaseGrantRequest( } public static final int TTL_FIELD_NUMBER = 1; - private long tTL_; + private long tTL_ = 0L; /** *
    * TTL is the advisory time-to-live in seconds.
@@ -106,7 +54,7 @@ public long getTTL() {
   }
 
   public static final int ID_FIELD_NUMBER = 2;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the requested ID for the lease. If ID is set to 0, the lessor chooses an ID.
@@ -140,7 +88,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (iD_ != 0L) {
       output.writeInt64(2, iD_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -157,7 +105,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(2, iD_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -176,7 +124,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getTTL()) return false;
     if (getID()
         != other.getID()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -193,7 +141,7 @@ public int hashCode() {
     hash = (37 * hash) + ID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getID());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -310,26 +258,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest.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;
       tTL_ = 0L;
-
       iD_ = 0L;
-
       return this;
     }
 
@@ -356,44 +298,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest(this);
-      result.tTL_ = tTL_;
-      result.iD_ = iD_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.tTL_ = tTL_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.iD_ = iD_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest) {
@@ -412,7 +331,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantReque
       if (other.getID() != 0L) {
         setID(other.getID());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -427,19 +346,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              tTL_ = input.readInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              iD_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long tTL_ ;
     /**
@@ -464,8 +407,9 @@ public long getTTL() {
      * @return This builder for chaining.
      */
     public Builder setTTL(long value) {
-      
+
       tTL_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -478,7 +422,7 @@ public Builder setTTL(long value) {
      * @return This builder for chaining.
      */
     public Builder clearTTL() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       tTL_ = 0L;
       onChanged();
       return this;
@@ -507,8 +451,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -521,7 +466,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       iD_ = 0L;
       onChanged();
       return this;
@@ -559,7 +504,18 @@ public LeaseGrantRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseGrantRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantResponse.java
index 9d30001..a9170ce 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrantResponse.java
@@ -26,77 +26,6 @@ protected java.lang.Object newInstance(
     return new LeaseGrantResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseGrantResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            iD_ = input.readInt64();
-            break;
-          }
-          case 24: {
-
-            tTL_ = input.readInt64();
-            break;
-          }
-          case 34: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            error_ = s;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseGrantResponse_descriptor;
@@ -133,11 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ID_FIELD_NUMBER = 2;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the lease ID for the granted lease.
@@ -152,7 +81,7 @@ public long getID() {
   }
 
   public static final int TTL_FIELD_NUMBER = 3;
-  private long tTL_;
+  private long tTL_ = 0L;
   /**
    * 
    * TTL is the server chosen lease time-to-live in seconds.
@@ -167,7 +96,8 @@ public long getTTL() {
   }
 
   public static final int ERROR_FIELD_NUMBER = 4;
-  private volatile java.lang.Object error_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object error_ = "";
   /**
    * string error = 4;
    * @return The error.
@@ -227,10 +157,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (tTL_ != 0L) {
       output.writeInt64(3, tTL_);
     }
-    if (!getErrorBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(error_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, error_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -251,10 +181,10 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(3, tTL_);
     }
-    if (!getErrorBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(error_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, error_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -280,7 +210,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getTTL()) return false;
     if (!getError()
         .equals(other.getError())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -303,7 +233,7 @@ public int hashCode() {
         getTTL());
     hash = (37 * hash) + ERROR_FIELD_NUMBER;
     hash = (53 * hash) + getError().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -420,34 +350,26 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       iD_ = 0L;
-
       tTL_ = 0L;
-
       error_ = "";
-
       return this;
     }
 
@@ -474,50 +396,29 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.iD_ = iD_;
-      result.tTL_ = tTL_;
-      result.error_ = error_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.tTL_ = tTL_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.error_ = error_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse) {
@@ -541,9 +442,10 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRespo
       }
       if (!other.getError().isEmpty()) {
         error_ = other.error_;
+        bitField0_ |= 0x00000008;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -558,19 +460,55 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              iD_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              tTL_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 34: {
+              error_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 34
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -580,7 +518,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -602,11 +540,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -616,11 +554,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -628,38 +566,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -714,8 +652,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -728,7 +667,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       iD_ = 0L;
       onChanged();
       return this;
@@ -757,8 +696,9 @@ public long getTTL() {
      * @return This builder for chaining.
      */
     public Builder setTTL(long value) {
-      
+
       tTL_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -771,7 +711,7 @@ public Builder setTTL(long value) {
      * @return This builder for chaining.
      */
     public Builder clearTTL() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       tTL_ = 0L;
       onChanged();
       return this;
@@ -818,11 +758,9 @@ public java.lang.String getError() {
      */
     public Builder setError(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       error_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -831,8 +769,8 @@ public Builder setError(
      * @return This builder for chaining.
      */
     public Builder clearError() {
-      
       error_ = getDefaultInstance().getError();
+      bitField0_ = (bitField0_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -843,12 +781,10 @@ public Builder clearError() {
      */
     public Builder setErrorBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       error_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -885,7 +821,18 @@ public LeaseGrantResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseGrantResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrpc.java
index 9dbda17..d0977ba 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseGrpc.java
@@ -5,8 +5,9 @@
 /**
  */
 @javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.39.0)",
+    value = "by gRPC proto compiler (version 1.54.0)",
     comments = "Source: rpc.proto")
+@io.grpc.stub.annotations.GrpcGenerated
 public final class LeaseGrpc {
 
   private LeaseGrpc() {}
@@ -184,7 +185,7 @@ public LeaseFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions call
 
   /**
    */
-  public static abstract class LeaseImplBase implements io.grpc.BindableService {
+  public interface AsyncService {
 
     /**
      * 
@@ -193,7 +194,7 @@ public static abstract class LeaseImplBase implements io.grpc.BindableService {
      * deleted if the lease expires. Each expired key generates a delete event in the event history.
      * 
*/ - public void leaseGrant(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest request, + default void leaseGrant(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getLeaseGrantMethod(), responseObserver); } @@ -203,7 +204,7 @@ public void leaseGrant(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest * LeaseRevoke revokes a lease. All keys attached to the lease will expire and be deleted. *
*/ - public void leaseRevoke(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest request, + default void leaseRevoke(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getLeaseRevokeMethod(), responseObserver); } @@ -214,7 +215,7 @@ public void leaseRevoke(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeReque * to the server and streaming keep alive responses from the server to the client. *
*/ - public io.grpc.stub.StreamObserver leaseKeepAlive( + default io.grpc.stub.StreamObserver leaseKeepAlive( io.grpc.stub.StreamObserver responseObserver) { return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getLeaseKeepAliveMethod(), responseObserver); } @@ -224,48 +225,28 @@ public io.grpc.stub.StreamObserver */ - public void leaseTimeToLive(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest request, + default void leaseTimeToLive(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getLeaseTimeToLiveMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Lease. + */ + public static abstract class LeaseImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getLeaseGrantMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse>( - this, METHODID_LEASE_GRANT))) - .addMethod( - getLeaseRevokeMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse>( - this, METHODID_LEASE_REVOKE))) - .addMethod( - getLeaseKeepAliveMethod(), - io.grpc.stub.ServerCalls.asyncBidiStreamingCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse>( - this, METHODID_LEASE_KEEP_ALIVE))) - .addMethod( - getLeaseTimeToLiveMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse>( - this, METHODID_LEASE_TIME_TO_LIVE))) - .build(); + return LeaseGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service Lease. */ - public static final class LeaseStub extends io.grpc.stub.AbstractAsyncStub { + public static final class LeaseStub + extends io.grpc.stub.AbstractAsyncStub { private LeaseStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -326,8 +307,10 @@ public void leaseTimeToLive(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToL } /** + * A stub to allow clients to do synchronous rpc calls to service Lease. */ - public static final class LeaseBlockingStub extends io.grpc.stub.AbstractBlockingStub { + public static final class LeaseBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private LeaseBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -373,8 +356,10 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse leaseTime } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service Lease. */ - public static final class LeaseFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class LeaseFutureStub + extends io.grpc.stub.AbstractFutureStub { private LeaseFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -432,10 +417,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final LeaseImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(LeaseImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -475,6 +460,39 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getLeaseGrantMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantResponse>( + service, METHODID_LEASE_GRANT))) + .addMethod( + getLeaseRevokeMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse>( + service, METHODID_LEASE_REVOKE))) + .addMethod( + getLeaseKeepAliveMethod(), + io.grpc.stub.ServerCalls.asyncBidiStreamingCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse>( + service, METHODID_LEASE_KEEP_ALIVE))) + .addMethod( + getLeaseTimeToLiveMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse>( + service, METHODID_LEASE_TIME_TO_LIVE))) + .build(); + } + private static abstract class LeaseBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { LeaseBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveRequest.java index c53335d..635c484 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveRequest.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveRequest.java @@ -25,53 +25,6 @@ protected java.lang.Object newInstance( return new LeaseKeepAliveRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private LeaseKeepAliveRequest( - 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; - case 8: { - - iD_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseKeepAliveRequest_descriptor; @@ -86,7 +39,7 @@ private LeaseKeepAliveRequest( } public static final int ID_FIELD_NUMBER = 1; - private long iD_; + private long iD_ = 0L; /** *
    * ID is the lease ID for the lease to keep alive.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (iD_ != 0L) {
       output.writeInt64(1, iD_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(1, iD_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getID()
         != other.getID()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + ID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getID());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest.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_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest(this);
-      result.iD_ = iD_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveR
       if (other.getID() != 0L) {
         setID(other.getID());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long iD_ ;
     /**
@@ -426,8 +368,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public LeaseKeepAliveRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseKeepAliveRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveResponse.java
index 05abc09..074625d 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseKeepAliveResponse.java
@@ -25,71 +25,6 @@ protected java.lang.Object newInstance(
     return new LeaseKeepAliveResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseKeepAliveResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            iD_ = input.readInt64();
-            break;
-          }
-          case 24: {
-
-            tTL_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseKeepAliveResponse_descriptor;
@@ -126,11 +61,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ID_FIELD_NUMBER = 2;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the lease ID from the keep alive request.
@@ -145,7 +80,7 @@ public long getID() {
   }
 
   public static final int TTL_FIELD_NUMBER = 3;
-  private long tTL_;
+  private long tTL_ = 0L;
   /**
    * 
    * TTL is the new time-to-live for the lease.
@@ -182,7 +117,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (tTL_ != 0L) {
       output.writeInt64(3, tTL_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -203,7 +138,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(3, tTL_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -227,7 +162,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getID()) return false;
     if (getTTL()
         != other.getTTL()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -248,7 +183,7 @@ public int hashCode() {
     hash = (37 * hash) + TTL_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getTTL());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -365,32 +300,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       iD_ = 0L;
-
       tTL_ = 0L;
-
       return this;
     }
 
@@ -417,49 +345,26 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.iD_ = iD_;
-      result.tTL_ = tTL_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.tTL_ = tTL_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse) {
@@ -481,7 +386,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveR
       if (other.getTTL() != 0L) {
         setTTL(other.getTTL());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -496,19 +401,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              iD_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              tTL_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseKeepAliveResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -518,7 +454,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -540,11 +476,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -554,11 +490,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -566,38 +502,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -652,8 +588,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -666,7 +603,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       iD_ = 0L;
       onChanged();
       return this;
@@ -695,8 +632,9 @@ public long getTTL() {
      * @return This builder for chaining.
      */
     public Builder setTTL(long value) {
-      
+
       tTL_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -709,7 +647,7 @@ public Builder setTTL(long value) {
      * @return This builder for chaining.
      */
     public Builder clearTTL() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       tTL_ = 0L;
       onChanged();
       return this;
@@ -747,7 +685,18 @@ public LeaseKeepAliveResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseKeepAliveResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeRequest.java
index 47dc989..189a582 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeRequest.java
@@ -25,53 +25,6 @@ protected java.lang.Object newInstance(
     return new LeaseRevokeRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseRevokeRequest(
-      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;
-          case 8: {
-
-            iD_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseRevokeRequest_descriptor;
@@ -86,7 +39,7 @@ private LeaseRevokeRequest(
   }
 
   public static final int ID_FIELD_NUMBER = 1;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the lease ID to revoke. When the ID is revoked, all associated keys will be deleted.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (iD_ != 0L) {
       output.writeInt64(1, iD_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(1, iD_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getID()
         != other.getID()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + ID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getID());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest.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_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest(this);
-      result.iD_ = iD_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequ
       if (other.getID() != 0L) {
         setID(other.getID());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long iD_ ;
     /**
@@ -426,8 +368,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public LeaseRevokeRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseRevokeRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeResponse.java
index 0c6b0de..583b61b 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseRevokeResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new LeaseRevokeResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseRevokeResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseRevokeResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResp
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public LeaseRevokeResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseRevokeResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveRequest.java
index f6bd698..90c6f32 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveRequest.java
@@ -25,58 +25,6 @@ protected java.lang.Object newInstance(
     return new LeaseTimeToLiveRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseTimeToLiveRequest(
-      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;
-          case 8: {
-
-            iD_ = input.readInt64();
-            break;
-          }
-          case 16: {
-
-            keys_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseTimeToLiveRequest_descriptor;
@@ -91,7 +39,7 @@ private LeaseTimeToLiveRequest(
   }
 
   public static final int ID_FIELD_NUMBER = 1;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the lease ID for the lease.
@@ -106,7 +54,7 @@ public long getID() {
   }
 
   public static final int KEYS_FIELD_NUMBER = 2;
-  private boolean keys_;
+  private boolean keys_ = false;
   /**
    * 
    * keys is true to query all the keys attached to this lease.
@@ -140,7 +88,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (keys_ != false) {
       output.writeBool(2, keys_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -157,7 +105,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(2, keys_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -176,7 +124,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getID()) return false;
     if (getKeys()
         != other.getKeys()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -193,7 +141,7 @@ public int hashCode() {
     hash = (37 * hash) + KEYS_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getKeys());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -310,26 +258,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest.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_ = 0L;
-
       keys_ = false;
-
       return this;
     }
 
@@ -356,44 +298,21 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest(this);
-      result.iD_ = iD_;
-      result.keys_ = keys_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.keys_ = keys_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest) {
@@ -412,7 +331,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLive
       if (other.getKeys() != false) {
         setKeys(other.getKeys());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -427,19 +346,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = input.readInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              keys_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long iD_ ;
     /**
@@ -464,8 +407,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -478,7 +422,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
@@ -507,8 +451,9 @@ public boolean getKeys() {
      * @return This builder for chaining.
      */
     public Builder setKeys(boolean value) {
-      
+
       keys_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -521,7 +466,7 @@ public Builder setKeys(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearKeys() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       keys_ = false;
       onChanged();
       return this;
@@ -559,7 +504,18 @@ public LeaseTimeToLiveRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseTimeToLiveRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveResponse.java
index 0f8a0e0..fb1db60 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/LeaseTimeToLiveResponse.java
@@ -26,88 +26,6 @@ protected java.lang.Object newInstance(
     return new LeaseTimeToLiveResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private LeaseTimeToLiveResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            iD_ = input.readInt64();
-            break;
-          }
-          case 24: {
-
-            tTL_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            grantedTTL_ = input.readInt64();
-            break;
-          }
-          case 42: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              keys_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            keys_.add(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 {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        keys_ = java.util.Collections.unmodifiableList(keys_); // C
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_LeaseTimeToLiveResponse_descriptor;
@@ -144,11 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int ID_FIELD_NUMBER = 2;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the lease ID from the keep alive request.
@@ -163,7 +81,7 @@ public long getID() {
   }
 
   public static final int TTL_FIELD_NUMBER = 3;
-  private long tTL_;
+  private long tTL_ = 0L;
   /**
    * 
    * TTL is the remaining TTL in seconds for the lease; the lease will expire in under TTL+1 seconds.
@@ -178,7 +96,7 @@ public long getTTL() {
   }
 
   public static final int GRANTEDTTL_FIELD_NUMBER = 4;
-  private long grantedTTL_;
+  private long grantedTTL_ = 0L;
   /**
    * 
    * GrantedTTL is the initial granted time in seconds upon lease creation/renewal.
@@ -193,6 +111,7 @@ public long getGrantedTTL() {
   }
 
   public static final int KEYS_FIELD_NUMBER = 5;
+  @SuppressWarnings("serial")
   private java.util.List keys_;
   /**
    * 
@@ -260,7 +179,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < keys_.size(); i++) {
       output.writeBytes(5, keys_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -294,7 +213,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getKeysList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -322,7 +241,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getGrantedTTL()) return false;
     if (!getKeysList()
         .equals(other.getKeysList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -350,7 +269,7 @@ public int hashCode() {
       hash = (37 * hash) + KEYS_FIELD_NUMBER;
       hash = (53 * hash) + getKeysList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -467,36 +386,27 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       iD_ = 0L;
-
       tTL_ = 0L;
-
       grantedTTL_ = 0L;
-
       keys_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
       return this;
     }
 
@@ -523,56 +433,38 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.iD_ = iD_;
-      result.tTL_ = tTL_;
-      result.grantedTTL_ = grantedTTL_;
-      if (((bitField0_ & 0x00000001) != 0)) {
-        keys_ = java.util.Collections.unmodifiableList(keys_);
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.keys_ = keys_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse result) {
+      if (((bitField0_ & 0x00000010) != 0)) {
+        keys_ = java.util.Collections.unmodifiableList(keys_);
+        bitField0_ = (bitField0_ & ~0x00000010);
+      }
+      result.keys_ = keys_;
     }
-    @java.lang.Override
-    public Builder addRepeatedField(
-        com.google.protobuf.Descriptors.FieldDescriptor field,
-        java.lang.Object value) {
-      return super.addRepeatedField(field, value);
+
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.tTL_ = tTL_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.grantedTTL_ = grantedTTL_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse) {
@@ -600,14 +492,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLive
       if (!other.keys_.isEmpty()) {
         if (keys_.isEmpty()) {
           keys_ = other.keys_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
           ensureKeysIsMutable();
           keys_.addAll(other.keys_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -622,17 +514,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              iD_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              tTL_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              grantedTTL_ = input.readInt64();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 42: {
+              com.google.protobuf.ByteString v = input.readBytes();
+              ensureKeysIsMutable();
+              keys_.add(v);
+              break;
+            } // case 42
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -645,7 +578,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -667,11 +600,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -681,11 +614,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -693,38 +626,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -779,8 +712,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -793,7 +727,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       iD_ = 0L;
       onChanged();
       return this;
@@ -822,8 +756,9 @@ public long getTTL() {
      * @return This builder for chaining.
      */
     public Builder setTTL(long value) {
-      
+
       tTL_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -836,7 +771,7 @@ public Builder setTTL(long value) {
      * @return This builder for chaining.
      */
     public Builder clearTTL() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       tTL_ = 0L;
       onChanged();
       return this;
@@ -865,8 +800,9 @@ public long getGrantedTTL() {
      * @return This builder for chaining.
      */
     public Builder setGrantedTTL(long value) {
-      
+
       grantedTTL_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -879,7 +815,7 @@ public Builder setGrantedTTL(long value) {
      * @return This builder for chaining.
      */
     public Builder clearGrantedTTL() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       grantedTTL_ = 0L;
       onChanged();
       return this;
@@ -887,10 +823,10 @@ public Builder clearGrantedTTL() {
 
     private java.util.List keys_ = java.util.Collections.emptyList();
     private void ensureKeysIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000010) != 0)) {
         keys_ = new java.util.ArrayList(keys_);
-        bitField0_ |= 0x00000001;
-       }
+        bitField0_ |= 0x00000010;
+      }
     }
     /**
      * 
@@ -902,7 +838,7 @@ private void ensureKeysIsMutable() {
      */
     public java.util.List
         getKeysList() {
-      return ((bitField0_ & 0x00000001) != 0) ?
+      return ((bitField0_ & 0x00000010) != 0) ?
                java.util.Collections.unmodifiableList(keys_) : keys_;
     }
     /**
@@ -940,10 +876,8 @@ public com.google.protobuf.ByteString getKeys(int index) {
      */
     public Builder setKeys(
         int index, com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureKeysIsMutable();
       keys_.set(index, value);
       onChanged();
       return this;
@@ -958,10 +892,8 @@ public Builder setKeys(
      * @return This builder for chaining.
      */
     public Builder addKeys(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureKeysIsMutable();
       keys_.add(value);
       onChanged();
       return this;
@@ -993,7 +925,7 @@ public Builder addAllKeys(
      */
     public Builder clearKeys() {
       keys_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000010);
       onChanged();
       return this;
     }
@@ -1030,7 +962,18 @@ public LeaseTimeToLiveResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new LeaseTimeToLiveResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MaintenanceGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MaintenanceGrpc.java
index 91c9de2..15d75b6 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MaintenanceGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MaintenanceGrpc.java
@@ -5,8 +5,9 @@
 /**
  */
 @javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.39.0)",
+    value = "by gRPC proto compiler (version 1.54.0)",
     comments = "Source: rpc.proto")
+@io.grpc.stub.annotations.GrpcGenerated
 public final class MaintenanceGrpc {
 
   private MaintenanceGrpc() {}
@@ -277,14 +278,14 @@ public MaintenanceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOption
 
   /**
    */
-  public static abstract class MaintenanceImplBase implements io.grpc.BindableService {
+  public interface AsyncService {
 
     /**
      * 
      * Alarm activates, deactivates, and queries alarms regarding cluster health.
      * 
*/ - public void alarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest request, + default void alarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getAlarmMethod(), responseObserver); } @@ -294,7 +295,7 @@ public void alarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest request, * Status gets the status of the member. *
*/ - public void status(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest request, + default void status(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getStatusMethod(), responseObserver); } @@ -304,7 +305,7 @@ public void status(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest request * Defragment defragments a member's backend database to recover storage space. *
*/ - public void defragment(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest request, + default void defragment(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDefragmentMethod(), responseObserver); } @@ -316,7 +317,7 @@ public void defragment(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest * are ongoing transactions. *
*/ - public void hash(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest request, + default void hash(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getHashMethod(), responseObserver); } @@ -326,7 +327,7 @@ public void hash(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest request, * HashKV computes the hash of all MVCC keys up to a given revision. *
*/ - public void hashKV(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest request, + default void hashKV(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getHashKVMethod(), responseObserver); } @@ -336,7 +337,7 @@ public void hashKV(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest request * Snapshot sends a snapshot of the entire backend from a member over a stream to a client. *
*/ - public void snapshot(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest request, + default void snapshot(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSnapshotMethod(), responseObserver); } @@ -346,69 +347,28 @@ public void snapshot(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest req * MoveLeader requests current leader node to transfer its leadership to transferee. *
*/ - public void moveLeader(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest request, + default void moveLeader(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMoveLeaderMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Maintenance. + */ + public static abstract class MaintenanceImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getAlarmMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse>( - this, METHODID_ALARM))) - .addMethod( - getStatusMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse>( - this, METHODID_STATUS))) - .addMethod( - getDefragmentMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse>( - this, METHODID_DEFRAGMENT))) - .addMethod( - getHashMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse>( - this, METHODID_HASH))) - .addMethod( - getHashKVMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse>( - this, METHODID_HASH_KV))) - .addMethod( - getSnapshotMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse>( - this, METHODID_SNAPSHOT))) - .addMethod( - getMoveLeaderMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse>( - this, METHODID_MOVE_LEADER))) - .build(); + return MaintenanceGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service Maintenance. */ - public static final class MaintenanceStub extends io.grpc.stub.AbstractAsyncStub { + public static final class MaintenanceStub + extends io.grpc.stub.AbstractAsyncStub { private MaintenanceStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -501,8 +461,10 @@ public void moveLeader(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest } /** + * A stub to allow clients to do synchronous rpc calls to service Maintenance. */ - public static final class MaintenanceBlockingStub extends io.grpc.stub.AbstractBlockingStub { + public static final class MaintenanceBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private MaintenanceBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -589,8 +551,10 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse moveLeader(org } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service Maintenance. */ - public static final class MaintenanceFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class MaintenanceFutureStub + extends io.grpc.stub.AbstractFutureStub { private MaintenanceFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -684,10 +648,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final MaintenanceImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(MaintenanceImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -740,6 +704,60 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getAlarmMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.AlarmResponse>( + service, METHODID_ALARM))) + .addMethod( + getStatusMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse>( + service, METHODID_STATUS))) + .addMethod( + getDefragmentMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentResponse>( + service, METHODID_DEFRAGMENT))) + .addMethod( + getHashMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.HashResponse>( + service, METHODID_HASH))) + .addMethod( + getHashKVMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.HashKVResponse>( + service, METHODID_HASH_KV))) + .addMethod( + getSnapshotMethod(), + io.grpc.stub.ServerCalls.asyncServerStreamingCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse>( + service, METHODID_SNAPSHOT))) + .addMethod( + getMoveLeaderMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse>( + service, METHODID_MOVE_LEADER))) + .build(); + } + private static abstract class MaintenanceBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { MaintenanceBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Member.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Member.java index 6b308df..079e87c 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Member.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Member.java @@ -17,8 +17,10 @@ private Member(com.google.protobuf.GeneratedMessageV3.Builder builder) { } private Member() { name_ = ""; - peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY; - clientURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY; + peerURLs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + clientURLs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -28,84 +30,6 @@ protected java.lang.Object newInstance( return new Member(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Member( - 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: { - - iD_ = input.readUInt64(); - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - peerURLs_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000001; - } - peerURLs_.add(s); - break; - } - case 34: { - java.lang.String s = input.readStringRequireUtf8(); - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - clientURLs_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000002; - } - clientURLs_.add(s); - 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)) { - peerURLs_ = peerURLs_.getUnmodifiableView(); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - clientURLs_ = clientURLs_.getUnmodifiableView(); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_Member_descriptor; @@ -120,7 +44,7 @@ private Member( } public static final int ID_FIELD_NUMBER = 1; - private long iD_; + private long iD_ = 0L; /** *
    * ID is the member ID for this member.
@@ -135,7 +59,8 @@ public long getID() {
   }
 
   public static final int NAME_FIELD_NUMBER = 2;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * name is the human-readable name of the member. If the member is not started, the name will be an empty string.
@@ -181,7 +106,9 @@ public java.lang.String getName() {
   }
 
   public static final int PEERURLS_FIELD_NUMBER = 3;
-  private com.google.protobuf.LazyStringList peerURLs_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList peerURLs_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * 
    * peerURLs is the list of URLs the member exposes to the cluster for communication.
@@ -232,7 +159,9 @@ public java.lang.String getPeerURLs(int index) {
   }
 
   public static final int CLIENTURLS_FIELD_NUMBER = 4;
-  private com.google.protobuf.LazyStringList clientURLs_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList clientURLs_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * 
    * clientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty.
@@ -299,7 +228,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (iD_ != 0L) {
       output.writeUInt64(1, iD_);
     }
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
     }
     for (int i = 0; i < peerURLs_.size(); i++) {
@@ -308,7 +237,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < clientURLs_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, clientURLs_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -321,7 +250,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt64Size(1, iD_);
     }
-    if (!getNameBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
     }
     {
@@ -340,7 +269,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getClientURLsList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -363,7 +292,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getPeerURLsList())) return false;
     if (!getClientURLsList()
         .equals(other.getClientURLsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -387,7 +316,7 @@ public int hashCode() {
       hash = (37 * hash) + CLIENTURLS_FIELD_NUMBER;
       hash = (53 * hash) + getClientURLsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -504,30 +433,24 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.Member.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_ = 0L;
-
       name_ = "";
-
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
-      clientURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000002);
+      peerURLs_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
+      clientURLs_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -554,55 +477,29 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.Member buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.Member result = new org.eclipse.ecf.provider.etcd3.grpc.api.Member(this);
-      int from_bitField0_ = bitField0_;
-      result.iD_ = iD_;
-      result.name_ = name_;
-      if (((bitField0_ & 0x00000001) != 0)) {
-        peerURLs_ = peerURLs_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.peerURLs_ = peerURLs_;
-      if (((bitField0_ & 0x00000002) != 0)) {
-        clientURLs_ = clientURLs_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000002);
-      }
-      result.clientURLs_ = clientURLs_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.Member result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        peerURLs_.makeImmutable();
+        result.peerURLs_ = peerURLs_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        clientURLs_.makeImmutable();
+        result.clientURLs_ = clientURLs_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.Member) {
@@ -620,12 +517,13 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.Member other) {
       }
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (!other.peerURLs_.isEmpty()) {
         if (peerURLs_.isEmpty()) {
           peerURLs_ = other.peerURLs_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000004;
         } else {
           ensurePeerURLsIsMutable();
           peerURLs_.addAll(other.peerURLs_);
@@ -635,14 +533,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.Member other) {
       if (!other.clientURLs_.isEmpty()) {
         if (clientURLs_.isEmpty()) {
           clientURLs_ = other.clientURLs_;
-          bitField0_ = (bitField0_ & ~0x00000002);
+          bitField0_ |= 0x00000008;
         } else {
           ensureClientURLsIsMutable();
           clientURLs_.addAll(other.clientURLs_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -657,17 +555,52 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.Member parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensurePeerURLsIsMutable();
+              peerURLs_.add(s);
+              break;
+            } // case 26
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureClientURLsIsMutable();
+              clientURLs_.add(s);
+              break;
+            } // case 34
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.Member) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -695,8 +628,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -709,7 +643,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
@@ -768,11 +702,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -785,8 +717,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -801,22 +733,21 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
 
-    private com.google.protobuf.LazyStringList peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensurePeerURLsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!peerURLs_.isModifiable()) {
         peerURLs_ = new com.google.protobuf.LazyStringArrayList(peerURLs_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000004;
     }
     /**
      * 
@@ -828,7 +759,8 @@ private void ensurePeerURLsIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getPeerURLsList() {
-      return peerURLs_.getUnmodifiableView();
+      peerURLs_.makeImmutable();
+      return peerURLs_;
     }
     /**
      * 
@@ -878,11 +810,10 @@ public java.lang.String getPeerURLs(int index) {
      */
     public Builder setPeerURLs(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.set(index, value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -897,11 +828,10 @@ public Builder setPeerURLs(
      */
     public Builder addPeerURLs(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -919,6 +849,7 @@ public Builder addAllPeerURLs(
       ensurePeerURLsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, peerURLs_);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -931,8 +862,9 @@ public Builder addAllPeerURLs(
      * @return This builder for chaining.
      */
     public Builder clearPeerURLs() {
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000004);;
       onChanged();
       return this;
     }
@@ -947,22 +879,22 @@ public Builder clearPeerURLs() {
      */
     public Builder addPeerURLsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
 
-    private com.google.protobuf.LazyStringList clientURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList clientURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensureClientURLsIsMutable() {
-      if (!((bitField0_ & 0x00000002) != 0)) {
+      if (!clientURLs_.isModifiable()) {
         clientURLs_ = new com.google.protobuf.LazyStringArrayList(clientURLs_);
-        bitField0_ |= 0x00000002;
-       }
+      }
+      bitField0_ |= 0x00000008;
     }
     /**
      * 
@@ -974,7 +906,8 @@ private void ensureClientURLsIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getClientURLsList() {
-      return clientURLs_.getUnmodifiableView();
+      clientURLs_.makeImmutable();
+      return clientURLs_;
     }
     /**
      * 
@@ -1024,11 +957,10 @@ public java.lang.String getClientURLs(int index) {
      */
     public Builder setClientURLs(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureClientURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureClientURLsIsMutable();
       clientURLs_.set(index, value);
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1043,11 +975,10 @@ public Builder setClientURLs(
      */
     public Builder addClientURLs(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureClientURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureClientURLsIsMutable();
       clientURLs_.add(value);
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1065,6 +996,7 @@ public Builder addAllClientURLs(
       ensureClientURLsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, clientURLs_);
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1077,8 +1009,9 @@ public Builder addAllClientURLs(
      * @return This builder for chaining.
      */
     public Builder clearClientURLs() {
-      clientURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000002);
+      clientURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000008);;
       onChanged();
       return this;
     }
@@ -1093,12 +1026,11 @@ public Builder clearClientURLs() {
      */
     public Builder addClientURLsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureClientURLsIsMutable();
       clientURLs_.add(value);
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1135,7 +1067,18 @@ public Member parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Member(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddRequest.java
index 097db9a..45c06f7 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddRequest.java
@@ -16,7 +16,8 @@ private MemberAddRequest(com.google.protobuf.GeneratedMessageV3.Builder build
     super(builder);
   }
   private MemberAddRequest() {
-    peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
   }
 
   @java.lang.Override
@@ -26,61 +27,6 @@ protected java.lang.Object newInstance(
     return new MemberAddRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberAddRequest(
-      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: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              peerURLs_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            peerURLs_.add(s);
-            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)) {
-        peerURLs_ = peerURLs_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberAddRequest_descriptor;
@@ -95,7 +41,9 @@ private MemberAddRequest(
   }
 
   public static final int PEERURLS_FIELD_NUMBER = 1;
-  private com.google.protobuf.LazyStringList peerURLs_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList peerURLs_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * 
    * peerURLs is the list of URLs the added member will use to communicate with the cluster.
@@ -162,7 +110,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < peerURLs_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, peerURLs_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -179,7 +127,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getPeerURLsList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -196,7 +144,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getPeerURLsList()
         .equals(other.getPeerURLsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -211,7 +159,7 @@ public int hashCode() {
       hash = (37 * hash) + PEERURLS_FIELD_NUMBER;
       hash = (53 * hash) + getPeerURLsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -328,24 +276,20 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest.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();
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = 0;
+      peerURLs_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -372,48 +316,19 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest(this);
-      int from_bitField0_ = bitField0_;
-      if (((bitField0_ & 0x00000001) != 0)) {
-        peerURLs_ = peerURLs_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.peerURLs_ = peerURLs_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        peerURLs_.makeImmutable();
+        result.peerURLs_ = peerURLs_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest) {
@@ -429,14 +344,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddReques
       if (!other.peerURLs_.isEmpty()) {
         if (peerURLs_.isEmpty()) {
           peerURLs_ = other.peerURLs_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000001;
         } else {
           ensurePeerURLsIsMutable();
           peerURLs_.addAll(other.peerURLs_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -451,27 +366,47 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensurePeerURLsIsMutable();
+              peerURLs_.add(s);
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
 
-    private com.google.protobuf.LazyStringList peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensurePeerURLsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!peerURLs_.isModifiable()) {
         peerURLs_ = new com.google.protobuf.LazyStringArrayList(peerURLs_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000001;
     }
     /**
      * 
@@ -483,7 +418,8 @@ private void ensurePeerURLsIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getPeerURLsList() {
-      return peerURLs_.getUnmodifiableView();
+      peerURLs_.makeImmutable();
+      return peerURLs_;
     }
     /**
      * 
@@ -533,11 +469,10 @@ public java.lang.String getPeerURLs(int index) {
      */
     public Builder setPeerURLs(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.set(index, value);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -552,11 +487,10 @@ public Builder setPeerURLs(
      */
     public Builder addPeerURLs(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -574,6 +508,7 @@ public Builder addAllPeerURLs(
       ensurePeerURLsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, peerURLs_);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -586,8 +521,9 @@ public Builder addAllPeerURLs(
      * @return This builder for chaining.
      */
     public Builder clearPeerURLs() {
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000001);;
       onChanged();
       return this;
     }
@@ -602,12 +538,11 @@ public Builder clearPeerURLs() {
      */
     public Builder addPeerURLsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -644,7 +579,18 @@ public MemberAddRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberAddRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddResponse.java
index 119de83..85bf189 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberAddResponse.java
@@ -26,87 +26,6 @@ protected java.lang.Object newInstance(
     return new MemberAddResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberAddResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder subBuilder = null;
-            if (member_ != null) {
-              subBuilder = member_.toBuilder();
-            }
-            member_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Member.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(member_);
-              member_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              members_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            members_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Member.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)) {
-        members_ = java.util.Collections.unmodifiableList(members_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberAddResponse_descriptor;
@@ -143,7 +62,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int MEMBER_FIELD_NUMBER = 2;
@@ -181,10 +100,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member getMember() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder getMemberOrBuilder() {
-    return getMember();
+    return member_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.Member.getDefaultInstance() : member_;
   }
 
   public static final int MEMBERS_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List members_;
   /**
    * 
@@ -267,7 +187,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < members_.size(); i++) {
       output.writeMessage(3, members_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -288,7 +208,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, members_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -315,7 +235,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getMembersList()
         .equals(other.getMembersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -338,7 +258,7 @@ public int hashCode() {
       hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
       hash = (53 * hash) + getMembersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -455,41 +375,35 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getMembersFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-      if (memberBuilder_ == null) {
-        member_ = null;
-      } else {
-        member_ = null;
+      member_ = null;
+      if (memberBuilder_ != null) {
+        memberBuilder_.dispose();
         memberBuilder_ = null;
       }
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        members_ = null;
         membersBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000004);
       return this;
     }
 
@@ -516,62 +430,38 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      if (memberBuilder_ == null) {
-        result.member_ = member_;
-      } else {
-        result.member_ = memberBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse result) {
       if (membersBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000004) != 0)) {
           members_ = java.util.Collections.unmodifiableList(members_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
         }
         result.members_ = members_;
       } else {
         result.members_ = membersBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.member_ = memberBuilder_ == null
+            ? member_
+            : memberBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse) {
@@ -594,7 +484,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRespon
         if (!other.members_.isEmpty()) {
           if (members_.isEmpty()) {
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
           } else {
             ensureMembersIsMutable();
             members_.addAll(other.members_);
@@ -607,7 +497,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRespon
             membersBuilder_.dispose();
             membersBuilder_ = null;
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
             membersBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getMembersFieldBuilder() : null;
@@ -616,7 +506,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRespon
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -631,17 +521,57 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getMemberFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.Member m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.Member.parser(),
+                      extensionRegistry);
+              if (membersBuilder_ == null) {
+                ensureMembersIsMutable();
+                members_.add(m);
+              } else {
+                membersBuilder_.addMessage(m);
+              }
+              break;
+            } // case 26
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -654,7 +584,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -676,11 +606,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -690,11 +620,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -702,38 +632,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -777,7 +707,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
      * @return Whether the member field is set.
      */
     public boolean hasMember() {
-      return memberBuilder_ != null || member_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -807,11 +737,11 @@ public Builder setMember(org.eclipse.ecf.provider.etcd3.grpc.api.Member value) {
           throw new NullPointerException();
         }
         member_ = value;
-        onChanged();
       } else {
         memberBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -825,11 +755,11 @@ public Builder setMember(
         org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder builderForValue) {
       if (memberBuilder_ == null) {
         member_ = builderForValue.build();
-        onChanged();
       } else {
         memberBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -841,17 +771,18 @@ public Builder setMember(
      */
     public Builder mergeMember(org.eclipse.ecf.provider.etcd3.grpc.api.Member value) {
       if (memberBuilder_ == null) {
-        if (member_ != null) {
-          member_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.Member.newBuilder(member_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          member_ != null &&
+          member_ != org.eclipse.ecf.provider.etcd3.grpc.api.Member.getDefaultInstance()) {
+          getMemberBuilder().mergeFrom(value);
         } else {
           member_ = value;
         }
-        onChanged();
       } else {
         memberBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -862,14 +793,13 @@ public Builder mergeMember(org.eclipse.ecf.provider.etcd3.grpc.api.Member value)
      * .etcdserverpb.Member member = 2;
      */
     public Builder clearMember() {
-      if (memberBuilder_ == null) {
-        member_ = null;
-        onChanged();
-      } else {
-        member_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      member_ = null;
+      if (memberBuilder_ != null) {
+        memberBuilder_.dispose();
         memberBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -880,7 +810,7 @@ public Builder clearMember() {
      * .etcdserverpb.Member member = 2;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder getMemberBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getMemberFieldBuilder().getBuilder();
     }
@@ -923,9 +853,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder getMemberOrBuilde
     private java.util.List members_ =
       java.util.Collections.emptyList();
     private void ensureMembersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000004) != 0)) {
         members_ = new java.util.ArrayList(members_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000004;
        }
     }
 
@@ -1119,7 +1049,7 @@ public Builder addAllMembers(
     public Builder clearMembers() {
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
       } else {
         membersBuilder_.clear();
@@ -1224,7 +1154,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder addMembersBuilder(
         membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.Member, org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder>(
                 members_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000004) != 0),
                 getParentForChildren(),
                 isClean());
         members_ = null;
@@ -1264,7 +1194,18 @@ public MemberAddResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberAddResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListRequest.java
index d1d438d..3566fca 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new MemberListRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberListRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberListRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest buildPartial()
       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.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public MemberListRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberListRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListResponse.java
index 8c607b1..5fef196 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberListResponse.java
@@ -26,74 +26,6 @@ protected java.lang.Object newInstance(
     return new MemberListResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberListResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              members_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            members_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Member.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)) {
-        members_ = java.util.Collections.unmodifiableList(members_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberListResponse_descriptor;
@@ -130,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int MEMBERS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List members_;
   /**
    * 
@@ -213,7 +146,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < members_.size(); i++) {
       output.writeMessage(2, members_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -230,7 +163,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, members_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -252,7 +185,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getMembersList()
         .equals(other.getMembersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -271,7 +204,7 @@ public int hashCode() {
       hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
       hash = (53 * hash) + getMembersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -388,35 +321,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getMembersFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        members_ = null;
         membersBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -443,57 +371,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse result) {
       if (membersBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           members_ = java.util.Collections.unmodifiableList(members_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.members_ = members_;
       } else {
         result.members_ = membersBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse) {
@@ -513,7 +417,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRespo
         if (!other.members_.isEmpty()) {
           if (members_.isEmpty()) {
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureMembersIsMutable();
             members_.addAll(other.members_);
@@ -526,7 +430,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRespo
             membersBuilder_.dispose();
             membersBuilder_ = null;
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             membersBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getMembersFieldBuilder() : null;
@@ -535,7 +439,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRespo
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -550,17 +454,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.Member m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.Member.parser(),
+                      extensionRegistry);
+              if (membersBuilder_ == null) {
+                ensureMembersIsMutable();
+                members_.add(m);
+              } else {
+                membersBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberListResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -573,7 +510,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -595,11 +532,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -609,11 +546,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -621,38 +558,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -687,9 +624,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List members_ =
       java.util.Collections.emptyList();
     private void ensureMembersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         members_ = new java.util.ArrayList(members_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -883,7 +820,7 @@ public Builder addAllMembers(
     public Builder clearMembers() {
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         membersBuilder_.clear();
@@ -988,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder addMembersBuilder(
         membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.Member, org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder>(
                 members_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         members_ = null;
@@ -1028,7 +965,18 @@ public MemberListResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberListResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveRequest.java
index fbceb1f..7d60c0c 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveRequest.java
@@ -25,53 +25,6 @@ protected java.lang.Object newInstance(
     return new MemberRemoveRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberRemoveRequest(
-      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;
-          case 8: {
-
-            iD_ = input.readUInt64();
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberRemoveRequest_descriptor;
@@ -86,7 +39,7 @@ private MemberRemoveRequest(
   }
 
   public static final int ID_FIELD_NUMBER = 1;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the member ID of the member to remove.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (iD_ != 0L) {
       output.writeUInt64(1, iD_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt64Size(1, iD_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getID()
         != other.getID()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + ID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getID());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest.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_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest(this);
-      result.iD_ = iD_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveReq
       if (other.getID() != 0L) {
         setID(other.getID());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long iD_ ;
     /**
@@ -426,8 +368,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public MemberRemoveRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberRemoveRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveResponse.java
index 9051706..a5b342d 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberRemoveResponse.java
@@ -26,74 +26,6 @@ protected java.lang.Object newInstance(
     return new MemberRemoveResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberRemoveResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              members_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            members_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Member.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)) {
-        members_ = java.util.Collections.unmodifiableList(members_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberRemoveResponse_descriptor;
@@ -130,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int MEMBERS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List members_;
   /**
    * 
@@ -213,7 +146,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < members_.size(); i++) {
       output.writeMessage(2, members_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -230,7 +163,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, members_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -252,7 +185,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getMembersList()
         .equals(other.getMembersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -271,7 +204,7 @@ public int hashCode() {
       hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
       hash = (53 * hash) + getMembersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -388,35 +321,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getMembersFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        members_ = null;
         membersBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -443,57 +371,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse result) {
       if (membersBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           members_ = java.util.Collections.unmodifiableList(members_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.members_ = members_;
       } else {
         result.members_ = membersBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse) {
@@ -513,7 +417,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRes
         if (!other.members_.isEmpty()) {
           if (members_.isEmpty()) {
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureMembersIsMutable();
             members_.addAll(other.members_);
@@ -526,7 +430,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRes
             membersBuilder_.dispose();
             membersBuilder_ = null;
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             membersBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getMembersFieldBuilder() : null;
@@ -535,7 +439,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRes
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -550,17 +454,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.Member m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.Member.parser(),
+                      extensionRegistry);
+              if (membersBuilder_ == null) {
+                ensureMembersIsMutable();
+                members_.add(m);
+              } else {
+                membersBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -573,7 +510,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -595,11 +532,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -609,11 +546,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -621,38 +558,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -687,9 +624,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List members_ =
       java.util.Collections.emptyList();
     private void ensureMembersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         members_ = new java.util.ArrayList(members_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -883,7 +820,7 @@ public Builder addAllMembers(
     public Builder clearMembers() {
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         membersBuilder_.clear();
@@ -988,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder addMembersBuilder(
         membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.Member, org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder>(
                 members_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         members_ = null;
@@ -1028,7 +965,18 @@ public MemberRemoveResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberRemoveResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateRequest.java
index 56651e4..4893dcf 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateRequest.java
@@ -16,7 +16,8 @@ private MemberUpdateRequest(com.google.protobuf.GeneratedMessageV3.Builder bu
     super(builder);
   }
   private MemberUpdateRequest() {
-    peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
   }
 
   @java.lang.Override
@@ -26,66 +27,6 @@ protected java.lang.Object newInstance(
     return new MemberUpdateRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberUpdateRequest(
-      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: {
-
-            iD_ = input.readUInt64();
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              peerURLs_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            peerURLs_.add(s);
-            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)) {
-        peerURLs_ = peerURLs_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberUpdateRequest_descriptor;
@@ -100,7 +41,7 @@ private MemberUpdateRequest(
   }
 
   public static final int ID_FIELD_NUMBER = 1;
-  private long iD_;
+  private long iD_ = 0L;
   /**
    * 
    * ID is the member ID of the member to update.
@@ -115,7 +56,9 @@ public long getID() {
   }
 
   public static final int PEERURLS_FIELD_NUMBER = 2;
-  private com.google.protobuf.LazyStringList peerURLs_;
+  @SuppressWarnings("serial")
+  private com.google.protobuf.LazyStringArrayList peerURLs_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    * 
    * peerURLs is the new list of URLs the member will use to communicate with the cluster.
@@ -185,7 +128,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < peerURLs_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, peerURLs_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -206,7 +149,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getPeerURLsList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -225,7 +168,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getID()) return false;
     if (!getPeerURLsList()
         .equals(other.getPeerURLsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -243,7 +186,7 @@ public int hashCode() {
       hash = (37 * hash) + PEERURLS_FIELD_NUMBER;
       hash = (53 * hash) + getPeerURLsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -360,26 +303,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest.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_ = 0L;
-
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      peerURLs_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
       return this;
     }
 
@@ -406,49 +344,22 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest(this);
-      int from_bitField0_ = bitField0_;
-      result.iD_ = iD_;
-      if (((bitField0_ & 0x00000001) != 0)) {
-        peerURLs_ = peerURLs_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.peerURLs_ = peerURLs_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.iD_ = iD_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        peerURLs_.makeImmutable();
+        result.peerURLs_ = peerURLs_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest) {
@@ -467,14 +378,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateReq
       if (!other.peerURLs_.isEmpty()) {
         if (peerURLs_.isEmpty()) {
           peerURLs_ = other.peerURLs_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ |= 0x00000002;
         } else {
           ensurePeerURLsIsMutable();
           peerURLs_.addAll(other.peerURLs_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -489,17 +400,41 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              iD_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensurePeerURLsIsMutable();
+              peerURLs_.add(s);
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -527,8 +462,9 @@ public long getID() {
      * @return This builder for chaining.
      */
     public Builder setID(long value) {
-      
+
       iD_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -541,18 +477,19 @@ public Builder setID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       iD_ = 0L;
       onChanged();
       return this;
     }
 
-    private com.google.protobuf.LazyStringList peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     private void ensurePeerURLsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!peerURLs_.isModifiable()) {
         peerURLs_ = new com.google.protobuf.LazyStringArrayList(peerURLs_);
-        bitField0_ |= 0x00000001;
-       }
+      }
+      bitField0_ |= 0x00000002;
     }
     /**
      * 
@@ -564,7 +501,8 @@ private void ensurePeerURLsIsMutable() {
      */
     public com.google.protobuf.ProtocolStringList
         getPeerURLsList() {
-      return peerURLs_.getUnmodifiableView();
+      peerURLs_.makeImmutable();
+      return peerURLs_;
     }
     /**
      * 
@@ -614,11 +552,10 @@ public java.lang.String getPeerURLs(int index) {
      */
     public Builder setPeerURLs(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.set(index, value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -633,11 +570,10 @@ public Builder setPeerURLs(
      */
     public Builder addPeerURLs(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensurePeerURLsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -655,6 +591,7 @@ public Builder addAllPeerURLs(
       ensurePeerURLsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(
           values, peerURLs_);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -667,8 +604,9 @@ public Builder addAllPeerURLs(
      * @return This builder for chaining.
      */
     public Builder clearPeerURLs() {
-      peerURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      peerURLs_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
+      bitField0_ = (bitField0_ & ~0x00000002);;
       onChanged();
       return this;
     }
@@ -683,12 +621,11 @@ public Builder clearPeerURLs() {
      */
     public Builder addPeerURLsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensurePeerURLsIsMutable();
       peerURLs_.add(value);
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -725,7 +662,18 @@ public MemberUpdateRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberUpdateRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateResponse.java
index 9f9419b..0c237b4 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MemberUpdateResponse.java
@@ -26,74 +26,6 @@ protected java.lang.Object newInstance(
     return new MemberUpdateResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MemberUpdateResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              members_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            members_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Member.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)) {
-        members_ = java.util.Collections.unmodifiableList(members_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MemberUpdateResponse_descriptor;
@@ -130,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int MEMBERS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List members_;
   /**
    * 
@@ -213,7 +146,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < members_.size(); i++) {
       output.writeMessage(2, members_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -230,7 +163,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, members_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -252,7 +185,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getMembersList()
         .equals(other.getMembersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -271,7 +204,7 @@ public int hashCode() {
       hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
       hash = (53 * hash) + getMembersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -388,35 +321,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getMembersFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        members_ = null;
         membersBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -443,57 +371,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse result) {
       if (membersBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           members_ = java.util.Collections.unmodifiableList(members_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.members_ = members_;
       } else {
         result.members_ = membersBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse) {
@@ -513,7 +417,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRes
         if (!other.members_.isEmpty()) {
           if (members_.isEmpty()) {
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureMembersIsMutable();
             members_.addAll(other.members_);
@@ -526,7 +430,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRes
             membersBuilder_.dispose();
             membersBuilder_ = null;
             members_ = other.members_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             membersBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getMembersFieldBuilder() : null;
@@ -535,7 +439,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRes
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -550,17 +454,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.Member m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.Member.parser(),
+                      extensionRegistry);
+              if (membersBuilder_ == null) {
+                ensureMembersIsMutable();
+                members_.add(m);
+              } else {
+                membersBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -573,7 +510,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -595,11 +532,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -609,11 +546,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -621,38 +558,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -687,9 +624,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List members_ =
       java.util.Collections.emptyList();
     private void ensureMembersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         members_ = new java.util.ArrayList(members_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -883,7 +820,7 @@ public Builder addAllMembers(
     public Builder clearMembers() {
       if (membersBuilder_ == null) {
         members_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         membersBuilder_.clear();
@@ -988,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder addMembersBuilder(
         membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.Member, org.eclipse.ecf.provider.etcd3.grpc.api.Member.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.MemberOrBuilder>(
                 members_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         members_ = null;
@@ -1028,7 +965,18 @@ public MemberUpdateResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MemberUpdateResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderRequest.java
index 4210d69..80e2adb 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderRequest.java
@@ -25,53 +25,6 @@ protected java.lang.Object newInstance(
     return new MoveLeaderRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MoveLeaderRequest(
-      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;
-          case 8: {
-
-            targetID_ = input.readUInt64();
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MoveLeaderRequest_descriptor;
@@ -86,7 +39,7 @@ private MoveLeaderRequest(
   }
 
   public static final int TARGETID_FIELD_NUMBER = 1;
-  private long targetID_;
+  private long targetID_ = 0L;
   /**
    * 
    * targetID is the node ID for the new leader.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (targetID_ != 0L) {
       output.writeUInt64(1, targetID_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt64Size(1, targetID_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getTargetID()
         != other.getTargetID()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + TARGETID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getTargetID());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest.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;
       targetID_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest(this);
-      result.targetID_ = targetID_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.targetID_ = targetID_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderReque
       if (other.getTargetID() != 0L) {
         setTargetID(other.getTargetID());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              targetID_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long targetID_ ;
     /**
@@ -426,8 +368,9 @@ public long getTargetID() {
      * @return This builder for chaining.
      */
     public Builder setTargetID(long value) {
-      
+
       targetID_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setTargetID(long value) {
      * @return This builder for chaining.
      */
     public Builder clearTargetID() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       targetID_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public MoveLeaderRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MoveLeaderRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderResponse.java
index 7a315aa..f6783ce 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/MoveLeaderResponse.java
@@ -25,61 +25,6 @@ protected java.lang.Object newInstance(
     return new MoveLeaderResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private MoveLeaderResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_MoveLeaderResponse_descriptor;
@@ -116,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -136,7 +81,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -149,7 +94,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -169,7 +114,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getHeader()
           .equals(other.getHeader())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -184,7 +129,7 @@ public int hashCode() {
       hash = (37 * hash) + HEADER_FIELD_NUMBER;
       hash = (53 * hash) + getHeader().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -301,26 +246,21 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       return this;
@@ -349,47 +289,20 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse) {
@@ -405,7 +318,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRespo
       if (other.hasHeader()) {
         mergeHeader(other.getHeader());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -420,19 +333,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -442,7 +376,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -464,11 +398,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -478,11 +412,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -490,38 +424,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -585,7 +519,18 @@ public MoveLeaderResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new MoveLeaderResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutRequest.java
index 731e38c..de25b81 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutRequest.java
@@ -27,78 +27,6 @@ protected java.lang.Object newInstance(
     return new PutRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private PutRequest(
-      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;
-          case 10: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 18: {
-
-            value_ = input.readBytes();
-            break;
-          }
-          case 24: {
-
-            lease_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            prevKv_ = input.readBool();
-            break;
-          }
-          case 40: {
-
-            ignoreValue_ = input.readBool();
-            break;
-          }
-          case 48: {
-
-            ignoreLease_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_PutRequest_descriptor;
@@ -113,7 +41,7 @@ private PutRequest(
   }
 
   public static final int KEY_FIELD_NUMBER = 1;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the key, in bytes, to put into the key-value store.
@@ -128,7 +56,7 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int VALUE_FIELD_NUMBER = 2;
-  private com.google.protobuf.ByteString value_;
+  private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * value is the value, in bytes, to associate with the key in the key-value store.
@@ -143,7 +71,7 @@ public com.google.protobuf.ByteString getValue() {
   }
 
   public static final int LEASE_FIELD_NUMBER = 3;
-  private long lease_;
+  private long lease_ = 0L;
   /**
    * 
    * lease is the lease ID to associate with the key in the key-value store. A lease
@@ -159,7 +87,7 @@ public long getLease() {
   }
 
   public static final int PREV_KV_FIELD_NUMBER = 4;
-  private boolean prevKv_;
+  private boolean prevKv_ = false;
   /**
    * 
    * If prev_kv is set, etcd gets the previous key-value pair before changing it.
@@ -175,7 +103,7 @@ public boolean getPrevKv() {
   }
 
   public static final int IGNORE_VALUE_FIELD_NUMBER = 5;
-  private boolean ignoreValue_;
+  private boolean ignoreValue_ = false;
   /**
    * 
    * If ignore_value is set, etcd updates the key using its current value.
@@ -191,7 +119,7 @@ public boolean getIgnoreValue() {
   }
 
   public static final int IGNORE_LEASE_FIELD_NUMBER = 6;
-  private boolean ignoreLease_;
+  private boolean ignoreLease_ = false;
   /**
    * 
    * If ignore_lease is set, etcd updates the key using its current lease.
@@ -238,7 +166,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (ignoreLease_ != false) {
       output.writeBool(6, ignoreLease_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -271,7 +199,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(6, ignoreLease_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -298,7 +226,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getIgnoreValue()) return false;
     if (getIgnoreLease()
         != other.getIgnoreLease()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -325,7 +253,7 @@ public int hashCode() {
     hash = (37 * hash) + IGNORE_LEASE_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getIgnoreLease());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -442,34 +370,24 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest.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;
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       value_ = com.google.protobuf.ByteString.EMPTY;
-
       lease_ = 0L;
-
       prevKv_ = false;
-
       ignoreValue_ = false;
-
       ignoreLease_ = false;
-
       return this;
     }
 
@@ -496,48 +414,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest(this);
-      result.key_ = key_;
-      result.value_ = value_;
-      result.lease_ = lease_;
-      result.prevKv_ = prevKv_;
-      result.ignoreValue_ = ignoreValue_;
-      result.ignoreLease_ = ignoreLease_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.value_ = value_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.lease_ = lease_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.prevKv_ = prevKv_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.ignoreValue_ = ignoreValue_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.ignoreLease_ = ignoreLease_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest) {
@@ -568,7 +471,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest othe
       if (other.getIgnoreLease() != false) {
         setIgnoreLease(other.getIgnoreLease());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -583,19 +486,63 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              value_ = input.readBytes();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              lease_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              prevKv_ = input.readBool();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 40: {
+              ignoreValue_ = input.readBool();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 40
+            case 48: {
+              ignoreLease_ = input.readBool();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
     /**
@@ -620,11 +567,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -637,7 +582,7 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
@@ -666,11 +611,9 @@ 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(); }
       value_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -683,7 +626,7 @@ public Builder setValue(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearValue() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       value_ = getDefaultInstance().getValue();
       onChanged();
       return this;
@@ -714,8 +657,9 @@ public long getLease() {
      * @return This builder for chaining.
      */
     public Builder setLease(long value) {
-      
+
       lease_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -729,7 +673,7 @@ public Builder setLease(long value) {
      * @return This builder for chaining.
      */
     public Builder clearLease() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       lease_ = 0L;
       onChanged();
       return this;
@@ -760,8 +704,9 @@ public boolean getPrevKv() {
      * @return This builder for chaining.
      */
     public Builder setPrevKv(boolean value) {
-      
+
       prevKv_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -775,7 +720,7 @@ public Builder setPrevKv(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearPrevKv() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       prevKv_ = false;
       onChanged();
       return this;
@@ -806,8 +751,9 @@ public boolean getIgnoreValue() {
      * @return This builder for chaining.
      */
     public Builder setIgnoreValue(boolean value) {
-      
+
       ignoreValue_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -821,7 +767,7 @@ public Builder setIgnoreValue(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearIgnoreValue() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       ignoreValue_ = false;
       onChanged();
       return this;
@@ -852,8 +798,9 @@ public boolean getIgnoreLease() {
      * @return This builder for chaining.
      */
     public Builder setIgnoreLease(boolean value) {
-      
+
       ignoreLease_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -867,7 +814,7 @@ public Builder setIgnoreLease(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearIgnoreLease() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       ignoreLease_ = false;
       onChanged();
       return this;
@@ -905,7 +852,18 @@ public PutRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PutRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutResponse.java
index d03c44b..4bc3073 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/PutResponse.java
@@ -25,74 +25,6 @@ protected java.lang.Object newInstance(
     return new PutResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private PutResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder subBuilder = null;
-            if (prevKv_ != null) {
-              subBuilder = prevKv_.toBuilder();
-            }
-            prevKv_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(prevKv_);
-              prevKv_ = subBuilder.buildPartial();
-            }
-
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_PutResponse_descriptor;
@@ -129,7 +61,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int PREV_KV_FIELD_NUMBER = 2;
@@ -167,7 +99,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue getPrevKv() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder getPrevKvOrBuilder() {
-    return getPrevKv();
+    return prevKv_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance() : prevKv_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -190,7 +122,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (prevKv_ != null) {
       output.writeMessage(2, getPrevKv());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -207,7 +139,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getPrevKv());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -232,7 +164,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getPrevKv()
           .equals(other.getPrevKv())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -251,7 +183,7 @@ public int hashCode() {
       hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
       hash = (53 * hash) + getPrevKv().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -368,32 +300,26 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-      if (prevKvBuilder_ == null) {
-        prevKv_ = null;
-      } else {
-        prevKv_ = null;
+      prevKv_ = null;
+      if (prevKvBuilder_ != null) {
+        prevKvBuilder_.dispose();
         prevKvBuilder_ = null;
       }
       return this;
@@ -422,52 +348,25 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      if (prevKvBuilder_ == null) {
-        result.prevKv_ = prevKv_;
-      } else {
-        result.prevKv_ = prevKvBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.prevKv_ = prevKvBuilder_ == null
+            ? prevKv_
+            : prevKvBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse) {
@@ -486,7 +385,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse oth
       if (other.hasPrevKv()) {
         mergePrevKv(other.getPrevKv());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -501,19 +400,47 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getPrevKvFieldBuilder().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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -523,7 +450,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -545,11 +472,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -559,11 +486,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -571,38 +498,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -646,7 +573,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
      * @return Whether the prevKv field is set.
      */
     public boolean hasPrevKv() {
-      return prevKvBuilder_ != null || prevKv_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -676,11 +603,11 @@ public Builder setPrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue val
           throw new NullPointerException();
         }
         prevKv_ = value;
-        onChanged();
       } else {
         prevKvBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -694,11 +621,11 @@ public Builder setPrevKv(
         org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder builderForValue) {
       if (prevKvBuilder_ == null) {
         prevKv_ = builderForValue.build();
-        onChanged();
       } else {
         prevKvBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -710,17 +637,18 @@ public Builder setPrevKv(
      */
     public Builder mergePrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue value) {
       if (prevKvBuilder_ == null) {
-        if (prevKv_ != null) {
-          prevKv_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.newBuilder(prevKv_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          prevKv_ != null &&
+          prevKv_ != org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance()) {
+          getPrevKvBuilder().mergeFrom(value);
         } else {
           prevKv_ = value;
         }
-        onChanged();
       } else {
         prevKvBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -731,14 +659,13 @@ public Builder mergePrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue v
      * .mvccpb.KeyValue prev_kv = 2;
      */
     public Builder clearPrevKv() {
-      if (prevKvBuilder_ == null) {
-        prevKv_ = null;
-        onChanged();
-      } else {
-        prevKv_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      prevKv_ = null;
+      if (prevKvBuilder_ != null) {
+        prevKvBuilder_.dispose();
         prevKvBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -749,7 +676,7 @@ public Builder clearPrevKv() {
      * .mvccpb.KeyValue prev_kv = 2;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder getPrevKvBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getPrevKvFieldBuilder().getBuilder();
     }
@@ -821,7 +748,18 @@ public PutResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PutResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeRequest.java
index dcd9f87..ee6a2eb 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeRequest.java
@@ -29,115 +29,6 @@ protected java.lang.Object newInstance(
     return new RangeRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private RangeRequest(
-      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;
-          case 10: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 18: {
-
-            rangeEnd_ = input.readBytes();
-            break;
-          }
-          case 24: {
-
-            limit_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            revision_ = input.readInt64();
-            break;
-          }
-          case 40: {
-            int rawValue = input.readEnum();
-
-            sortOrder_ = rawValue;
-            break;
-          }
-          case 48: {
-            int rawValue = input.readEnum();
-
-            sortTarget_ = rawValue;
-            break;
-          }
-          case 56: {
-
-            serializable_ = input.readBool();
-            break;
-          }
-          case 64: {
-
-            keysOnly_ = input.readBool();
-            break;
-          }
-          case 72: {
-
-            countOnly_ = input.readBool();
-            break;
-          }
-          case 80: {
-
-            minModRevision_ = input.readInt64();
-            break;
-          }
-          case 88: {
-
-            maxModRevision_ = input.readInt64();
-            break;
-          }
-          case 96: {
-
-            minCreateRevision_ = input.readInt64();
-            break;
-          }
-          case 104: {
-
-            maxCreateRevision_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_RangeRequest_descriptor;
@@ -428,7 +319,7 @@ private SortTarget(int value) {
   }
 
   public static final int KEY_FIELD_NUMBER = 1;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the first key for the range. If range_end is not given, the request only looks up key.
@@ -443,7 +334,7 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int RANGE_END_FIELD_NUMBER = 2;
-  private com.google.protobuf.ByteString rangeEnd_;
+  private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * range_end is the upper bound on the requested range [key, range_end).
@@ -462,7 +353,7 @@ public com.google.protobuf.ByteString getRangeEnd() {
   }
 
   public static final int LIMIT_FIELD_NUMBER = 3;
-  private long limit_;
+  private long limit_ = 0L;
   /**
    * 
    * limit is a limit on the number of keys returned for the request. When limit is set to 0,
@@ -478,7 +369,7 @@ public long getLimit() {
   }
 
   public static final int REVISION_FIELD_NUMBER = 4;
-  private long revision_;
+  private long revision_ = 0L;
   /**
    * 
    * revision is the point-in-time of the key-value store to use for the range.
@@ -495,7 +386,7 @@ public long getRevision() {
   }
 
   public static final int SORT_ORDER_FIELD_NUMBER = 5;
-  private int sortOrder_;
+  private int sortOrder_ = 0;
   /**
    * 
    * sort_order is the order for returned sorted results.
@@ -516,13 +407,12 @@ public long getRevision() {
    * @return The sortOrder.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder getSortOrder() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.valueOf(sortOrder_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.forNumber(sortOrder_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.UNRECOGNIZED : result;
   }
 
   public static final int SORT_TARGET_FIELD_NUMBER = 6;
-  private int sortTarget_;
+  private int sortTarget_ = 0;
   /**
    * 
    * sort_target is the key-value field to use for sorting.
@@ -543,13 +433,12 @@ public long getRevision() {
    * @return The sortTarget.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget getSortTarget() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.valueOf(sortTarget_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.forNumber(sortTarget_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.UNRECOGNIZED : result;
   }
 
   public static final int SERIALIZABLE_FIELD_NUMBER = 7;
-  private boolean serializable_;
+  private boolean serializable_ = false;
   /**
    * 
    * serializable sets the range request to use serializable member-local reads.
@@ -569,7 +458,7 @@ public boolean getSerializable() {
   }
 
   public static final int KEYS_ONLY_FIELD_NUMBER = 8;
-  private boolean keysOnly_;
+  private boolean keysOnly_ = false;
   /**
    * 
    * keys_only when set returns only the keys and not the values.
@@ -584,7 +473,7 @@ public boolean getKeysOnly() {
   }
 
   public static final int COUNT_ONLY_FIELD_NUMBER = 9;
-  private boolean countOnly_;
+  private boolean countOnly_ = false;
   /**
    * 
    * count_only when set returns only the count of the keys in the range.
@@ -599,7 +488,7 @@ public boolean getCountOnly() {
   }
 
   public static final int MIN_MOD_REVISION_FIELD_NUMBER = 10;
-  private long minModRevision_;
+  private long minModRevision_ = 0L;
   /**
    * 
    * min_mod_revision is the lower bound for returned key mod revisions; all keys with
@@ -615,7 +504,7 @@ public long getMinModRevision() {
   }
 
   public static final int MAX_MOD_REVISION_FIELD_NUMBER = 11;
-  private long maxModRevision_;
+  private long maxModRevision_ = 0L;
   /**
    * 
    * max_mod_revision is the upper bound for returned key mod revisions; all keys with
@@ -631,7 +520,7 @@ public long getMaxModRevision() {
   }
 
   public static final int MIN_CREATE_REVISION_FIELD_NUMBER = 12;
-  private long minCreateRevision_;
+  private long minCreateRevision_ = 0L;
   /**
    * 
    * min_create_revision is the lower bound for returned key create revisions; all keys with
@@ -647,7 +536,7 @@ public long getMinCreateRevision() {
   }
 
   public static final int MAX_CREATE_REVISION_FIELD_NUMBER = 13;
-  private long maxCreateRevision_;
+  private long maxCreateRevision_ = 0L;
   /**
    * 
    * max_create_revision is the upper bound for returned key create revisions; all keys with
@@ -715,7 +604,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (maxCreateRevision_ != 0L) {
       output.writeInt64(13, maxCreateRevision_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -776,7 +665,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(13, maxCreateRevision_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -815,7 +704,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getMinCreateRevision()) return false;
     if (getMaxCreateRevision()
         != other.getMaxCreateRevision()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -861,7 +750,7 @@ public int hashCode() {
     hash = (37 * hash) + MAX_CREATE_REVISION_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getMaxCreateRevision());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -978,48 +867,31 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.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;
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
-
       limit_ = 0L;
-
       revision_ = 0L;
-
       sortOrder_ = 0;
-
       sortTarget_ = 0;
-
       serializable_ = false;
-
       keysOnly_ = false;
-
       countOnly_ = false;
-
       minModRevision_ = 0L;
-
       maxModRevision_ = 0L;
-
       minCreateRevision_ = 0L;
-
       maxCreateRevision_ = 0L;
-
       return this;
     }
 
@@ -1046,55 +918,54 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest(this);
-      result.key_ = key_;
-      result.rangeEnd_ = rangeEnd_;
-      result.limit_ = limit_;
-      result.revision_ = revision_;
-      result.sortOrder_ = sortOrder_;
-      result.sortTarget_ = sortTarget_;
-      result.serializable_ = serializable_;
-      result.keysOnly_ = keysOnly_;
-      result.countOnly_ = countOnly_;
-      result.minModRevision_ = minModRevision_;
-      result.maxModRevision_ = maxModRevision_;
-      result.minCreateRevision_ = minCreateRevision_;
-      result.maxCreateRevision_ = maxCreateRevision_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.rangeEnd_ = rangeEnd_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.limit_ = limit_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.revision_ = revision_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.sortOrder_ = sortOrder_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.sortTarget_ = sortTarget_;
+      }
+      if (((from_bitField0_ & 0x00000040) != 0)) {
+        result.serializable_ = serializable_;
+      }
+      if (((from_bitField0_ & 0x00000080) != 0)) {
+        result.keysOnly_ = keysOnly_;
+      }
+      if (((from_bitField0_ & 0x00000100) != 0)) {
+        result.countOnly_ = countOnly_;
+      }
+      if (((from_bitField0_ & 0x00000200) != 0)) {
+        result.minModRevision_ = minModRevision_;
+      }
+      if (((from_bitField0_ & 0x00000400) != 0)) {
+        result.maxModRevision_ = maxModRevision_;
+      }
+      if (((from_bitField0_ & 0x00000800) != 0)) {
+        result.minCreateRevision_ = minCreateRevision_;
+      }
+      if (((from_bitField0_ & 0x00001000) != 0)) {
+        result.maxCreateRevision_ = maxCreateRevision_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest) {
@@ -1146,7 +1017,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest ot
       if (other.getMaxCreateRevision() != 0L) {
         setMaxCreateRevision(other.getMaxCreateRevision());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1161,19 +1032,98 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              rangeEnd_ = input.readBytes();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              limit_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              revision_ = input.readInt64();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 40: {
+              sortOrder_ = input.readEnum();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 40
+            case 48: {
+              sortTarget_ = input.readEnum();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            case 56: {
+              serializable_ = input.readBool();
+              bitField0_ |= 0x00000040;
+              break;
+            } // case 56
+            case 64: {
+              keysOnly_ = input.readBool();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 64
+            case 72: {
+              countOnly_ = input.readBool();
+              bitField0_ |= 0x00000100;
+              break;
+            } // case 72
+            case 80: {
+              minModRevision_ = input.readInt64();
+              bitField0_ |= 0x00000200;
+              break;
+            } // case 80
+            case 88: {
+              maxModRevision_ = input.readInt64();
+              bitField0_ |= 0x00000400;
+              break;
+            } // case 88
+            case 96: {
+              minCreateRevision_ = input.readInt64();
+              bitField0_ |= 0x00000800;
+              break;
+            } // case 96
+            case 104: {
+              maxCreateRevision_ = input.readInt64();
+              bitField0_ |= 0x00001000;
+              break;
+            } // case 104
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
     /**
@@ -1198,11 +1148,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1215,7 +1163,7 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
@@ -1252,11 +1200,9 @@ public com.google.protobuf.ByteString getRangeEnd() {
      * @return This builder for chaining.
      */
     public Builder setRangeEnd(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       rangeEnd_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1273,7 +1219,7 @@ public Builder setRangeEnd(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearRangeEnd() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       rangeEnd_ = getDefaultInstance().getRangeEnd();
       onChanged();
       return this;
@@ -1304,8 +1250,9 @@ public long getLimit() {
      * @return This builder for chaining.
      */
     public Builder setLimit(long value) {
-      
+
       limit_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1319,7 +1266,7 @@ public Builder setLimit(long value) {
      * @return This builder for chaining.
      */
     public Builder clearLimit() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       limit_ = 0L;
       onChanged();
       return this;
@@ -1352,8 +1299,9 @@ public long getRevision() {
      * @return This builder for chaining.
      */
     public Builder setRevision(long value) {
-      
+
       revision_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1368,7 +1316,7 @@ public Builder setRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       revision_ = 0L;
       onChanged();
       return this;
@@ -1396,8 +1344,8 @@ public Builder clearRevision() {
      * @return This builder for chaining.
      */
     public Builder setSortOrderValue(int value) {
-      
       sortOrder_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1411,8 +1359,7 @@ public Builder setSortOrderValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder getSortOrder() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.valueOf(sortOrder_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.forNumber(sortOrder_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortOrder.UNRECOGNIZED : result;
     }
     /**
@@ -1428,7 +1375,7 @@ public Builder setSortOrder(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000010;
       sortOrder_ = value.getNumber();
       onChanged();
       return this;
@@ -1442,7 +1389,7 @@ public Builder setSortOrder(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest
      * @return This builder for chaining.
      */
     public Builder clearSortOrder() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       sortOrder_ = 0;
       onChanged();
       return this;
@@ -1470,8 +1417,8 @@ public Builder clearSortOrder() {
      * @return This builder for chaining.
      */
     public Builder setSortTargetValue(int value) {
-      
       sortTarget_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -1485,8 +1432,7 @@ public Builder setSortTargetValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget getSortTarget() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.valueOf(sortTarget_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget result = org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.forNumber(sortTarget_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.SortTarget.UNRECOGNIZED : result;
     }
     /**
@@ -1502,7 +1448,7 @@ public Builder setSortTarget(org.eclipse.ecf.provider.etcd3.grpc.api.RangeReques
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000020;
       sortTarget_ = value.getNumber();
       onChanged();
       return this;
@@ -1516,7 +1462,7 @@ public Builder setSortTarget(org.eclipse.ecf.provider.etcd3.grpc.api.RangeReques
      * @return This builder for chaining.
      */
     public Builder clearSortTarget() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       sortTarget_ = 0;
       onChanged();
       return this;
@@ -1555,8 +1501,9 @@ public boolean getSerializable() {
      * @return This builder for chaining.
      */
     public Builder setSerializable(boolean value) {
-      
+
       serializable_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1574,7 +1521,7 @@ public Builder setSerializable(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearSerializable() {
-      
+      bitField0_ = (bitField0_ & ~0x00000040);
       serializable_ = false;
       onChanged();
       return this;
@@ -1603,8 +1550,9 @@ public boolean getKeysOnly() {
      * @return This builder for chaining.
      */
     public Builder setKeysOnly(boolean value) {
-      
+
       keysOnly_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1617,7 +1565,7 @@ public Builder setKeysOnly(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearKeysOnly() {
-      
+      bitField0_ = (bitField0_ & ~0x00000080);
       keysOnly_ = false;
       onChanged();
       return this;
@@ -1646,8 +1594,9 @@ public boolean getCountOnly() {
      * @return This builder for chaining.
      */
     public Builder setCountOnly(boolean value) {
-      
+
       countOnly_ = value;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -1660,7 +1609,7 @@ public Builder setCountOnly(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearCountOnly() {
-      
+      bitField0_ = (bitField0_ & ~0x00000100);
       countOnly_ = false;
       onChanged();
       return this;
@@ -1691,8 +1640,9 @@ public long getMinModRevision() {
      * @return This builder for chaining.
      */
     public Builder setMinModRevision(long value) {
-      
+
       minModRevision_ = value;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -1706,7 +1656,7 @@ public Builder setMinModRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMinModRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000200);
       minModRevision_ = 0L;
       onChanged();
       return this;
@@ -1737,8 +1687,9 @@ public long getMaxModRevision() {
      * @return This builder for chaining.
      */
     public Builder setMaxModRevision(long value) {
-      
+
       maxModRevision_ = value;
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -1752,7 +1703,7 @@ public Builder setMaxModRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMaxModRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000400);
       maxModRevision_ = 0L;
       onChanged();
       return this;
@@ -1783,8 +1734,9 @@ public long getMinCreateRevision() {
      * @return This builder for chaining.
      */
     public Builder setMinCreateRevision(long value) {
-      
+
       minCreateRevision_ = value;
+      bitField0_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -1798,7 +1750,7 @@ public Builder setMinCreateRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMinCreateRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000800);
       minCreateRevision_ = 0L;
       onChanged();
       return this;
@@ -1829,8 +1781,9 @@ public long getMaxCreateRevision() {
      * @return This builder for chaining.
      */
     public Builder setMaxCreateRevision(long value) {
-      
+
       maxCreateRevision_ = value;
+      bitField0_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -1844,7 +1797,7 @@ public Builder setMaxCreateRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMaxCreateRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00001000);
       maxCreateRevision_ = 0L;
       onChanged();
       return this;
@@ -1882,7 +1835,18 @@ public RangeRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new RangeRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeResponse.java
index cfc3072..5b27a91 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RangeResponse.java
@@ -26,84 +26,6 @@ protected java.lang.Object newInstance(
     return new RangeResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private RangeResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              kvs_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            kvs_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(), extensionRegistry));
-            break;
-          }
-          case 24: {
-
-            more_ = input.readBool();
-            break;
-          }
-          case 32: {
-
-            count_ = 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 {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        kvs_ = java.util.Collections.unmodifiableList(kvs_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_RangeResponse_descriptor;
@@ -140,10 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int KVS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List kvs_;
   /**
    * 
@@ -209,7 +132,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder getKvsOrBuil
   }
 
   public static final int MORE_FIELD_NUMBER = 3;
-  private boolean more_;
+  private boolean more_ = false;
   /**
    * 
    * more indicates if there are more keys to return in the requested range.
@@ -224,7 +147,7 @@ public boolean getMore() {
   }
 
   public static final int COUNT_FIELD_NUMBER = 4;
-  private long count_;
+  private long count_ = 0L;
   /**
    * 
    * count is set to the number of keys within the range when requested.
@@ -264,7 +187,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (count_ != 0L) {
       output.writeInt64(4, count_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -289,7 +212,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(4, count_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -315,7 +238,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getMore()) return false;
     if (getCount()
         != other.getCount()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -340,7 +263,7 @@ public int hashCode() {
     hash = (37 * hash) + COUNT_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getCount());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -457,39 +380,32 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getKvsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       if (kvsBuilder_ == null) {
         kvs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        kvs_ = null;
         kvsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       more_ = false;
-
       count_ = 0L;
-
       return this;
     }
 
@@ -516,59 +432,39 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse result) {
       if (kvsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           kvs_ = java.util.Collections.unmodifiableList(kvs_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.kvs_ = kvs_;
       } else {
         result.kvs_ = kvsBuilder_.build();
       }
-      result.more_ = more_;
-      result.count_ = count_;
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.more_ = more_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.count_ = count_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse) {
@@ -588,7 +484,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse o
         if (!other.kvs_.isEmpty()) {
           if (kvs_.isEmpty()) {
             kvs_ = other.kvs_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureKvsIsMutable();
             kvs_.addAll(other.kvs_);
@@ -601,7 +497,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse o
             kvsBuilder_.dispose();
             kvsBuilder_ = null;
             kvs_ = other.kvs_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             kvsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getKvsFieldBuilder() : null;
@@ -616,7 +512,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse o
       if (other.getCount() != 0L) {
         setCount(other.getCount());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -631,17 +527,60 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(),
+                      extensionRegistry);
+              if (kvsBuilder_ == null) {
+                ensureKvsIsMutable();
+                kvs_.add(m);
+              } else {
+                kvsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            case 24: {
+              more_ = input.readBool();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              count_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -654,7 +593,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -676,11 +615,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -690,11 +629,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -702,38 +641,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -768,9 +707,9 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeader
     private java.util.List kvs_ =
       java.util.Collections.emptyList();
     private void ensureKvsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         kvs_ = new java.util.ArrayList(kvs_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -975,7 +914,7 @@ public Builder addAllKvs(
     public Builder clearKvs() {
       if (kvsBuilder_ == null) {
         kvs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         kvsBuilder_.clear();
@@ -1087,7 +1026,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder addKvsBuilder
         kvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue, org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder>(
                 kvs_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         kvs_ = null;
@@ -1118,8 +1057,9 @@ public boolean getMore() {
      * @return This builder for chaining.
      */
     public Builder setMore(boolean value) {
-      
+
       more_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1132,7 +1072,7 @@ public Builder setMore(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearMore() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       more_ = false;
       onChanged();
       return this;
@@ -1161,8 +1101,9 @@ public long getCount() {
      * @return This builder for chaining.
      */
     public Builder setCount(long value) {
-      
+
       count_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1175,7 +1116,7 @@ public Builder setCount(long value) {
      * @return This builder for chaining.
      */
     public Builder clearCount() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       count_ = 0L;
       onChanged();
       return this;
@@ -1213,7 +1154,18 @@ public RangeResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new RangeResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOp.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOp.java
index fb9f62a..c422a2b 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOp.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOp.java
@@ -25,104 +25,6 @@ protected java.lang.Object newInstance(
     return new RequestOp();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private RequestOp(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.Builder subBuilder = null;
-            if (requestCase_ == 1) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 1;
-            break;
-          }
-          case 18: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest.Builder subBuilder = null;
-            if (requestCase_ == 2) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 2;
-            break;
-          }
-          case 26: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest.Builder subBuilder = null;
-            if (requestCase_ == 3) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 3;
-            break;
-          }
-          case 34: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest.Builder subBuilder = null;
-            if (requestCase_ == 4) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 4;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_RequestOp_descriptor;
@@ -137,6 +39,7 @@ private RequestOp(
   }
 
   private int requestCase_ = 0;
+  @SuppressWarnings("serial")
   private java.lang.Object request_;
   public enum RequestCase
       implements com.google.protobuf.Internal.EnumLite,
@@ -331,7 +234,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (requestCase_ == 4) {
       output.writeMessage(4, (org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) request_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -356,7 +259,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(4, (org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) request_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -392,7 +295,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -423,7 +326,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -540,22 +443,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.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;
+      if (requestRangeBuilder_ != null) {
+        requestRangeBuilder_.clear();
+      }
+      if (requestPutBuilder_ != null) {
+        requestPutBuilder_.clear();
+      }
+      if (requestDeleteRangeBuilder_ != null) {
+        requestDeleteRangeBuilder_.clear();
+      }
+      if (requestTxnBuilder_ != null) {
+        requestTxnBuilder_.clear();
+      }
       requestCase_ = 0;
       request_ = null;
       return this;
@@ -584,71 +495,37 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp result = new org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp(this);
-      if (requestCase_ == 1) {
-        if (requestRangeBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = requestRangeBuilder_.build();
-        }
-      }
-      if (requestCase_ == 2) {
-        if (requestPutBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = requestPutBuilder_.build();
-        }
-      }
-      if (requestCase_ == 3) {
-        if (requestDeleteRangeBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = requestDeleteRangeBuilder_.build();
-        }
-      }
-      if (requestCase_ == 4) {
-        if (requestTxnBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = requestTxnBuilder_.build();
-        }
-      }
-      result.requestCase_ = requestCase_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
       onBuilt();
       return result;
     }
 
-    @java.lang.Override
-    public Builder clone() {
-      return super.clone();
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp result) {
+      int from_bitField0_ = bitField0_;
     }
-    @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);
+
+    private void buildPartialOneofs(org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp result) {
+      result.requestCase_ = requestCase_;
+      result.request_ = this.request_;
+      if (requestCase_ == 1 &&
+          requestRangeBuilder_ != null) {
+        result.request_ = requestRangeBuilder_.build();
+      }
+      if (requestCase_ == 2 &&
+          requestPutBuilder_ != null) {
+        result.request_ = requestPutBuilder_.build();
+      }
+      if (requestCase_ == 3 &&
+          requestDeleteRangeBuilder_ != null) {
+        result.request_ = requestDeleteRangeBuilder_.build();
+      }
+      if (requestCase_ == 4 &&
+          requestTxnBuilder_ != null) {
+        result.request_ = requestTxnBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp) {
@@ -682,7 +559,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp other
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -697,17 +574,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRequestRangeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 1;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getRequestPutFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 2;
+              break;
+            } // case 18
+            case 26: {
+              input.readMessage(
+                  getRequestDeleteRangeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 3;
+              break;
+            } // case 26
+            case 34: {
+              input.readMessage(
+                  getRequestTxnFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 4;
+              break;
+            } // case 34
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int requestCase_ = 0;
@@ -725,6 +643,7 @@ public Builder clearRequest() {
       return this;
     }
 
+    private int bitField0_;
 
     private com.google.protobuf.SingleFieldBuilderV3<
         org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest, org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequestOrBuilder> requestRangeBuilder_;
@@ -800,8 +719,9 @@ public Builder mergeRequestRange(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRe
       } else {
         if (requestCase_ == 1) {
           requestRangeBuilder_.mergeFrom(value);
+        } else {
+          requestRangeBuilder_.setMessage(value);
         }
-        requestRangeBuilder_.setMessage(value);
       }
       requestCase_ = 1;
       return this;
@@ -863,7 +783,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequestOrBuilder getRequestR
         request_ = null;
       }
       requestCase_ = 1;
-      onChanged();;
+      onChanged();
       return requestRangeBuilder_;
     }
 
@@ -941,8 +861,9 @@ public Builder mergeRequestPut(org.eclipse.ecf.provider.etcd3.grpc.api.PutReques
       } else {
         if (requestCase_ == 2) {
           requestPutBuilder_.mergeFrom(value);
+        } else {
+          requestPutBuilder_.setMessage(value);
         }
-        requestPutBuilder_.setMessage(value);
       }
       requestCase_ = 2;
       return this;
@@ -1004,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.PutRequestOrBuilder getRequestPut
         request_ = null;
       }
       requestCase_ = 2;
-      onChanged();;
+      onChanged();
       return requestPutBuilder_;
     }
 
@@ -1082,8 +1003,9 @@ public Builder mergeRequestDeleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.D
       } else {
         if (requestCase_ == 3) {
           requestDeleteRangeBuilder_.mergeFrom(value);
+        } else {
+          requestDeleteRangeBuilder_.setMessage(value);
         }
-        requestDeleteRangeBuilder_.setMessage(value);
       }
       requestCase_ = 3;
       return this;
@@ -1145,7 +1067,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequestOrBuilder getRe
         request_ = null;
       }
       requestCase_ = 3;
-      onChanged();;
+      onChanged();
       return requestDeleteRangeBuilder_;
     }
 
@@ -1223,8 +1145,9 @@ public Builder mergeRequestTxn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnReques
       } else {
         if (requestCase_ == 4) {
           requestTxnBuilder_.mergeFrom(value);
+        } else {
+          requestTxnBuilder_.setMessage(value);
         }
-        requestTxnBuilder_.setMessage(value);
       }
       requestCase_ = 4;
       return this;
@@ -1286,7 +1209,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequestOrBuilder getRequestTxn
         request_ = null;
       }
       requestCase_ = 4;
-      onChanged();;
+      onChanged();
       return requestTxnBuilder_;
     }
     @java.lang.Override
@@ -1322,7 +1245,18 @@ public RequestOp parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new RequestOp(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOpOrBuilder.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOpOrBuilder.java
index 9a1a39a..e6fe9fb 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOpOrBuilder.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/RequestOpOrBuilder.java
@@ -67,5 +67,5 @@ public interface RequestOpOrBuilder extends
    */
   org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequestOrBuilder getRequestTxnOrBuilder();
 
-  public org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.RequestCase getRequestCase();
+  org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.RequestCase getRequestCase();
 }
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseHeader.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseHeader.java
index 8681f9d..7535038 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseHeader.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseHeader.java
@@ -25,68 +25,6 @@ protected java.lang.Object newInstance(
     return new ResponseHeader();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private ResponseHeader(
-      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;
-          case 8: {
-
-            clusterId_ = input.readUInt64();
-            break;
-          }
-          case 16: {
-
-            memberId_ = input.readUInt64();
-            break;
-          }
-          case 24: {
-
-            revision_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            raftTerm_ = input.readUInt64();
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_ResponseHeader_descriptor;
@@ -101,7 +39,7 @@ private ResponseHeader(
   }
 
   public static final int CLUSTER_ID_FIELD_NUMBER = 1;
-  private long clusterId_;
+  private long clusterId_ = 0L;
   /**
    * 
    * cluster_id is the ID of the cluster which sent the response.
@@ -116,7 +54,7 @@ public long getClusterId() {
   }
 
   public static final int MEMBER_ID_FIELD_NUMBER = 2;
-  private long memberId_;
+  private long memberId_ = 0L;
   /**
    * 
    * member_id is the ID of the member which sent the response.
@@ -131,7 +69,7 @@ public long getMemberId() {
   }
 
   public static final int REVISION_FIELD_NUMBER = 3;
-  private long revision_;
+  private long revision_ = 0L;
   /**
    * 
    * revision is the key-value store revision when the request was applied.
@@ -146,7 +84,7 @@ public long getRevision() {
   }
 
   public static final int RAFT_TERM_FIELD_NUMBER = 4;
-  private long raftTerm_;
+  private long raftTerm_ = 0L;
   /**
    * 
    * raft_term is the raft term when the request was applied.
@@ -186,7 +124,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (raftTerm_ != 0L) {
       output.writeUInt64(4, raftTerm_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -211,7 +149,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt64Size(4, raftTerm_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -234,7 +172,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getRevision()) return false;
     if (getRaftTerm()
         != other.getRaftTerm()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -257,7 +195,7 @@ public int hashCode() {
     hash = (37 * hash) + RAFT_TERM_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getRaftTerm());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -374,30 +312,22 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.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;
       clusterId_ = 0L;
-
       memberId_ = 0L;
-
       revision_ = 0L;
-
       raftTerm_ = 0L;
-
       return this;
     }
 
@@ -424,46 +354,27 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader result = new org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader(this);
-      result.clusterId_ = clusterId_;
-      result.memberId_ = memberId_;
-      result.revision_ = revision_;
-      result.raftTerm_ = raftTerm_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.clusterId_ = clusterId_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.memberId_ = memberId_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.revision_ = revision_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.raftTerm_ = raftTerm_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader) {
@@ -488,7 +399,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
       if (other.getRaftTerm() != 0L) {
         setRaftTerm(other.getRaftTerm());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -503,19 +414,53 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              clusterId_ = input.readUInt64();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              memberId_ = input.readUInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              revision_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              raftTerm_ = input.readUInt64();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long clusterId_ ;
     /**
@@ -540,8 +485,9 @@ public long getClusterId() {
      * @return This builder for chaining.
      */
     public Builder setClusterId(long value) {
-      
+
       clusterId_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -554,7 +500,7 @@ public Builder setClusterId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearClusterId() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       clusterId_ = 0L;
       onChanged();
       return this;
@@ -583,8 +529,9 @@ public long getMemberId() {
      * @return This builder for chaining.
      */
     public Builder setMemberId(long value) {
-      
+
       memberId_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -597,7 +544,7 @@ public Builder setMemberId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearMemberId() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       memberId_ = 0L;
       onChanged();
       return this;
@@ -626,8 +573,9 @@ public long getRevision() {
      * @return This builder for chaining.
      */
     public Builder setRevision(long value) {
-      
+
       revision_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -640,7 +588,7 @@ public Builder setRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       revision_ = 0L;
       onChanged();
       return this;
@@ -669,8 +617,9 @@ public long getRaftTerm() {
      * @return This builder for chaining.
      */
     public Builder setRaftTerm(long value) {
-      
+
       raftTerm_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -683,7 +632,7 @@ public Builder setRaftTerm(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRaftTerm() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       raftTerm_ = 0L;
       onChanged();
       return this;
@@ -721,7 +670,18 @@ public ResponseHeader parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ResponseHeader(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOp.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOp.java
index 9d35a1d..b3498c9 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOp.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOp.java
@@ -25,104 +25,6 @@ protected java.lang.Object newInstance(
     return new ResponseOp();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private ResponseOp(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse.Builder subBuilder = null;
-            if (responseCase_ == 1) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 1;
-            break;
-          }
-          case 18: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse.Builder subBuilder = null;
-            if (responseCase_ == 2) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.PutResponse) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 2;
-            break;
-          }
-          case 26: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse.Builder subBuilder = null;
-            if (responseCase_ == 3) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponse) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 3;
-            break;
-          }
-          case 34: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse.Builder subBuilder = null;
-            if (responseCase_ == 4) {
-              subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 4;
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_ResponseOp_descriptor;
@@ -137,6 +39,7 @@ private ResponseOp(
   }
 
   private int responseCase_ = 0;
+  @SuppressWarnings("serial")
   private java.lang.Object response_;
   public enum ResponseCase
       implements com.google.protobuf.Internal.EnumLite,
@@ -331,7 +234,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (responseCase_ == 4) {
       output.writeMessage(4, (org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) response_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -356,7 +259,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(4, (org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) response_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -392,7 +295,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -423,7 +326,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -540,22 +443,30 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.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;
+      if (responseRangeBuilder_ != null) {
+        responseRangeBuilder_.clear();
+      }
+      if (responsePutBuilder_ != null) {
+        responsePutBuilder_.clear();
+      }
+      if (responseDeleteRangeBuilder_ != null) {
+        responseDeleteRangeBuilder_.clear();
+      }
+      if (responseTxnBuilder_ != null) {
+        responseTxnBuilder_.clear();
+      }
       responseCase_ = 0;
       response_ = null;
       return this;
@@ -584,71 +495,37 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp result = new org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp(this);
-      if (responseCase_ == 1) {
-        if (responseRangeBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = responseRangeBuilder_.build();
-        }
-      }
-      if (responseCase_ == 2) {
-        if (responsePutBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = responsePutBuilder_.build();
-        }
-      }
-      if (responseCase_ == 3) {
-        if (responseDeleteRangeBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = responseDeleteRangeBuilder_.build();
-        }
-      }
-      if (responseCase_ == 4) {
-        if (responseTxnBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = responseTxnBuilder_.build();
-        }
-      }
-      result.responseCase_ = responseCase_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
       onBuilt();
       return result;
     }
 
-    @java.lang.Override
-    public Builder clone() {
-      return super.clone();
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp result) {
+      int from_bitField0_ = bitField0_;
     }
-    @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);
+
+    private void buildPartialOneofs(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp result) {
+      result.responseCase_ = responseCase_;
+      result.response_ = this.response_;
+      if (responseCase_ == 1 &&
+          responseRangeBuilder_ != null) {
+        result.response_ = responseRangeBuilder_.build();
+      }
+      if (responseCase_ == 2 &&
+          responsePutBuilder_ != null) {
+        result.response_ = responsePutBuilder_.build();
+      }
+      if (responseCase_ == 3 &&
+          responseDeleteRangeBuilder_ != null) {
+        result.response_ = responseDeleteRangeBuilder_.build();
+      }
+      if (responseCase_ == 4 &&
+          responseTxnBuilder_ != null) {
+        result.response_ = responseTxnBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp) {
@@ -682,7 +559,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp othe
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -697,17 +574,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getResponseRangeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 1;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getResponsePutFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 2;
+              break;
+            } // case 18
+            case 26: {
+              input.readMessage(
+                  getResponseDeleteRangeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 3;
+              break;
+            } // case 26
+            case 34: {
+              input.readMessage(
+                  getResponseTxnFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 4;
+              break;
+            } // case 34
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int responseCase_ = 0;
@@ -725,6 +643,7 @@ public Builder clearResponse() {
       return this;
     }
 
+    private int bitField0_;
 
     private com.google.protobuf.SingleFieldBuilderV3<
         org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse, org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponse.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponseOrBuilder> responseRangeBuilder_;
@@ -800,8 +719,9 @@ public Builder mergeResponseRange(org.eclipse.ecf.provider.etcd3.grpc.api.RangeR
       } else {
         if (responseCase_ == 1) {
           responseRangeBuilder_.mergeFrom(value);
+        } else {
+          responseRangeBuilder_.setMessage(value);
         }
-        responseRangeBuilder_.setMessage(value);
       }
       responseCase_ = 1;
       return this;
@@ -863,7 +783,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RangeResponseOrBuilder getRespons
         response_ = null;
       }
       responseCase_ = 1;
-      onChanged();;
+      onChanged();
       return responseRangeBuilder_;
     }
 
@@ -941,8 +861,9 @@ public Builder mergeResponsePut(org.eclipse.ecf.provider.etcd3.grpc.api.PutRespo
       } else {
         if (responseCase_ == 2) {
           responsePutBuilder_.mergeFrom(value);
+        } else {
+          responsePutBuilder_.setMessage(value);
         }
-        responsePutBuilder_.setMessage(value);
       }
       responseCase_ = 2;
       return this;
@@ -1004,7 +925,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.PutResponseOrBuilder getResponseP
         response_ = null;
       }
       responseCase_ = 2;
-      onChanged();;
+      onChanged();
       return responsePutBuilder_;
     }
 
@@ -1082,8 +1003,9 @@ public Builder mergeResponseDeleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.
       } else {
         if (responseCase_ == 3) {
           responseDeleteRangeBuilder_.mergeFrom(value);
+        } else {
+          responseDeleteRangeBuilder_.setMessage(value);
         }
-        responseDeleteRangeBuilder_.setMessage(value);
       }
       responseCase_ = 3;
       return this;
@@ -1145,7 +1067,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeResponseOrBuilder getR
         response_ = null;
       }
       responseCase_ = 3;
-      onChanged();;
+      onChanged();
       return responseDeleteRangeBuilder_;
     }
 
@@ -1223,8 +1145,9 @@ public Builder mergeResponseTxn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRespo
       } else {
         if (responseCase_ == 4) {
           responseTxnBuilder_.mergeFrom(value);
+        } else {
+          responseTxnBuilder_.setMessage(value);
         }
-        responseTxnBuilder_.setMessage(value);
       }
       responseCase_ = 4;
       return this;
@@ -1286,7 +1209,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponseOrBuilder getResponseT
         response_ = null;
       }
       responseCase_ = 4;
-      onChanged();;
+      onChanged();
       return responseTxnBuilder_;
     }
     @java.lang.Override
@@ -1322,7 +1245,18 @@ public ResponseOp parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ResponseOp(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOpOrBuilder.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOpOrBuilder.java
index 396c93d..2d27820 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOpOrBuilder.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/ResponseOpOrBuilder.java
@@ -67,5 +67,5 @@ public interface ResponseOpOrBuilder extends
    */
   org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponseOrBuilder getResponseTxnOrBuilder();
 
-  public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.ResponseCase getResponseCase();
+  org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.ResponseCase getResponseCase();
 }
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3AuthGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3AuthGrpc.java
index a6de70d..86e19de 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3AuthGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3AuthGrpc.java
@@ -537,6 +537,15 @@ public void accept(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermiss
 
     public static abstract class AuthImplBase implements io.grpc.BindableService {
 
+        /**
+         * 
+         *  Range gets the keys in the range from the key-value store.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single authEnable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest request) { + return authEnable(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Range gets the keys in the range from the key-value store.
@@ -546,6 +555,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Put puts the given key into the key-value store.
+         *  A put request increments the revision of the key-value store
+         *  and generates one event in the event history.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single authDisable(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest request) { + return authDisable(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Put puts the given key into the key-value store.
@@ -557,6 +577,17 @@ public io.reactivex.rxjava3.core.Single
+         *  DeleteRange deletes the given range from the key-value store.
+         *  A delete request increments the revision of the key-value store
+         *  and generates a delete event in the event history for every deleted key.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single authenticate(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest request) { + return authenticate(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  DeleteRange deletes the given range from the key-value store.
@@ -568,6 +599,18 @@ public io.reactivex.rxjava3.core.Single
+         *  Txn processes multiple requests in a single transaction.
+         *  A txn request increments the revision of the key-value store
+         *  and generates events with the same revision for every completed request.
+         *  It is not allowed to modify the same key several times within one txn.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest request) { + return userAdd(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Txn processes multiple requests in a single transaction.
@@ -580,6 +623,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Compact compacts the event history in the etcd key-value store. The key-value
+         *  store should be periodically compacted or the event history will continue to grow
+         *  indefinitely.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest request) { + return userGet(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Compact compacts the event history in the etcd key-value store. The key-value
@@ -591,6 +645,15 @@ public io.reactivex.rxjava3.core.Single
+         *  Snapshot sends a snapshot of the entire backend from a member over a stream to a client.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest request) { + return userList(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Snapshot sends a snapshot of the entire backend from a member over a stream to a client.
@@ -600,6 +663,15 @@ public io.reactivex.rxjava3.core.Single
+         *  MoveLeader requests current leader node to transfer its leadership to transferee.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest request) { + return userDelete(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  MoveLeader requests current leader node to transfer its leadership to transferee.
@@ -609,6 +681,15 @@ public io.reactivex.rxjava3.core.Single
+         *  UserChangePassword changes the password of a specified user.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userChangePassword(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest request) { + return userChangePassword(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  UserChangePassword changes the password of a specified user.
@@ -618,6 +699,15 @@ public io.reactivex.rxjava3.core.Single
+         *  UserGrant grants a role to a specified user.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userGrantRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest request) { + return userGrantRole(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  UserGrant grants a role to a specified user.
@@ -627,6 +717,15 @@ public io.reactivex.rxjava3.core.Single
+         *  UserRevokeRole revokes a role of specified user.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single userRevokeRole(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest request) { + return userRevokeRole(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  UserRevokeRole revokes a role of specified user.
@@ -636,6 +735,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleAdd adds a new role.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleAdd(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest request) { + return roleAdd(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleAdd adds a new role.
@@ -645,6 +753,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleGet gets detailed role information.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleGet(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest request) { + return roleGet(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleGet gets detailed role information.
@@ -654,6 +771,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleList gets lists of all roles.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleList(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest request) { + return roleList(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleList gets lists of all roles.
@@ -663,6 +789,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleDelete deletes a specified role.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleDelete(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest request) { + return roleDelete(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleDelete deletes a specified role.
@@ -672,6 +807,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleGrantPermission grants a permission of a specified key or range to a specified role.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleGrantPermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest request) { + return roleGrantPermission(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleGrantPermission grants a permission of a specified key or range to a specified role.
@@ -681,6 +825,15 @@ public io.reactivex.rxjava3.core.Single
+         *  RoleRevokePermission revokes a key or range permission of a specified role.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single roleRevokePermission(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest request) { + return roleRevokePermission(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  RoleRevokePermission revokes a key or range permission of a specified role.
@@ -811,6 +964,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_AUTH_ENABLE = 0;
@@ -850,162 +1007,162 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
                 case METHODID_AUTH_ENABLE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthEnableRequest single) {
                                     return serviceImpl.authEnable(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_AUTH_DISABLE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthDisableRequest single) {
                                     return serviceImpl.authDisable(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_AUTHENTICATE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthenticateRequest single) {
                                     return serviceImpl.authenticate(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_ADD:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserAddRequest single) {
                                     return serviceImpl.userAdd(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_GET:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGetRequest single) {
                                     return serviceImpl.userGet(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_LIST:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserListRequest single) {
                                     return serviceImpl.userList(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_DELETE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserDeleteRequest single) {
                                     return serviceImpl.userDelete(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_CHANGE_PASSWORD:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserChangePasswordRequest single) {
                                     return serviceImpl.userChangePassword(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_GRANT_ROLE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserGrantRoleRequest single) {
                                     return serviceImpl.userGrantRole(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_USER_REVOKE_ROLE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthUserRevokeRoleRequest single) {
                                     return serviceImpl.userRevokeRole(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_ADD:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleAddRequest single) {
                                     return serviceImpl.roleAdd(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_GET:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGetRequest single) {
                                     return serviceImpl.roleGet(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_LIST:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleListRequest single) {
                                     return serviceImpl.roleList(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_DELETE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleDeleteRequest single) {
                                     return serviceImpl.roleDelete(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_GRANT_PERMISSION:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleGrantPermissionRequest single) {
                                     return serviceImpl.roleGrantPermission(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_ROLE_REVOKE_PERMISSION:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AuthRoleRevokePermissionRequest single) {
                                     return serviceImpl.roleRevokePermission(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 default:
                     throw new java.lang.AssertionError();
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3ClusterGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3ClusterGrpc.java
index c755fe3..e0dddc7 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3ClusterGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3ClusterGrpc.java
@@ -173,6 +173,15 @@ public void accept(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest req
 
     public static abstract class ClusterImplBase implements io.grpc.BindableService {
 
+        /**
+         * 
+         *  Range gets the keys in the range from the key-value store.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single memberAdd(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest request) { + return memberAdd(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Range gets the keys in the range from the key-value store.
@@ -182,6 +191,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Put puts the given key into the key-value store.
+         *  A put request increments the revision of the key-value store
+         *  and generates one event in the event history.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single memberRemove(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest request) { + return memberRemove(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Put puts the given key into the key-value store.
@@ -193,6 +213,17 @@ public io.reactivex.rxjava3.core.Single
+         *  DeleteRange deletes the given range from the key-value store.
+         *  A delete request increments the revision of the key-value store
+         *  and generates a delete event in the event history for every deleted key.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single memberUpdate(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest request) { + return memberUpdate(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  DeleteRange deletes the given range from the key-value store.
@@ -204,6 +235,18 @@ public io.reactivex.rxjava3.core.Single
+         *  Txn processes multiple requests in a single transaction.
+         *  A txn request increments the revision of the key-value store
+         *  and generates events with the same revision for every completed request.
+         *  It is not allowed to modify the same key several times within one txn.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single memberList(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest request) { + return memberList(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Txn processes multiple requests in a single transaction.
@@ -253,6 +296,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_MEMBER_ADD = 0;
@@ -280,42 +327,42 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
                 case METHODID_MEMBER_ADD:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.MemberAddRequest single) {
                                     return serviceImpl.memberAdd(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_MEMBER_REMOVE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.MemberRemoveRequest single) {
                                     return serviceImpl.memberRemove(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_MEMBER_UPDATE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.MemberUpdateRequest single) {
                                     return serviceImpl.memberUpdate(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_MEMBER_LIST:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.MemberListRequest single) {
                                     return serviceImpl.memberList(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 default:
                     throw new java.lang.AssertionError();
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3KVGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3KVGrpc.java
index bb9a455..d6dd8a4 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3KVGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3KVGrpc.java
@@ -207,6 +207,15 @@ public void accept(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest req
 
     public static abstract class KVImplBase implements io.grpc.BindableService {
 
+        /**
+         * 
+         *  Range gets the keys in the range from the key-value store.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single range(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest request) { + return range(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Range gets the keys in the range from the key-value store.
@@ -216,6 +225,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Put puts the given key into the key-value store.
+         *  A put request increments the revision of the key-value store
+         *  and generates one event in the event history.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single put(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest request) { + return put(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Put puts the given key into the key-value store.
@@ -227,6 +247,17 @@ public io.reactivex.rxjava3.core.Single
+         *  DeleteRange deletes the given range from the key-value store.
+         *  A delete request increments the revision of the key-value store
+         *  and generates a delete event in the event history for every deleted key.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single deleteRange(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest request) { + return deleteRange(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  DeleteRange deletes the given range from the key-value store.
@@ -238,6 +269,18 @@ public io.reactivex.rxjava3.core.Single
+         *  Txn processes multiple requests in a single transaction.
+         *  A txn request increments the revision of the key-value store
+         *  and generates events with the same revision for every completed request.
+         *  It is not allowed to modify the same key several times within one txn.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single txn(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest request) { + return txn(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Txn processes multiple requests in a single transaction.
@@ -250,6 +293,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Compact compacts the event history in the etcd key-value store. The key-value
+         *  store should be periodically compacted or the event history will continue to grow
+         *  indefinitely.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single compact(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest request) { + return compact(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Compact compacts the event history in the etcd key-value store. The key-value
@@ -305,6 +359,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_RANGE = 0;
@@ -333,52 +391,52 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
                 case METHODID_RANGE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.RangeRequest single) {
                                     return serviceImpl.range(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_PUT:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.PutRequest single) {
                                     return serviceImpl.put(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_DELETE_RANGE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.DeleteRangeRequest single) {
                                     return serviceImpl.deleteRange(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_TXN:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest single) {
                                     return serviceImpl.txn(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_COMPACT:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.CompactionRequest single) {
                                     return serviceImpl.compact(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 default:
                     throw new java.lang.AssertionError();
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3LeaseGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3LeaseGrpc.java
index b2d16e8..17256cf 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3LeaseGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3LeaseGrpc.java
@@ -156,6 +156,15 @@ public void accept(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveReques
 
     public static abstract class LeaseImplBase implements io.grpc.BindableService {
 
+        /**
+         * 
+         *  Range gets the keys in the range from the key-value store.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single leaseGrant(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest request) { + return leaseGrant(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Range gets the keys in the range from the key-value store.
@@ -165,6 +174,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Put puts the given key into the key-value store.
+         *  A put request increments the revision of the key-value store
+         *  and generates one event in the event history.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single leaseRevoke(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest request) { + return leaseRevoke(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Put puts the given key into the key-value store.
@@ -176,6 +196,7 @@ public io.reactivex.rxjava3.core.Single
          *  DeleteRange deletes the given range from the key-value store.
@@ -187,6 +208,18 @@ public io.reactivex.rxjava3.core.Flowable
+         *  Txn processes multiple requests in a single transaction.
+         *  A txn request increments the revision of the key-value store
+         *  and generates events with the same revision for every completed request.
+         *  It is not allowed to modify the same key several times within one txn.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single leaseTimeToLive(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest request) { + return leaseTimeToLive(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Txn processes multiple requests in a single transaction.
@@ -236,6 +269,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_LEASE_GRANT = 0;
@@ -263,32 +300,32 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
                 case METHODID_LEASE_GRANT:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseGrantRequest single) {
                                     return serviceImpl.leaseGrant(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_LEASE_REVOKE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseRevokeRequest single) {
                                     return serviceImpl.leaseRevoke(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_LEASE_TIME_TO_LIVE:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.LeaseTimeToLiveRequest single) {
                                     return serviceImpl.leaseTimeToLive(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 default:
                     throw new java.lang.AssertionError();
@@ -302,7 +339,7 @@ public io.grpc.stub.StreamObserver invoke(io.grpc.stub.StreamObserver
                 case METHODID_LEASE_KEEP_ALIVE:
                     return (io.grpc.stub.StreamObserver) com.salesforce.rx3grpc.stub.ServerCalls.manyToMany(
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            serviceImpl::leaseKeepAlive, serviceImpl.getCallOptions(methodId));
+                            serviceImpl::leaseKeepAlive, serviceImpl::onErrorMap, serviceImpl.getCallOptions(methodId));
                 default:
                     throw new java.lang.AssertionError();
             }
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3MaintenanceGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3MaintenanceGrpc.java
index 0219fb3..245e8bc 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3MaintenanceGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3MaintenanceGrpc.java
@@ -267,6 +267,15 @@ public void accept(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest req
 
     public static abstract class MaintenanceImplBase implements io.grpc.BindableService {
 
+        /**
+         * 
+         *  Range gets the keys in the range from the key-value store.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single alarm(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest request) { + return alarm(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Range gets the keys in the range from the key-value store.
@@ -276,6 +285,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Put puts the given key into the key-value store.
+         *  A put request increments the revision of the key-value store
+         *  and generates one event in the event history.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single status(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest request) { + return status(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Put puts the given key into the key-value store.
@@ -287,6 +307,17 @@ public io.reactivex.rxjava3.core.Single
+         *  DeleteRange deletes the given range from the key-value store.
+         *  A delete request increments the revision of the key-value store
+         *  and generates a delete event in the event history for every deleted key.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single defragment(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest request) { + return defragment(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  DeleteRange deletes the given range from the key-value store.
@@ -298,6 +329,18 @@ public io.reactivex.rxjava3.core.Single
+         *  Txn processes multiple requests in a single transaction.
+         *  A txn request increments the revision of the key-value store
+         *  and generates events with the same revision for every completed request.
+         *  It is not allowed to modify the same key several times within one txn.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single hash(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest request) { + return hash(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Txn processes multiple requests in a single transaction.
@@ -310,6 +353,17 @@ public io.reactivex.rxjava3.core.Single
+         *  Compact compacts the event history in the etcd key-value store. The key-value
+         *  store should be periodically compacted or the event history will continue to grow
+         *  indefinitely.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single hashKV(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest request) { + return hashKV(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Compact compacts the event history in the etcd key-value store. The key-value
@@ -321,6 +375,15 @@ public io.reactivex.rxjava3.core.Single
+         *  Snapshot sends a snapshot of the entire backend from a member over a stream to a client.
+         * 
+ */ + public io.reactivex.rxjava3.core.Flowable snapshot(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest request) { + return snapshot(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  Snapshot sends a snapshot of the entire backend from a member over a stream to a client.
@@ -330,6 +393,15 @@ public io.reactivex.rxjava3.core.Flowable
+         *  MoveLeader requests current leader node to transfer its leadership to transferee.
+         * 
+ */ + public io.reactivex.rxjava3.core.Single moveLeader(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest request) { + return moveLeader(io.reactivex.rxjava3.core.Single.just(request)); + } + /** *
          *  MoveLeader requests current leader node to transfer its leadership to transferee.
@@ -397,6 +469,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_ALARM = 0;
@@ -427,72 +503,72 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
                 case METHODID_ALARM:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.AlarmRequest single) {
                                     return serviceImpl.alarm(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_STATUS:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest single) {
                                     return serviceImpl.status(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_DEFRAGMENT:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.DefragmentRequest single) {
                                     return serviceImpl.defragment(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_HASH:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.HashRequest single) {
                                     return serviceImpl.hash(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_HASH_KV:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.HashKVRequest single) {
                                     return serviceImpl.hashKV(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_SNAPSHOT:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToMany((org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Flowable>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Flowable apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Flowable apply(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest single) {
                                     return serviceImpl.snapshot(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 case METHODID_MOVE_LEADER:
                     com.salesforce.rx3grpc.stub.ServerCalls.oneToOne((org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest) request,
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            new com.salesforce.reactivegrpc.common.Function, io.reactivex.rxjava3.core.Single>() {
+                            new com.salesforce.reactivegrpc.common.Function>() {
                                 @java.lang.Override
-                                public io.reactivex.rxjava3.core.Single apply(io.reactivex.rxjava3.core.Single single) {
+                                public io.reactivex.rxjava3.core.Single apply(org.eclipse.ecf.provider.etcd3.grpc.api.MoveLeaderRequest single) {
                                     return serviceImpl.moveLeader(single);
                                 }
-                            });
+                            }, serviceImpl::onErrorMap);
                     break;
                 default:
                     throw new java.lang.AssertionError();
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3WatchGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3WatchGrpc.java
index c25b747..315a51f 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3WatchGrpc.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/Rx3WatchGrpc.java
@@ -54,6 +54,7 @@ public io.grpc.stub.StreamObserver
          *  Range gets the keys in the range from the key-value store.
@@ -79,6 +80,10 @@ protected io.grpc.CallOptions getCallOptions(int methodId) {
             return null;
         }
 
+        protected Throwable onErrorMap(Throwable throwable) {
+            return com.salesforce.rx3grpc.stub.ServerCalls.prepareError(throwable);
+        }
+
     }
 
     public static final int METHODID_WATCH = 0;
@@ -112,7 +117,7 @@ public io.grpc.stub.StreamObserver invoke(io.grpc.stub.StreamObserver
                 case METHODID_WATCH:
                     return (io.grpc.stub.StreamObserver) com.salesforce.rx3grpc.stub.ServerCalls.manyToMany(
                             (io.grpc.stub.StreamObserver) responseObserver,
-                            serviceImpl::watch, serviceImpl.getCallOptions(methodId));
+                            serviceImpl::watch, serviceImpl::onErrorMap, serviceImpl.getCallOptions(methodId));
                 default:
                     throw new java.lang.AssertionError();
             }
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotRequest.java
index 2c67f96..e4d8644 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new SnapshotRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private SnapshotRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_SnapshotRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest buildPartial() {
       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.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public SnapshotRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SnapshotRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotResponse.java
index 18b753d..05b9dbe 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/SnapshotResponse.java
@@ -26,71 +26,6 @@ protected java.lang.Object newInstance(
     return new SnapshotResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private SnapshotResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            remainingBytes_ = input.readUInt64();
-            break;
-          }
-          case 26: {
-
-            blob_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_SnapshotResponse_descriptor;
@@ -142,11 +77,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int REMAINING_BYTES_FIELD_NUMBER = 2;
-  private long remainingBytes_;
+  private long remainingBytes_ = 0L;
   /**
    * 
    * remaining_bytes is the number of blob bytes to be sent after this message
@@ -161,7 +96,7 @@ public long getRemainingBytes() {
   }
 
   public static final int BLOB_FIELD_NUMBER = 3;
-  private com.google.protobuf.ByteString blob_;
+  private com.google.protobuf.ByteString blob_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * blob contains the next chunk of the snapshot in the snapshot stream.
@@ -198,7 +133,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!blob_.isEmpty()) {
       output.writeBytes(3, blob_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -219,7 +154,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBytesSize(3, blob_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -243,7 +178,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getRemainingBytes()) return false;
     if (!getBlob()
         .equals(other.getBlob())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -263,7 +198,7 @@ public int hashCode() {
         getRemainingBytes());
     hash = (37 * hash) + BLOB_FIELD_NUMBER;
     hash = (53 * hash) + getBlob().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -380,32 +315,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       remainingBytes_ = 0L;
-
       blob_ = com.google.protobuf.ByteString.EMPTY;
-
       return this;
     }
 
@@ -432,49 +360,26 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.remainingBytes_ = remainingBytes_;
-      result.blob_ = blob_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.remainingBytes_ = remainingBytes_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.blob_ = blob_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse) {
@@ -496,7 +401,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotRespons
       if (other.getBlob() != com.google.protobuf.ByteString.EMPTY) {
         setBlob(other.getBlob());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -511,19 +416,50 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              remainingBytes_ = input.readUInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              blob_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.SnapshotResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -538,7 +474,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -570,11 +506,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -589,11 +525,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -606,17 +542,18 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -628,14 +565,13 @@ public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeade
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -647,7 +583,7 @@ public Builder clearHeader() {
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -712,8 +648,9 @@ public long getRemainingBytes() {
      * @return This builder for chaining.
      */
     public Builder setRemainingBytes(long value) {
-      
+
       remainingBytes_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -726,7 +663,7 @@ public Builder setRemainingBytes(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRemainingBytes() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       remainingBytes_ = 0L;
       onChanged();
       return this;
@@ -755,11 +692,9 @@ public com.google.protobuf.ByteString getBlob() {
      * @return This builder for chaining.
      */
     public Builder setBlob(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       blob_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -772,7 +707,7 @@ public Builder setBlob(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearBlob() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       blob_ = getDefaultInstance().getBlob();
       onChanged();
       return this;
@@ -810,7 +745,18 @@ public SnapshotResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SnapshotResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusRequest.java
index c408f49..6bd090f 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusRequest.java
@@ -25,48 +25,6 @@ protected java.lang.Object newInstance(
     return new StatusRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private StatusRequest(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_StatusRequest_descriptor;
@@ -94,7 +52,7 @@ public final boolean isInitialized() {
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -103,7 +61,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -118,7 +76,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest other = (org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest) obj;
 
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -129,7 +87,7 @@ public int hashCode() {
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -246,18 +204,13 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest.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() {
@@ -292,38 +245,6 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest buildPartial() {
       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.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest) {
@@ -336,7 +257,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
 
     public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest other) {
       if (other == org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest.getDefaultInstance()) return this;
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -351,17 +272,30 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.StatusRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     @java.lang.Override
@@ -397,7 +331,18 @@ public StatusRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new StatusRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusResponse.java
index 0efccfe..1745990 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/StatusResponse.java
@@ -26,87 +26,6 @@ protected java.lang.Object newInstance(
     return new StatusResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private StatusResponse(
-      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;
-          case 10: {
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            version_ = s;
-            break;
-          }
-          case 24: {
-
-            dbSize_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            leader_ = input.readUInt64();
-            break;
-          }
-          case 40: {
-
-            raftIndex_ = input.readUInt64();
-            break;
-          }
-          case 48: {
-
-            raftTerm_ = input.readUInt64();
-            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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_StatusResponse_descriptor;
@@ -143,11 +62,12 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int VERSION_FIELD_NUMBER = 2;
-  private volatile java.lang.Object version_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object version_ = "";
   /**
    * 
    * version is the cluster protocol version used by the responding member.
@@ -193,7 +113,7 @@ public java.lang.String getVersion() {
   }
 
   public static final int DBSIZE_FIELD_NUMBER = 3;
-  private long dbSize_;
+  private long dbSize_ = 0L;
   /**
    * 
    * dbSize is the size of the backend database, in bytes, of the responding member.
@@ -208,7 +128,7 @@ public long getDbSize() {
   }
 
   public static final int LEADER_FIELD_NUMBER = 4;
-  private long leader_;
+  private long leader_ = 0L;
   /**
    * 
    * leader is the member ID which the responding member believes is the current leader.
@@ -223,7 +143,7 @@ public long getLeader() {
   }
 
   public static final int RAFTINDEX_FIELD_NUMBER = 5;
-  private long raftIndex_;
+  private long raftIndex_ = 0L;
   /**
    * 
    * raftIndex is the current raft index of the responding member.
@@ -238,7 +158,7 @@ public long getRaftIndex() {
   }
 
   public static final int RAFTTERM_FIELD_NUMBER = 6;
-  private long raftTerm_;
+  private long raftTerm_ = 0L;
   /**
    * 
    * raftTerm is the current raft term of the responding member.
@@ -269,7 +189,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (header_ != null) {
       output.writeMessage(1, getHeader());
     }
-    if (!getVersionBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
     }
     if (dbSize_ != 0L) {
@@ -284,7 +204,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (raftTerm_ != 0L) {
       output.writeUInt64(6, raftTerm_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -297,7 +217,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getHeader());
     }
-    if (!getVersionBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
     }
     if (dbSize_ != 0L) {
@@ -316,7 +236,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeUInt64Size(6, raftTerm_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -346,7 +266,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getRaftIndex()) return false;
     if (getRaftTerm()
         != other.getRaftTerm()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -375,7 +295,7 @@ public int hashCode() {
     hash = (37 * hash) + RAFTTERM_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getRaftTerm());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -492,38 +412,28 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse.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();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       version_ = "";
-
       dbSize_ = 0L;
-
       leader_ = 0L;
-
       raftIndex_ = 0L;
-
       raftTerm_ = 0L;
-
       return this;
     }
 
@@ -550,52 +460,35 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse(this);
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.version_ = version_;
-      result.dbSize_ = dbSize_;
-      result.leader_ = leader_;
-      result.raftIndex_ = raftIndex_;
-      result.raftTerm_ = raftTerm_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.version_ = version_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.dbSize_ = dbSize_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.leader_ = leader_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.raftIndex_ = raftIndex_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.raftTerm_ = raftTerm_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse) {
@@ -613,6 +506,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse
       }
       if (!other.getVersion().isEmpty()) {
         version_ = other.version_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (other.getDbSize() != 0L) {
@@ -627,7 +521,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse
       if (other.getRaftTerm() != 0L) {
         setRaftTerm(other.getRaftTerm());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -642,19 +536,65 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              version_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              dbSize_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              leader_ = input.readUInt64();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 40: {
+              raftIndex_ = input.readUInt64();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 40
+            case 48: {
+              raftTerm_ = input.readUInt64();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.StatusResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader header_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -664,7 +604,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -686,11 +626,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -700,11 +640,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -712,38 +652,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -828,11 +768,9 @@ public java.lang.String getVersion() {
      */
     public Builder setVersion(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       version_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -845,8 +783,8 @@ public Builder setVersion(
      * @return This builder for chaining.
      */
     public Builder clearVersion() {
-      
       version_ = getDefaultInstance().getVersion();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -861,12 +799,10 @@ public Builder clearVersion() {
      */
     public Builder setVersionBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       version_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -894,8 +830,9 @@ public long getDbSize() {
      * @return This builder for chaining.
      */
     public Builder setDbSize(long value) {
-      
+
       dbSize_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -908,7 +845,7 @@ public Builder setDbSize(long value) {
      * @return This builder for chaining.
      */
     public Builder clearDbSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       dbSize_ = 0L;
       onChanged();
       return this;
@@ -937,8 +874,9 @@ public long getLeader() {
      * @return This builder for chaining.
      */
     public Builder setLeader(long value) {
-      
+
       leader_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -951,7 +889,7 @@ public Builder setLeader(long value) {
      * @return This builder for chaining.
      */
     public Builder clearLeader() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       leader_ = 0L;
       onChanged();
       return this;
@@ -980,8 +918,9 @@ public long getRaftIndex() {
      * @return This builder for chaining.
      */
     public Builder setRaftIndex(long value) {
-      
+
       raftIndex_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -994,7 +933,7 @@ public Builder setRaftIndex(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRaftIndex() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       raftIndex_ = 0L;
       onChanged();
       return this;
@@ -1023,8 +962,9 @@ public long getRaftTerm() {
      * @return This builder for chaining.
      */
     public Builder setRaftTerm(long value) {
-      
+
       raftTerm_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -1037,7 +977,7 @@ public Builder setRaftTerm(long value) {
      * @return This builder for chaining.
      */
     public Builder clearRaftTerm() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       raftTerm_ = 0L;
       onChanged();
       return this;
@@ -1075,7 +1015,18 @@ public StatusResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new StatusResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnRequest.java
index 70d6631..9a02685 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnRequest.java
@@ -46,85 +46,6 @@ protected java.lang.Object newInstance(
     return new TxnRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private TxnRequest(
-      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)) {
-              compare_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            compare_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.Compare.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000002) != 0)) {
-              success_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000002;
-            }
-            success_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.parser(), extensionRegistry));
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000004) != 0)) {
-              failure_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000004;
-            }
-            failure_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.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)) {
-        compare_ = java.util.Collections.unmodifiableList(compare_);
-      }
-      if (((mutable_bitField0_ & 0x00000002) != 0)) {
-        success_ = java.util.Collections.unmodifiableList(success_);
-      }
-      if (((mutable_bitField0_ & 0x00000004) != 0)) {
-        failure_ = java.util.Collections.unmodifiableList(failure_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_TxnRequest_descriptor;
@@ -139,6 +60,7 @@ private TxnRequest(
   }
 
   public static final int COMPARE_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List compare_;
   /**
    * 
@@ -219,6 +141,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.CompareOrBuilder getCompareOrBuil
   }
 
   public static final int SUCCESS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List success_;
   /**
    * 
@@ -279,6 +202,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.RequestOpOrBuilder getSuccessOrBu
   }
 
   public static final int FAILURE_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List failure_;
   /**
    * 
@@ -361,7 +285,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < failure_.size(); i++) {
       output.writeMessage(3, failure_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -382,7 +306,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, failure_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -403,7 +327,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getSuccessList())) return false;
     if (!getFailureList()
         .equals(other.getFailureList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -426,7 +350,7 @@ public int hashCode() {
       hash = (37 * hash) + FAILURE_FIELD_NUMBER;
       hash = (53 * hash) + getFailureList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -561,43 +485,39 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getCompareFieldBuilder();
-        getSuccessFieldBuilder();
-        getFailureFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (compareBuilder_ == null) {
         compare_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        compare_ = null;
         compareBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       if (successBuilder_ == null) {
         success_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
       } else {
+        success_ = null;
         successBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       if (failureBuilder_ == null) {
         failure_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000004);
       } else {
+        failure_ = null;
         failureBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000004);
       return this;
     }
 
@@ -624,7 +544,13 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest result) {
       if (compareBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           compare_ = java.util.Collections.unmodifiableList(compare_);
@@ -652,42 +578,12 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest buildPartial() {
       } else {
         result.failure_ = failureBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest result) {
+      int from_bitField0_ = bitField0_;
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) {
@@ -778,7 +674,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest othe
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -793,17 +689,69 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.Compare m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.Compare.parser(),
+                      extensionRegistry);
+              if (compareBuilder_ == null) {
+                ensureCompareIsMutable();
+                compare_.add(m);
+              } else {
+                compareBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.parser(),
+                      extensionRegistry);
+              if (successBuilder_ == null) {
+                ensureSuccessIsMutable();
+                success_.add(m);
+              } else {
+                successBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            case 26: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.RequestOp.parser(),
+                      extensionRegistry);
+              if (failureBuilder_ == null) {
+                ensureFailureIsMutable();
+                failure_.add(m);
+              } else {
+                failureBuilder_.addMessage(m);
+              }
+              break;
+            } // case 26
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.TxnRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -1848,7 +1796,18 @@ public TxnRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new TxnRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnResponse.java
index 0341b01..da0ac17 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnResponse.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/TxnResponse.java
@@ -26,79 +26,6 @@ protected java.lang.Object newInstance(
     return new TxnResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private TxnResponse(
-      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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null;
-            if (header_ != null) {
-              subBuilder = header_.toBuilder();
-            }
-            header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(header_);
-              header_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-
-            succeeded_ = input.readBool();
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              responses_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            responses_.add(
-                input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.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)) {
-        responses_ = java.util.Collections.unmodifiableList(responses_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_TxnResponse_descriptor;
@@ -135,11 +62,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() {
-    return getHeader();
+    return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_;
   }
 
   public static final int SUCCEEDED_FIELD_NUMBER = 2;
-  private boolean succeeded_;
+  private boolean succeeded_ = false;
   /**
    * 
    * succeeded is set to true if the compare evaluated to true or false otherwise.
@@ -154,6 +81,7 @@ public boolean getSucceeded() {
   }
 
   public static final int RESPONSES_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List responses_;
   /**
    * 
@@ -241,7 +169,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < responses_.size(); i++) {
       output.writeMessage(3, responses_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -262,7 +190,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, responses_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -286,7 +214,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getSucceeded()) return false;
     if (!getResponsesList()
         .equals(other.getResponsesList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -308,7 +236,7 @@ public int hashCode() {
       hash = (37 * hash) + RESPONSES_FIELD_NUMBER;
       hash = (53 * hash) + getResponsesList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -425,37 +353,31 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getResponsesFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       succeeded_ = false;
-
       if (responsesBuilder_ == null) {
         responses_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        responses_ = null;
         responsesBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000004);
       return this;
     }
 
@@ -482,58 +404,36 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.succeeded_ = succeeded_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse result) {
       if (responsesBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000004) != 0)) {
           responses_ = java.util.Collections.unmodifiableList(responses_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
         }
         result.responses_ = responses_;
       } else {
         result.responses_ = responsesBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.succeeded_ = succeeded_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) {
@@ -556,7 +456,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse oth
         if (!other.responses_.isEmpty()) {
           if (responses_.isEmpty()) {
             responses_ = other.responses_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
           } else {
             ensureResponsesIsMutable();
             responses_.addAll(other.responses_);
@@ -569,7 +469,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse oth
             responsesBuilder_.dispose();
             responsesBuilder_ = null;
             responses_ = other.responses_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000004);
             responsesBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getResponsesFieldBuilder() : null;
@@ -578,7 +478,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse oth
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -593,17 +493,55 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              succeeded_ = input.readBool();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.parser(),
+                      extensionRegistry);
+              if (responsesBuilder_ == null) {
+                ensureResponsesIsMutable();
+                responses_.add(m);
+              } else {
+                responsesBuilder_.addMessage(m);
+              }
+              break;
+            } // case 26
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.TxnResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -616,7 +554,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -638,11 +576,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -652,11 +590,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -664,38 +602,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -750,8 +688,9 @@ public boolean getSucceeded() {
      * @return This builder for chaining.
      */
     public Builder setSucceeded(boolean value) {
-      
+
       succeeded_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -764,7 +703,7 @@ public Builder setSucceeded(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearSucceeded() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       succeeded_ = false;
       onChanged();
       return this;
@@ -773,9 +712,9 @@ public Builder clearSucceeded() {
     private java.util.List responses_ =
       java.util.Collections.emptyList();
     private void ensureResponsesIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000004) != 0)) {
         responses_ = new java.util.ArrayList(responses_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000004;
        }
     }
 
@@ -980,7 +919,7 @@ public Builder addAllResponses(
     public Builder clearResponses() {
       if (responsesBuilder_ == null) {
         responses_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
       } else {
         responsesBuilder_.clear();
@@ -1092,7 +1031,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.Builder addResponsesBu
         responsesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp, org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOp.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.ResponseOpOrBuilder>(
                 responses_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000004) != 0),
                 getParentForChildren(),
                 isClean());
         responses_ = null;
@@ -1132,7 +1071,18 @@ public TxnResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new TxnResponse(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCancelRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCancelRequest.java
index 96f4070..8158952 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCancelRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCancelRequest.java
@@ -25,53 +25,6 @@ protected java.lang.Object newInstance(
     return new WatchCancelRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private WatchCancelRequest(
-      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;
-          case 8: {
-
-            watchId_ = 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_WatchCancelRequest_descriptor;
@@ -86,7 +39,7 @@ private WatchCancelRequest(
   }
 
   public static final int WATCH_ID_FIELD_NUMBER = 1;
-  private long watchId_;
+  private long watchId_ = 0L;
   /**
    * 
    * watch_id is the watcher id to cancel so that no more events are transmitted.
@@ -117,7 +70,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (watchId_ != 0L) {
       output.writeInt64(1, watchId_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -130,7 +83,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(1, watchId_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -147,7 +100,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getWatchId()
         != other.getWatchId()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -161,7 +114,7 @@ public int hashCode() {
     hash = (37 * hash) + WATCH_ID_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getWatchId());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -278,24 +231,19 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest.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;
       watchId_ = 0L;
-
       return this;
     }
 
@@ -322,43 +270,18 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest(this);
-      result.watchId_ = watchId_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.watchId_ = watchId_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) {
@@ -374,7 +297,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequ
       if (other.getWatchId() != 0L) {
         setWatchId(other.getWatchId());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -389,19 +312,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              watchId_ = 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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private long watchId_ ;
     /**
@@ -426,8 +368,9 @@ public long getWatchId() {
      * @return This builder for chaining.
      */
     public Builder setWatchId(long value) {
-      
+
       watchId_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -440,7 +383,7 @@ public Builder setWatchId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearWatchId() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       watchId_ = 0L;
       onChanged();
       return this;
@@ -478,7 +421,18 @@ public WatchCancelRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new WatchCancelRequest(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCreateRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCreateRequest.java
index 6578172..a3bd9f0 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCreateRequest.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchCreateRequest.java
@@ -28,100 +28,6 @@ protected java.lang.Object newInstance(
     return new WatchCreateRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private WatchCreateRequest(
-      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: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 18: {
-
-            rangeEnd_ = input.readBytes();
-            break;
-          }
-          case 24: {
-
-            startRevision_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            progressNotify_ = input.readBool();
-            break;
-          }
-          case 40: {
-            int rawValue = input.readEnum();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              filters_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            filters_.add(rawValue);
-            break;
-          }
-          case 42: {
-            int length = input.readRawVarint32();
-            int oldLimit = input.pushLimit(length);
-            while(input.getBytesUntilLimit() > 0) {
-              int rawValue = input.readEnum();
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                filters_ = new java.util.ArrayList();
-                mutable_bitField0_ |= 0x00000001;
-              }
-              filters_.add(rawValue);
-            }
-            input.popLimit(oldLimit);
-            break;
-          }
-          case 48: {
-
-            prevKv_ = 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_ & 0x00000001) != 0)) {
-        filters_ = java.util.Collections.unmodifiableList(filters_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_WatchCreateRequest_descriptor;
@@ -260,7 +166,7 @@ private FilterType(int value) {
   }
 
   public static final int KEY_FIELD_NUMBER = 1;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the key to register for watching.
@@ -275,7 +181,7 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int RANGE_END_FIELD_NUMBER = 2;
-  private com.google.protobuf.ByteString rangeEnd_;
+  private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * range_end is the end of the range [key, range_end) to watch. If range_end is not given,
@@ -294,7 +200,7 @@ public com.google.protobuf.ByteString getRangeEnd() {
   }
 
   public static final int START_REVISION_FIELD_NUMBER = 3;
-  private long startRevision_;
+  private long startRevision_ = 0L;
   /**
    * 
    * start_revision is an optional revision to watch from (inclusive). No start_revision is "now".
@@ -309,7 +215,7 @@ public long getStartRevision() {
   }
 
   public static final int PROGRESS_NOTIFY_FIELD_NUMBER = 4;
-  private boolean progressNotify_;
+  private boolean progressNotify_ = false;
   /**
    * 
    * progress_notify is set so that the etcd server will periodically send a WatchResponse with
@@ -327,14 +233,14 @@ public boolean getProgressNotify() {
   }
 
   public static final int FILTERS_FIELD_NUMBER = 5;
+  @SuppressWarnings("serial")
   private java.util.List filters_;
   private static final com.google.protobuf.Internal.ListAdapter.Converter<
       java.lang.Integer, org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType> filters_converter_ =
           new com.google.protobuf.Internal.ListAdapter.Converter<
               java.lang.Integer, org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType>() {
             public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType convert(java.lang.Integer from) {
-              @SuppressWarnings("deprecation")
-              org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType result = org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType.valueOf(from);
+              org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType result = org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType.forNumber(from);
               return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.FilterType.UNRECOGNIZED : result;
             }
           };
@@ -405,7 +311,7 @@ public int getFiltersValue(int index) {
   private int filtersMemoizedSerializedSize;
 
   public static final int PREV_KV_FIELD_NUMBER = 6;
-  private boolean prevKv_;
+  private boolean prevKv_ = false;
   /**
    * 
    * If prev_kv is set, created watcher gets the previous KV before the event happens.
@@ -457,7 +363,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (prevKv_ != false) {
       output.writeBool(6, prevKv_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -498,7 +404,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(6, prevKv_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -524,7 +430,7 @@ public boolean equals(final java.lang.Object obj) {
     if (!filters_.equals(other.filters_)) return false;
     if (getPrevKv()
         != other.getPrevKv()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -552,7 +458,7 @@ public int hashCode() {
     hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getPrevKv());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -669,34 +575,25 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.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;
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
-
       startRevision_ = 0L;
-
       progressNotify_ = false;
-
       filters_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000010);
       prevKv_ = false;
-
       return this;
     }
 
@@ -723,53 +620,39 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest(this);
-      int from_bitField0_ = bitField0_;
-      result.key_ = key_;
-      result.rangeEnd_ = rangeEnd_;
-      result.startRevision_ = startRevision_;
-      result.progressNotify_ = progressNotify_;
-      if (((bitField0_ & 0x00000001) != 0)) {
-        filters_ = java.util.Collections.unmodifiableList(filters_);
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.filters_ = filters_;
-      result.prevKv_ = prevKv_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest result) {
+      if (((bitField0_ & 0x00000010) != 0)) {
+        filters_ = java.util.Collections.unmodifiableList(filters_);
+        bitField0_ = (bitField0_ & ~0x00000010);
+      }
+      result.filters_ = filters_;
     }
-    @java.lang.Override
-    public Builder addRepeatedField(
-        com.google.protobuf.Descriptors.FieldDescriptor field,
-        java.lang.Object value) {
-      return super.addRepeatedField(field, value);
+
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.rangeEnd_ = rangeEnd_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.startRevision_ = startRevision_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.progressNotify_ = progressNotify_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.prevKv_ = prevKv_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest) {
@@ -797,7 +680,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequ
       if (!other.filters_.isEmpty()) {
         if (filters_.isEmpty()) {
           filters_ = other.filters_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
           ensureFiltersIsMutable();
           filters_.addAll(other.filters_);
@@ -807,7 +690,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequ
       if (other.getPrevKv() != false) {
         setPrevKv(other.getPrevKv());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -822,17 +705,72 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              rangeEnd_ = input.readBytes();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              startRevision_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              progressNotify_ = input.readBool();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 40: {
+              int tmpRaw = input.readEnum();
+              ensureFiltersIsMutable();
+              filters_.add(tmpRaw);
+              break;
+            } // case 40
+            case 42: {
+              int length = input.readRawVarint32();
+              int oldLimit = input.pushLimit(length);
+              while(input.getBytesUntilLimit() > 0) {
+                int tmpRaw = input.readEnum();
+                ensureFiltersIsMutable();
+                filters_.add(tmpRaw);
+              }
+              input.popLimit(oldLimit);
+              break;
+            } // case 42
+            case 48: {
+              prevKv_ = input.readBool();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -860,11 +798,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -877,7 +813,7 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
@@ -914,11 +850,9 @@ public com.google.protobuf.ByteString getRangeEnd() {
      * @return This builder for chaining.
      */
     public Builder setRangeEnd(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       rangeEnd_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -935,7 +869,7 @@ public Builder setRangeEnd(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearRangeEnd() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       rangeEnd_ = getDefaultInstance().getRangeEnd();
       onChanged();
       return this;
@@ -964,8 +898,9 @@ public long getStartRevision() {
      * @return This builder for chaining.
      */
     public Builder setStartRevision(long value) {
-      
+
       startRevision_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -978,7 +913,7 @@ public Builder setStartRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearStartRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       startRevision_ = 0L;
       onChanged();
       return this;
@@ -1013,8 +948,9 @@ public boolean getProgressNotify() {
      * @return This builder for chaining.
      */
     public Builder setProgressNotify(boolean value) {
-      
+
       progressNotify_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1030,7 +966,7 @@ public Builder setProgressNotify(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearProgressNotify() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       progressNotify_ = false;
       onChanged();
       return this;
@@ -1039,9 +975,9 @@ public Builder clearProgressNotify() {
     private java.util.List filters_ =
       java.util.Collections.emptyList();
     private void ensureFiltersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000010) != 0)) {
         filters_ = new java.util.ArrayList(filters_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000010;
       }
     }
     /**
@@ -1145,7 +1081,7 @@ public Builder addAllFilters(
      */
     public Builder clearFilters() {
       filters_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000010);
       onChanged();
       return this;
     }
@@ -1179,8 +1115,8 @@ public int getFiltersValue(int index) {
      * 
* * repeated .etcdserverpb.WatchCreateRequest.FilterType filters = 5; - * @param index The index of the value to return. - * @return The enum numeric value on the wire of filters at the given index. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for filters to set. * @return This builder for chaining. */ public Builder setFiltersValue( @@ -1249,8 +1185,9 @@ public boolean getPrevKv() { * @return This builder for chaining. */ public Builder setPrevKv(boolean value) { - + prevKv_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -1264,7 +1201,7 @@ public Builder setPrevKv(boolean value) { * @return This builder for chaining. */ public Builder clearPrevKv() { - + bitField0_ = (bitField0_ & ~0x00000020); prevKv_ = false; onChanged(); return this; @@ -1302,7 +1239,18 @@ public WatchCreateRequest parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new WatchCreateRequest(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchGrpc.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchGrpc.java index b6fe377..22fbf5e 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchGrpc.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchGrpc.java @@ -5,8 +5,9 @@ /** */ @javax.annotation.Generated( - value = "by gRPC proto compiler (version 1.39.0)", + value = "by gRPC proto compiler (version 1.54.0)", comments = "Source: rpc.proto") +@io.grpc.stub.annotations.GrpcGenerated public final class WatchGrpc { private WatchGrpc() {} @@ -91,7 +92,7 @@ public WatchFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions call /** */ - public static abstract class WatchImplBase implements io.grpc.BindableService { + public interface AsyncService { /** *
@@ -102,27 +103,28 @@ public static abstract class WatchImplBase implements io.grpc.BindableService {
      * last compaction revision.
      * 
*/ - public io.grpc.stub.StreamObserver watch( + default io.grpc.stub.StreamObserver watch( io.grpc.stub.StreamObserver responseObserver) { return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getWatchMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Watch. + */ + public static abstract class WatchImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getWatchMethod(), - io.grpc.stub.ServerCalls.asyncBidiStreamingCall( - new MethodHandlers< - org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest, - org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse>( - this, METHODID_WATCH))) - .build(); + return WatchGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service Watch. */ - public static final class WatchStub extends io.grpc.stub.AbstractAsyncStub { + public static final class WatchStub + extends io.grpc.stub.AbstractAsyncStub { private WatchStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -151,8 +153,10 @@ public io.grpc.stub.StreamObserver { + public static final class WatchBlockingStub + extends io.grpc.stub.AbstractBlockingStub { private WatchBlockingStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -166,8 +170,10 @@ protected WatchBlockingStub build( } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service Watch. */ - public static final class WatchFutureStub extends io.grpc.stub.AbstractFutureStub { + public static final class WatchFutureStub + extends io.grpc.stub.AbstractFutureStub { private WatchFutureStub( io.grpc.Channel channel, io.grpc.CallOptions callOptions) { super(channel, callOptions); @@ -187,10 +193,10 @@ private static final class MethodHandlers implements io.grpc.stub.ServerCalls.ServerStreamingMethod, io.grpc.stub.ServerCalls.ClientStreamingMethod, io.grpc.stub.ServerCalls.BidiStreamingMethod { - private final WatchImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(WatchImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -218,6 +224,18 @@ public io.grpc.stub.StreamObserver invoke( } } + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getWatchMethod(), + io.grpc.stub.ServerCalls.asyncBidiStreamingCall( + new MethodHandlers< + org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest, + org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse>( + service, METHODID_WATCH))) + .build(); + } + private static abstract class WatchBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { WatchBaseDescriptorSupplier() {} diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequest.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequest.java index 4eb2378..a9d466f 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequest.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequest.java @@ -25,76 +25,6 @@ protected java.lang.Object newInstance( return new WatchRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private WatchRequest( - 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; - case 10: { - org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.Builder subBuilder = null; - if (requestUnionCase_ == 1) { - subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest) requestUnion_).toBuilder(); - } - requestUnion_ = - input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest) requestUnion_); - requestUnion_ = subBuilder.buildPartial(); - } - requestUnionCase_ = 1; - break; - } - case 18: { - org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest.Builder subBuilder = null; - if (requestUnionCase_ == 2) { - subBuilder = ((org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) requestUnion_).toBuilder(); - } - requestUnion_ = - input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) requestUnion_); - requestUnion_ = subBuilder.buildPartial(); - } - requestUnionCase_ = 2; - 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.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_WatchRequest_descriptor; @@ -109,6 +39,7 @@ private WatchRequest( } private int requestUnionCase_ = 0; + @SuppressWarnings("serial") private java.lang.Object requestUnion_; public enum RequestUnionCase implements com.google.protobuf.Internal.EnumLite, @@ -231,7 +162,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (requestUnionCase_ == 2) { output.writeMessage(2, (org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) requestUnion_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -248,7 +179,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, (org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequest) requestUnion_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -276,7 +207,7 @@ public boolean equals(final java.lang.Object obj) { case 0: default: } - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -299,7 +230,7 @@ public int hashCode() { case 0: default: } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -416,22 +347,24 @@ public static final class Builder extends // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest.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; + if (createRequestBuilder_ != null) { + createRequestBuilder_.clear(); + } + if (cancelRequestBuilder_ != null) { + cancelRequestBuilder_.clear(); + } requestUnionCase_ = 0; requestUnion_ = null; return this; @@ -460,57 +393,29 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest build() { @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest buildPartial() { org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest result = new org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest(this); - if (requestUnionCase_ == 1) { - if (createRequestBuilder_ == null) { - result.requestUnion_ = requestUnion_; - } else { - result.requestUnion_ = createRequestBuilder_.build(); - } - } - if (requestUnionCase_ == 2) { - if (cancelRequestBuilder_ == null) { - result.requestUnion_ = requestUnion_; - } else { - result.requestUnion_ = cancelRequestBuilder_.build(); - } - } - result.requestUnionCase_ = requestUnionCase_; + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); 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); + private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest result) { + int from_bitField0_ = bitField0_; } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); + + private void buildPartialOneofs(org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest result) { + result.requestUnionCase_ = requestUnionCase_; + result.requestUnion_ = this.requestUnion_; + if (requestUnionCase_ == 1 && + createRequestBuilder_ != null) { + result.requestUnion_ = createRequestBuilder_.build(); + } + if (requestUnionCase_ == 2 && + cancelRequestBuilder_ != null) { + result.requestUnion_ = cancelRequestBuilder_.build(); + } } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest) { @@ -536,7 +441,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest ot break; } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -551,17 +456,44 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getCreateRequestFieldBuilder().getBuilder(), + extensionRegistry); + requestUnionCase_ = 1; + break; + } // case 10 + case 18: { + input.readMessage( + getCancelRequestFieldBuilder().getBuilder(), + extensionRegistry); + requestUnionCase_ = 2; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } private int requestUnionCase_ = 0; @@ -579,6 +511,7 @@ public Builder clearRequestUnion() { return this; } + private int bitField0_; private com.google.protobuf.SingleFieldBuilderV3< org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest, org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequest.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequestOrBuilder> createRequestBuilder_; @@ -654,8 +587,9 @@ public Builder mergeCreateRequest(org.eclipse.ecf.provider.etcd3.grpc.api.WatchC } else { if (requestUnionCase_ == 1) { createRequestBuilder_.mergeFrom(value); + } else { + createRequestBuilder_.setMessage(value); } - createRequestBuilder_.setMessage(value); } requestUnionCase_ = 1; return this; @@ -717,7 +651,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCreateRequestOrBuilder getCr requestUnion_ = null; } requestUnionCase_ = 1; - onChanged();; + onChanged(); return createRequestBuilder_; } @@ -795,8 +729,9 @@ public Builder mergeCancelRequest(org.eclipse.ecf.provider.etcd3.grpc.api.WatchC } else { if (requestUnionCase_ == 2) { cancelRequestBuilder_.mergeFrom(value); + } else { + cancelRequestBuilder_.setMessage(value); } - cancelRequestBuilder_.setMessage(value); } requestUnionCase_ = 2; return this; @@ -858,7 +793,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequestOrBuilder getCa requestUnion_ = null; } requestUnionCase_ = 2; - onChanged();; + onChanged(); return cancelRequestBuilder_; } @java.lang.Override @@ -894,7 +829,18 @@ public WatchRequest parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new WatchRequest(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequestOrBuilder.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequestOrBuilder.java index c03c207..909ec7b 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequestOrBuilder.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchRequestOrBuilder.java @@ -37,5 +37,5 @@ public interface WatchRequestOrBuilder extends */ org.eclipse.ecf.provider.etcd3.grpc.api.WatchCancelRequestOrBuilder getCancelRequestOrBuilder(); - public org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest.RequestUnionCase getRequestUnionCase(); + org.eclipse.ecf.provider.etcd3.grpc.api.WatchRequest.RequestUnionCase getRequestUnionCase(); } diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponse.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponse.java index e02ec31..68235ca 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponse.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponse.java @@ -27,100 +27,6 @@ protected java.lang.Object newInstance( return new WatchResponse(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private WatchResponse( - 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.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder subBuilder = null; - if (header_ != null) { - subBuilder = header_.toBuilder(); - } - header_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(header_); - header_ = subBuilder.buildPartial(); - } - - break; - } - case 16: { - - watchId_ = input.readInt64(); - break; - } - case 24: { - - created_ = input.readBool(); - break; - } - case 32: { - - canceled_ = input.readBool(); - break; - } - case 40: { - - compactRevision_ = input.readInt64(); - break; - } - case 50: { - java.lang.String s = input.readStringRequireUtf8(); - - cancelReason_ = s; - break; - } - case 90: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - events_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - events_.add( - input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.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)) { - events_ = java.util.Collections.unmodifiableList(events_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.eclipse.ecf.provider.etcd3.grpc.api.ECFEtcdProto.internal_static_etcdserverpb_WatchResponse_descriptor; @@ -157,11 +63,11 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader getHeader() { */ @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeaderOrBuilder getHeaderOrBuilder() { - return getHeader(); + return header_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance() : header_; } public static final int WATCH_ID_FIELD_NUMBER = 2; - private long watchId_; + private long watchId_ = 0L; /** *
    * watch_id is the ID of the watcher that corresponds to the response.
@@ -176,7 +82,7 @@ public long getWatchId() {
   }
 
   public static final int CREATED_FIELD_NUMBER = 3;
-  private boolean created_;
+  private boolean created_ = false;
   /**
    * 
    * created is set to true if the response is for a create watch request.
@@ -194,7 +100,7 @@ public boolean getCreated() {
   }
 
   public static final int CANCELED_FIELD_NUMBER = 4;
-  private boolean canceled_;
+  private boolean canceled_ = false;
   /**
    * 
    * canceled is set to true if the response is for a cancel watch request.
@@ -210,13 +116,15 @@ public boolean getCanceled() {
   }
 
   public static final int COMPACT_REVISION_FIELD_NUMBER = 5;
-  private long compactRevision_;
+  private long compactRevision_ = 0L;
   /**
    * 
    * compact_revision is set to the minimum index if a watcher tries to watch
    * at a compacted index.
+   *
    * This happens when creating a watcher at a compacted revision or the watcher cannot
    * catch up with the progress of the key-value store.
+   *
    * The client should treat the watcher as canceled and should not try to create any
    * watcher with the same start_revision again.
    * 
@@ -230,7 +138,8 @@ public long getCompactRevision() { } public static final int CANCEL_REASON_FIELD_NUMBER = 6; - private volatile java.lang.Object cancelReason_; + @SuppressWarnings("serial") + private volatile java.lang.Object cancelReason_ = ""; /** *
    * cancel_reason indicates the reason for canceling the watcher.
@@ -276,6 +185,7 @@ public java.lang.String getCancelReason() {
   }
 
   public static final int EVENTS_FIELD_NUMBER = 11;
+  @SuppressWarnings("serial")
   private java.util.List events_;
   /**
    * repeated .mvccpb.Event events = 11;
@@ -344,13 +254,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (compactRevision_ != 0L) {
       output.writeInt64(5, compactRevision_);
     }
-    if (!getCancelReasonBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cancelReason_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 6, cancelReason_);
     }
     for (int i = 0; i < events_.size(); i++) {
       output.writeMessage(11, events_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -379,14 +289,14 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(5, compactRevision_);
     }
-    if (!getCancelReasonBytes().isEmpty()) {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cancelReason_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, cancelReason_);
     }
     for (int i = 0; i < events_.size(); i++) {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(11, events_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -418,7 +328,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getCancelReason())) return false;
     if (!getEventsList()
         .equals(other.getEventsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -451,7 +361,7 @@ public int hashCode() {
       hash = (37 * hash) + EVENTS_FIELD_NUMBER;
       hash = (53 * hash) + getEventsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -568,45 +478,35 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getEventsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (headerBuilder_ == null) {
-        header_ = null;
-      } else {
-        header_ = null;
+      bitField0_ = 0;
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
       watchId_ = 0L;
-
       created_ = false;
-
       canceled_ = false;
-
       compactRevision_ = 0L;
-
       cancelReason_ = "";
-
       if (eventsBuilder_ == null) {
         events_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        events_ = null;
         eventsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000040);
       return this;
     }
 
@@ -633,62 +533,48 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse result = new org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse(this);
-      int from_bitField0_ = bitField0_;
-      if (headerBuilder_ == null) {
-        result.header_ = header_;
-      } else {
-        result.header_ = headerBuilder_.build();
-      }
-      result.watchId_ = watchId_;
-      result.created_ = created_;
-      result.canceled_ = canceled_;
-      result.compactRevision_ = compactRevision_;
-      result.cancelReason_ = cancelReason_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse result) {
       if (eventsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000040) != 0)) {
           events_ = java.util.Collections.unmodifiableList(events_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000040);
         }
         result.events_ = events_;
       } else {
         result.events_ = eventsBuilder_.build();
       }
-      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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.header_ = headerBuilder_ == null
+            ? header_
+            : headerBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.watchId_ = watchId_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.created_ = created_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.canceled_ = canceled_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.compactRevision_ = compactRevision_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.cancelReason_ = cancelReason_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse) {
@@ -718,13 +604,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse o
       }
       if (!other.getCancelReason().isEmpty()) {
         cancelReason_ = other.cancelReason_;
+        bitField0_ |= 0x00000020;
         onChanged();
       }
       if (eventsBuilder_ == null) {
         if (!other.events_.isEmpty()) {
           if (events_.isEmpty()) {
             events_ = other.events_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000040);
           } else {
             ensureEventsIsMutable();
             events_.addAll(other.events_);
@@ -737,7 +624,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse o
             eventsBuilder_.dispose();
             eventsBuilder_ = null;
             events_ = other.events_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000040);
             eventsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getEventsFieldBuilder() : null;
@@ -746,7 +633,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse o
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -761,17 +648,75 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getHeaderFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              watchId_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              created_ = input.readBool();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              canceled_ = input.readBool();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 40: {
+              compactRevision_ = input.readInt64();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 40
+            case 50: {
+              cancelReason_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 50
+            case 90: {
+              org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event m =
+                  input.readMessage(
+                      org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.parser(),
+                      extensionRegistry);
+              if (eventsBuilder_ == null) {
+                ensureEventsIsMutable();
+                events_.add(m);
+              } else {
+                eventsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 90
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.WatchResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -784,7 +729,7 @@ public Builder mergeFrom(
      * @return Whether the header field is set.
      */
     public boolean hasHeader() {
-      return headerBuilder_ != null || header_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
@@ -806,11 +751,11 @@ public Builder setHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader
           throw new NullPointerException();
         }
         header_ = value;
-        onChanged();
       } else {
         headerBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -820,11 +765,11 @@ public Builder setHeader(
         org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder builderForValue) {
       if (headerBuilder_ == null) {
         header_ = builderForValue.build();
-        onChanged();
       } else {
         headerBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -832,38 +777,38 @@ public Builder setHeader(
      */
     public Builder mergeHeader(org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader value) {
       if (headerBuilder_ == null) {
-        if (header_ != null) {
-          header_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          header_ != null &&
+          header_ != org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.getDefaultInstance()) {
+          getHeaderBuilder().mergeFrom(value);
         } else {
           header_ = value;
         }
-        onChanged();
       } else {
         headerBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public Builder clearHeader() {
-      if (headerBuilder_ == null) {
-        header_ = null;
-        onChanged();
-      } else {
-        header_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      header_ = null;
+      if (headerBuilder_ != null) {
+        headerBuilder_.dispose();
         headerBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .etcdserverpb.ResponseHeader header = 1;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.ResponseHeader.Builder getHeaderBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getHeaderFieldBuilder().getBuilder();
     }
@@ -918,8 +863,9 @@ public long getWatchId() {
      * @return This builder for chaining.
      */
     public Builder setWatchId(long value) {
-      
+
       watchId_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -932,7 +878,7 @@ public Builder setWatchId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearWatchId() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       watchId_ = 0L;
       onChanged();
       return this;
@@ -967,8 +913,9 @@ public boolean getCreated() {
      * @return This builder for chaining.
      */
     public Builder setCreated(boolean value) {
-      
+
       created_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -984,7 +931,7 @@ public Builder setCreated(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearCreated() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       created_ = false;
       onChanged();
       return this;
@@ -1015,8 +962,9 @@ public boolean getCanceled() {
      * @return This builder for chaining.
      */
     public Builder setCanceled(boolean value) {
-      
+
       canceled_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1030,7 +978,7 @@ public Builder setCanceled(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearCanceled() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       canceled_ = false;
       onChanged();
       return this;
@@ -1041,8 +989,10 @@ public Builder clearCanceled() {
      * 
      * compact_revision is set to the minimum index if a watcher tries to watch
      * at a compacted index.
+     *
      * This happens when creating a watcher at a compacted revision or the watcher cannot
      * catch up with the progress of the key-value store.
+     *
      * The client should treat the watcher as canceled and should not try to create any
      * watcher with the same start_revision again.
      * 
@@ -1058,8 +1008,10 @@ public long getCompactRevision() { *
      * compact_revision is set to the minimum index if a watcher tries to watch
      * at a compacted index.
+     *
      * This happens when creating a watcher at a compacted revision or the watcher cannot
      * catch up with the progress of the key-value store.
+     *
      * The client should treat the watcher as canceled and should not try to create any
      * watcher with the same start_revision again.
      * 
@@ -1069,8 +1021,9 @@ public long getCompactRevision() { * @return This builder for chaining. */ public Builder setCompactRevision(long value) { - + compactRevision_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1078,8 +1031,10 @@ public Builder setCompactRevision(long value) { *
      * compact_revision is set to the minimum index if a watcher tries to watch
      * at a compacted index.
+     *
      * This happens when creating a watcher at a compacted revision or the watcher cannot
      * catch up with the progress of the key-value store.
+     *
      * The client should treat the watcher as canceled and should not try to create any
      * watcher with the same start_revision again.
      * 
@@ -1088,7 +1043,7 @@ public Builder setCompactRevision(long value) { * @return This builder for chaining. */ public Builder clearCompactRevision() { - + bitField0_ = (bitField0_ & ~0x00000010); compactRevision_ = 0L; onChanged(); return this; @@ -1147,11 +1102,9 @@ public java.lang.String getCancelReason() { */ public Builder setCancelReason( java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } cancelReason_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -1164,8 +1117,8 @@ public Builder setCancelReason( * @return This builder for chaining. */ public Builder clearCancelReason() { - cancelReason_ = getDefaultInstance().getCancelReason(); + bitField0_ = (bitField0_ & ~0x00000020); onChanged(); return this; } @@ -1180,12 +1133,10 @@ public Builder clearCancelReason() { */ public Builder setCancelReasonBytes( com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); cancelReason_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -1193,9 +1144,9 @@ public Builder setCancelReasonBytes( private java.util.List events_ = java.util.Collections.emptyList(); private void ensureEventsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000040) != 0)) { events_ = new java.util.ArrayList(events_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000040; } } @@ -1345,7 +1296,7 @@ public Builder addAllEvents( public Builder clearEvents() { if (eventsBuilder_ == null) { events_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000040); onChanged(); } else { eventsBuilder_.clear(); @@ -1422,7 +1373,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.Builder addEventsBuilder eventsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event, org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.kv.EventOrBuilder>( events_, - ((bitField0_ & 0x00000001) != 0), + ((bitField0_ & 0x00000040) != 0), getParentForChildren(), isClean()); events_ = null; @@ -1462,7 +1413,18 @@ public WatchResponse parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new WatchResponse(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponseOrBuilder.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponseOrBuilder.java index f804767..360e355 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponseOrBuilder.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/WatchResponseOrBuilder.java @@ -60,8 +60,10 @@ public interface WatchResponseOrBuilder extends *
    * compact_revision is set to the minimum index if a watcher tries to watch
    * at a compacted index.
+   *
    * This happens when creating a watcher at a compacted revision or the watcher cannot
    * catch up with the progress of the key-value store.
+   *
    * The client should treat the watcher as canceled and should not try to create any
    * watcher with the same start_revision again.
    * 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Permission.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Permission.java index 13b9d46..6ee5961 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Permission.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Permission.java @@ -32,64 +32,6 @@ protected java.lang.Object newInstance( return new Permission(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Permission( - 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; - case 8: { - int rawValue = input.readEnum(); - - permType_ = rawValue; - break; - } - case 18: { - - key_ = input.readBytes(); - break; - } - case 26: { - - rangeEnd_ = 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.eclipse.ecf.provider.etcd3.grpc.api.auth.Auth.internal_static_authpb_Permission_descriptor; @@ -221,7 +163,7 @@ private Type(int value) { } public static final int PERMTYPE_FIELD_NUMBER = 1; - private int permType_; + private int permType_ = 0; /** * .authpb.Permission.Type permType = 1; * @return The enum numeric value on the wire for permType. @@ -234,13 +176,12 @@ private Type(int value) { * @return The permType. */ @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type getPermType() { - @SuppressWarnings("deprecation") - org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type result = org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.valueOf(permType_); + org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type result = org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.forNumber(permType_); return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.UNRECOGNIZED : result; } public static final int KEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString key_; + private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY; /** * bytes key = 2; * @return The key. @@ -251,7 +192,7 @@ public com.google.protobuf.ByteString getKey() { } public static final int RANGE_END_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString rangeEnd_; + private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY; /** * bytes range_end = 3; * @return The rangeEnd. @@ -284,7 +225,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!rangeEnd_.isEmpty()) { output.writeBytes(3, rangeEnd_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -305,7 +246,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, rangeEnd_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -325,7 +266,7 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getKey())) return false; if (!getRangeEnd() .equals(other.getRangeEnd())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -342,7 +283,7 @@ public int hashCode() { hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + RANGE_END_FIELD_NUMBER; hash = (53 * hash) + getRangeEnd().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -463,28 +404,21 @@ public static final class Builder extends // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.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; permType_ = 0; - key_ = com.google.protobuf.ByteString.EMPTY; - rangeEnd_ = com.google.protobuf.ByteString.EMPTY; - return this; } @@ -511,45 +445,24 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission build() { @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission buildPartial() { org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission result = new org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission(this); - result.permType_ = permType_; - result.key_ = key_; - result.rangeEnd_ = rangeEnd_; + if (bitField0_ != 0) { buildPartial0(result); } 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); + private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.permType_ = permType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.key_ = key_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.rangeEnd_ = rangeEnd_; + } } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission) { @@ -571,7 +484,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission if (other.getRangeEnd() != com.google.protobuf.ByteString.EMPTY) { setRangeEnd(other.getRangeEnd()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -586,19 +499,48 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + permType_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + key_ = input.readBytes(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + rangeEnd_ = 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) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } + private int bitField0_; private int permType_ = 0; /** @@ -614,8 +556,8 @@ public Builder mergeFrom( * @return This builder for chaining. */ public Builder setPermTypeValue(int value) { - permType_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -625,8 +567,7 @@ public Builder setPermTypeValue(int value) { */ @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type getPermType() { - @SuppressWarnings("deprecation") - org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type result = org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.valueOf(permType_); + org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type result = org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.forNumber(permType_); return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Type.UNRECOGNIZED : result; } /** @@ -638,7 +579,7 @@ public Builder setPermType(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permissi if (value == null) { throw new NullPointerException(); } - + bitField0_ |= 0x00000001; permType_ = value.getNumber(); onChanged(); return this; @@ -648,7 +589,7 @@ public Builder setPermType(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permissi * @return This builder for chaining. */ public Builder clearPermType() { - + bitField0_ = (bitField0_ & ~0x00000001); permType_ = 0; onChanged(); return this; @@ -669,11 +610,9 @@ public com.google.protobuf.ByteString getKey() { * @return This builder for chaining. */ public Builder setKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } key_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -682,7 +621,7 @@ public Builder setKey(com.google.protobuf.ByteString value) { * @return This builder for chaining. */ public Builder clearKey() { - + bitField0_ = (bitField0_ & ~0x00000002); key_ = getDefaultInstance().getKey(); onChanged(); return this; @@ -703,11 +642,9 @@ public com.google.protobuf.ByteString getRangeEnd() { * @return This builder for chaining. */ public Builder setRangeEnd(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } rangeEnd_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -716,7 +653,7 @@ public Builder setRangeEnd(com.google.protobuf.ByteString value) { * @return This builder for chaining. */ public Builder clearRangeEnd() { - + bitField0_ = (bitField0_ & ~0x00000004); rangeEnd_ = getDefaultInstance().getRangeEnd(); onChanged(); return this; @@ -754,7 +691,18 @@ public Permission parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Permission(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Role.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Role.java index f42143f..24c9c1c 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Role.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/Role.java @@ -31,66 +31,6 @@ protected java.lang.Object newInstance( return new Role(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Role( - 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: { - - name_ = input.readBytes(); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - keyPermission_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - keyPermission_.add( - input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.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)) { - keyPermission_ = java.util.Collections.unmodifiableList(keyPermission_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.eclipse.ecf.provider.etcd3.grpc.api.auth.Auth.internal_static_authpb_Role_descriptor; @@ -105,7 +45,7 @@ private Role( } public static final int NAME_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString name_; + private com.google.protobuf.ByteString name_ = com.google.protobuf.ByteString.EMPTY; /** * bytes name = 1; * @return The name. @@ -116,6 +56,7 @@ public com.google.protobuf.ByteString getName() { } public static final int KEYPERMISSION_FIELD_NUMBER = 2; + @SuppressWarnings("serial") private java.util.List keyPermission_; /** * repeated .authpb.Permission keyPermission = 2; @@ -175,7 +116,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < keyPermission_.size(); i++) { output.writeMessage(2, keyPermission_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -192,7 +133,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, keyPermission_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -211,7 +152,7 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getName())) return false; if (!getKeyPermissionList() .equals(other.getKeyPermissionList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -228,7 +169,7 @@ public int hashCode() { hash = (37 * hash) + KEYPERMISSION_FIELD_NUMBER; hash = (53 * hash) + getKeyPermissionList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -349,31 +290,26 @@ public static final class Builder extends // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role.newBuilder() private Builder() { - maybeForceBuilderInitialization(); + } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getKeyPermissionFieldBuilder(); - } + } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; name_ = com.google.protobuf.ByteString.EMPTY; - if (keyPermissionBuilder_ == null) { keyPermission_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + keyPermission_ = null; keyPermissionBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -400,53 +336,31 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role build() { @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role buildPartial() { org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role result = new org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role(this); - int from_bitField0_ = bitField0_; - result.name_ = name_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role result) { if (keyPermissionBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000002) != 0)) { keyPermission_ = java.util.Collections.unmodifiableList(keyPermission_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } result.keyPermission_ = keyPermission_; } else { result.keyPermission_ = keyPermissionBuilder_.build(); } - 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); + private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role) { @@ -466,7 +380,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role other if (!other.keyPermission_.isEmpty()) { if (keyPermission_.isEmpty()) { keyPermission_ = other.keyPermission_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } else { ensureKeyPermissionIsMutable(); keyPermission_.addAll(other.keyPermission_); @@ -479,7 +393,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role other keyPermissionBuilder_.dispose(); keyPermissionBuilder_ = null; keyPermission_ = other.keyPermission_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); keyPermissionBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKeyPermissionFieldBuilder() : null; @@ -488,7 +402,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role other } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -503,17 +417,48 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + 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 18: { + org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission m = + input.readMessage( + org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.parser(), + extensionRegistry); + if (keyPermissionBuilder_ == null) { + ensureKeyPermissionIsMutable(); + keyPermission_.add(m); + } else { + keyPermissionBuilder_.addMessage(m); + } + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.auth.Role) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } private int bitField0_; @@ -533,11 +478,9 @@ public com.google.protobuf.ByteString getName() { * @return This builder for chaining. */ public Builder setName(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -546,7 +489,7 @@ public Builder setName(com.google.protobuf.ByteString value) { * @return This builder for chaining. */ public Builder clearName() { - + bitField0_ = (bitField0_ & ~0x00000001); name_ = getDefaultInstance().getName(); onChanged(); return this; @@ -555,9 +498,9 @@ public Builder clearName() { private java.util.List keyPermission_ = java.util.Collections.emptyList(); private void ensureKeyPermissionIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000002) != 0)) { keyPermission_ = new java.util.ArrayList(keyPermission_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000002; } } @@ -707,7 +650,7 @@ public Builder addAllKeyPermission( public Builder clearKeyPermission() { if (keyPermissionBuilder_ == null) { keyPermission_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { keyPermissionBuilder_.clear(); @@ -784,7 +727,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder addKeyPer keyPermissionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission, org.eclipse.ecf.provider.etcd3.grpc.api.auth.Permission.Builder, org.eclipse.ecf.provider.etcd3.grpc.api.auth.PermissionOrBuilder>( keyPermission_, - ((bitField0_ & 0x00000001) != 0), + ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); keyPermission_ = null; @@ -824,7 +767,18 @@ public Role parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Role(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/User.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/User.java index 20bde3a..8fafb25 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/User.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/auth/User.java @@ -22,7 +22,8 @@ private User(com.google.protobuf.GeneratedMessageV3.Builder builder) { private User() { name_ = com.google.protobuf.ByteString.EMPTY; password_ = com.google.protobuf.ByteString.EMPTY; - roles_ = com.google.protobuf.LazyStringArrayList.EMPTY; + roles_ = + com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -32,71 +33,6 @@ protected java.lang.Object newInstance( return new User(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private User( - 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: { - - name_ = input.readBytes(); - break; - } - case 18: { - - password_ = input.readBytes(); - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - roles_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000001; - } - roles_.add(s); - 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)) { - roles_ = roles_.getUnmodifiableView(); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.eclipse.ecf.provider.etcd3.grpc.api.auth.Auth.internal_static_authpb_User_descriptor; @@ -111,7 +47,7 @@ private User( } public static final int NAME_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString name_; + private com.google.protobuf.ByteString name_ = com.google.protobuf.ByteString.EMPTY; /** * bytes name = 1; * @return The name. @@ -122,7 +58,7 @@ public com.google.protobuf.ByteString getName() { } public static final int PASSWORD_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString password_; + private com.google.protobuf.ByteString password_ = com.google.protobuf.ByteString.EMPTY; /** * bytes password = 2; * @return The password. @@ -133,7 +69,9 @@ public com.google.protobuf.ByteString getPassword() { } public static final int ROLES_FIELD_NUMBER = 3; - private com.google.protobuf.LazyStringList roles_; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList roles_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * repeated string roles = 3; * @return A list containing the roles. @@ -190,7 +128,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < roles_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, roles_.getRaw(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -215,7 +153,7 @@ public int getSerializedSize() { size += dataSize; size += 1 * getRolesList().size(); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -236,7 +174,7 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getPassword())) return false; if (!getRolesList() .equals(other.getRolesList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -255,7 +193,7 @@ public int hashCode() { hash = (37 * hash) + ROLES_FIELD_NUMBER; hash = (53 * hash) + getRolesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -376,28 +314,22 @@ public static final class Builder extends // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.auth.User.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; name_ = com.google.protobuf.ByteString.EMPTY; - password_ = com.google.protobuf.ByteString.EMPTY; - - roles_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); + roles_ = + com.google.protobuf.LazyStringArrayList.emptyList(); return this; } @@ -424,50 +356,25 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.auth.User build() { @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.auth.User buildPartial() { org.eclipse.ecf.provider.etcd3.grpc.api.auth.User result = new org.eclipse.ecf.provider.etcd3.grpc.api.auth.User(this); - int from_bitField0_ = bitField0_; - result.name_ = name_; - result.password_ = password_; - if (((bitField0_ & 0x00000001) != 0)) { - roles_ = roles_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.roles_ = roles_; + if (bitField0_ != 0) { buildPartial0(result); } 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); + private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.auth.User result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.password_ = password_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + roles_.makeImmutable(); + result.roles_ = roles_; + } } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.auth.User) { @@ -489,14 +396,14 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.auth.User other if (!other.roles_.isEmpty()) { if (roles_.isEmpty()) { roles_ = other.roles_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ |= 0x00000004; } else { ensureRolesIsMutable(); roles_.addAll(other.roles_); } onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -511,17 +418,46 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.eclipse.ecf.provider.etcd3.grpc.api.auth.User parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + 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 18: { + password_ = input.readBytes(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + ensureRolesIsMutable(); + roles_.add(s); + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.auth.User) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } private int bitField0_; @@ -541,11 +477,9 @@ public com.google.protobuf.ByteString getName() { * @return This builder for chaining. */ public Builder setName(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -554,7 +488,7 @@ public Builder setName(com.google.protobuf.ByteString value) { * @return This builder for chaining. */ public Builder clearName() { - + bitField0_ = (bitField0_ & ~0x00000001); name_ = getDefaultInstance().getName(); onChanged(); return this; @@ -575,11 +509,9 @@ public com.google.protobuf.ByteString getPassword() { * @return This builder for chaining. */ public Builder setPassword(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } password_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -588,18 +520,19 @@ public Builder setPassword(com.google.protobuf.ByteString value) { * @return This builder for chaining. */ public Builder clearPassword() { - + bitField0_ = (bitField0_ & ~0x00000002); password_ = getDefaultInstance().getPassword(); onChanged(); return this; } - private com.google.protobuf.LazyStringList roles_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList roles_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureRolesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!roles_.isModifiable()) { roles_ = new com.google.protobuf.LazyStringArrayList(roles_); - bitField0_ |= 0x00000001; - } + } + bitField0_ |= 0x00000004; } /** * repeated string roles = 3; @@ -607,7 +540,8 @@ private void ensureRolesIsMutable() { */ public com.google.protobuf.ProtocolStringList getRolesList() { - return roles_.getUnmodifiableView(); + roles_.makeImmutable(); + return roles_; } /** * repeated string roles = 3; @@ -641,11 +575,10 @@ public java.lang.String getRoles(int index) { */ public Builder setRoles( int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRolesIsMutable(); + if (value == null) { throw new NullPointerException(); } + ensureRolesIsMutable(); roles_.set(index, value); + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -656,11 +589,10 @@ public Builder setRoles( */ public Builder addRoles( java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRolesIsMutable(); + if (value == null) { throw new NullPointerException(); } + ensureRolesIsMutable(); roles_.add(value); + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -674,6 +606,7 @@ public Builder addAllRoles( ensureRolesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, roles_); + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -682,8 +615,9 @@ public Builder addAllRoles( * @return This builder for chaining. */ public Builder clearRoles() { - roles_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); + roles_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004);; onChanged(); return this; } @@ -694,12 +628,11 @@ public Builder clearRoles() { */ public Builder addRolesBytes( com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); ensureRolesIsMutable(); roles_.add(value); + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -736,7 +669,18 @@ public User parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new User(input, extensionRegistry); + 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(); } }; diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/Event.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/Event.java index 995b7a7..50a83f0 100644 --- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/Event.java +++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/Event.java @@ -26,80 +26,6 @@ protected java.lang.Object newInstance( return new Event(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Event( - 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; - case 8: { - int rawValue = input.readEnum(); - - type_ = rawValue; - break; - } - case 18: { - org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder subBuilder = null; - if (kv_ != null) { - subBuilder = kv_.toBuilder(); - } - kv_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(kv_); - kv_ = subBuilder.buildPartial(); - } - - break; - } - case 26: { - org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder subBuilder = null; - if (prevKv_ != null) { - subBuilder = prevKv_.toBuilder(); - } - prevKv_ = input.readMessage(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(prevKv_); - prevKv_ = subBuilder.buildPartial(); - } - - 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.eclipse.ecf.provider.etcd3.grpc.api.kv.Kv.internal_static_mvccpb_Event_descriptor; @@ -222,7 +148,7 @@ private EventType(int value) { } public static final int TYPE_FIELD_NUMBER = 1; - private int type_; + private int type_ = 0; /** *
    * type is the kind of event. If type is a PUT, it indicates
@@ -247,8 +173,7 @@ private EventType(int value) {
    * @return The type.
    */
   @java.lang.Override public org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType getType() {
-    @SuppressWarnings("deprecation")
-    org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType result = org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.valueOf(type_);
+    org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType result = org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.forNumber(type_);
     return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.UNRECOGNIZED : result;
   }
 
@@ -299,7 +224,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue getKv() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder getKvOrBuilder() {
-    return getKv();
+    return kv_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance() : kv_;
   }
 
   public static final int PREV_KV_FIELD_NUMBER = 3;
@@ -337,7 +262,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue getPrevKv() {
    */
   @java.lang.Override
   public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder getPrevKvOrBuilder() {
-    return getPrevKv();
+    return prevKv_ == null ? org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance() : prevKv_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -363,7 +288,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (prevKv_ != null) {
       output.writeMessage(3, getPrevKv());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -384,7 +309,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, getPrevKv());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -410,7 +335,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getPrevKv()
           .equals(other.getPrevKv())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -431,7 +356,7 @@ public int hashCode() {
       hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
       hash = (53 * hash) + getPrevKv().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -548,34 +473,27 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.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_ = 0;
-
-      if (kvBuilder_ == null) {
-        kv_ = null;
-      } else {
-        kv_ = null;
+      kv_ = null;
+      if (kvBuilder_ != null) {
+        kvBuilder_.dispose();
         kvBuilder_ = null;
       }
-      if (prevKvBuilder_ == null) {
-        prevKv_ = null;
-      } else {
-        prevKv_ = null;
+      prevKv_ = null;
+      if (prevKvBuilder_ != null) {
+        prevKvBuilder_.dispose();
         prevKvBuilder_ = null;
       }
       return this;
@@ -604,53 +522,28 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event result = new org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event(this);
-      result.type_ = type_;
-      if (kvBuilder_ == null) {
-        result.kv_ = kv_;
-      } else {
-        result.kv_ = kvBuilder_.build();
-      }
-      if (prevKvBuilder_ == null) {
-        result.prevKv_ = prevKv_;
-      } else {
-        result.prevKv_ = prevKvBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.type_ = type_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.kv_ = kvBuilder_ == null
+            ? kv_
+            : kvBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.prevKv_ = prevKvBuilder_ == null
+            ? prevKv_
+            : prevKvBuilder_.build();
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event) {
@@ -672,7 +565,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event other)
       if (other.hasPrevKv()) {
         mergePrevKv(other.getPrevKv());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -687,19 +580,52 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              type_ = input.readEnum();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              input.readMessage(
+                  getKvFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              input.readMessage(
+                  getPrevKvFieldBuilder().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)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int type_ = 0;
     /**
@@ -727,8 +653,8 @@ public Builder mergeFrom(
      * @return This builder for chaining.
      */
     public Builder setTypeValue(int value) {
-      
       type_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -744,8 +670,7 @@ public Builder setTypeValue(int value) {
      */
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType getType() {
-      @SuppressWarnings("deprecation")
-      org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType result = org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.valueOf(type_);
+      org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType result = org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.forNumber(type_);
       return result == null ? org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventType.UNRECOGNIZED : result;
     }
     /**
@@ -763,7 +688,7 @@ public Builder setType(org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventTyp
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000001;
       type_ = value.getNumber();
       onChanged();
       return this;
@@ -779,7 +704,7 @@ public Builder setType(org.eclipse.ecf.provider.etcd3.grpc.api.kv.Event.EventTyp
      * @return This builder for chaining.
      */
     public Builder clearType() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       type_ = 0;
       onChanged();
       return this;
@@ -801,7 +726,7 @@ public Builder clearType() {
      * @return Whether the kv field is set.
      */
     public boolean hasKv() {
-      return kvBuilder_ != null || kv_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -839,11 +764,11 @@ public Builder setKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue value)
           throw new NullPointerException();
         }
         kv_ = value;
-        onChanged();
       } else {
         kvBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -861,11 +786,11 @@ public Builder setKv(
         org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder builderForValue) {
       if (kvBuilder_ == null) {
         kv_ = builderForValue.build();
-        onChanged();
       } else {
         kvBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -881,17 +806,18 @@ public Builder setKv(
      */
     public Builder mergeKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue value) {
       if (kvBuilder_ == null) {
-        if (kv_ != null) {
-          kv_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.newBuilder(kv_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          kv_ != null &&
+          kv_ != org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance()) {
+          getKvBuilder().mergeFrom(value);
         } else {
           kv_ = value;
         }
-        onChanged();
       } else {
         kvBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -906,14 +832,13 @@ public Builder mergeKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue value
      * .mvccpb.KeyValue kv = 2;
      */
     public Builder clearKv() {
-      if (kvBuilder_ == null) {
-        kv_ = null;
-        onChanged();
-      } else {
-        kv_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      kv_ = null;
+      if (kvBuilder_ != null) {
+        kvBuilder_.dispose();
         kvBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -928,7 +853,7 @@ public Builder clearKv() {
      * .mvccpb.KeyValue kv = 2;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder getKvBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getKvFieldBuilder().getBuilder();
     }
@@ -988,7 +913,7 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValueOrBuilder getKvOrBuild
      * @return Whether the prevKv field is set.
      */
     public boolean hasPrevKv() {
-      return prevKvBuilder_ != null || prevKv_ != null;
+      return ((bitField0_ & 0x00000004) != 0);
     }
     /**
      * 
@@ -1018,11 +943,11 @@ public Builder setPrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue val
           throw new NullPointerException();
         }
         prevKv_ = value;
-        onChanged();
       } else {
         prevKvBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000004;
+      onChanged();
       return this;
     }
     /**
@@ -1036,11 +961,11 @@ public Builder setPrevKv(
         org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder builderForValue) {
       if (prevKvBuilder_ == null) {
         prevKv_ = builderForValue.build();
-        onChanged();
       } else {
         prevKvBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000004;
+      onChanged();
       return this;
     }
     /**
@@ -1052,17 +977,18 @@ public Builder setPrevKv(
      */
     public Builder mergePrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue value) {
       if (prevKvBuilder_ == null) {
-        if (prevKv_ != null) {
-          prevKv_ =
-            org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.newBuilder(prevKv_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000004) != 0) &&
+          prevKv_ != null &&
+          prevKv_ != org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.getDefaultInstance()) {
+          getPrevKvBuilder().mergeFrom(value);
         } else {
           prevKv_ = value;
         }
-        onChanged();
       } else {
         prevKvBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000004;
+      onChanged();
       return this;
     }
     /**
@@ -1073,14 +999,13 @@ public Builder mergePrevKv(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue v
      * .mvccpb.KeyValue prev_kv = 3;
      */
     public Builder clearPrevKv() {
-      if (prevKvBuilder_ == null) {
-        prevKv_ = null;
-        onChanged();
-      } else {
-        prevKv_ = null;
+      bitField0_ = (bitField0_ & ~0x00000004);
+      prevKv_ = null;
+      if (prevKvBuilder_ != null) {
+        prevKvBuilder_.dispose();
         prevKvBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1091,7 +1016,7 @@ public Builder clearPrevKv() {
      * .mvccpb.KeyValue prev_kv = 3;
      */
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.Builder getPrevKvBuilder() {
-      
+      bitField0_ |= 0x00000004;
       onChanged();
       return getPrevKvFieldBuilder().getBuilder();
     }
@@ -1163,7 +1088,18 @@ public Event parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Event(input, extensionRegistry);
+      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();
     }
   };
 
diff --git a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/KeyValue.java b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/KeyValue.java
index 741c909..61190ca 100644
--- a/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/KeyValue.java
+++ b/org.eclipse.ecf.provider.etcd3/src-gen/main/java/org/eclipse/ecf/provider/etcd3/grpc/api/kv/KeyValue.java
@@ -27,78 +27,6 @@ protected java.lang.Object newInstance(
     return new KeyValue();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet
-  getUnknownFields() {
-    return this.unknownFields;
-  }
-  private KeyValue(
-      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;
-          case 10: {
-
-            key_ = input.readBytes();
-            break;
-          }
-          case 16: {
-
-            createRevision_ = input.readInt64();
-            break;
-          }
-          case 24: {
-
-            modRevision_ = input.readInt64();
-            break;
-          }
-          case 32: {
-
-            version_ = input.readInt64();
-            break;
-          }
-          case 42: {
-
-            value_ = input.readBytes();
-            break;
-          }
-          case 48: {
-
-            lease_ = 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.eclipse.ecf.provider.etcd3.grpc.api.kv.Kv.internal_static_mvccpb_KeyValue_descriptor;
@@ -113,7 +41,7 @@ private KeyValue(
   }
 
   public static final int KEY_FIELD_NUMBER = 1;
-  private com.google.protobuf.ByteString key_;
+  private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * key is the key in bytes. An empty key is not allowed.
@@ -128,7 +56,7 @@ public com.google.protobuf.ByteString getKey() {
   }
 
   public static final int CREATE_REVISION_FIELD_NUMBER = 2;
-  private long createRevision_;
+  private long createRevision_ = 0L;
   /**
    * 
    * create_revision is the revision of last creation on this key.
@@ -143,7 +71,7 @@ public long getCreateRevision() {
   }
 
   public static final int MOD_REVISION_FIELD_NUMBER = 3;
-  private long modRevision_;
+  private long modRevision_ = 0L;
   /**
    * 
    * mod_revision is the revision of last modification on this key.
@@ -158,7 +86,7 @@ public long getModRevision() {
   }
 
   public static final int VERSION_FIELD_NUMBER = 4;
-  private long version_;
+  private long version_ = 0L;
   /**
    * 
    * version is the version of the key. A deletion resets
@@ -175,7 +103,7 @@ public long getVersion() {
   }
 
   public static final int VALUE_FIELD_NUMBER = 5;
-  private com.google.protobuf.ByteString value_;
+  private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * value is the value held by the key, in bytes.
@@ -190,7 +118,7 @@ public com.google.protobuf.ByteString getValue() {
   }
 
   public static final int LEASE_FIELD_NUMBER = 6;
-  private long lease_;
+  private long lease_ = 0L;
   /**
    * 
    * lease is the ID of the lease that attached to key.
@@ -238,7 +166,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (lease_ != 0L) {
       output.writeInt64(6, lease_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -271,7 +199,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(6, lease_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -298,7 +226,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getValue())) return false;
     if (getLease()
         != other.getLease()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -325,7 +253,7 @@ public int hashCode() {
     hash = (37 * hash) + LEASE_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
         getLease());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -442,34 +370,24 @@ public static final class Builder extends
 
     // Construct using org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue.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;
       key_ = com.google.protobuf.ByteString.EMPTY;
-
       createRevision_ = 0L;
-
       modRevision_ = 0L;
-
       version_ = 0L;
-
       value_ = com.google.protobuf.ByteString.EMPTY;
-
       lease_ = 0L;
-
       return this;
     }
 
@@ -496,48 +414,33 @@ public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue build() {
     @java.lang.Override
     public org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue buildPartial() {
       org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue result = new org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue(this);
-      result.key_ = key_;
-      result.createRevision_ = createRevision_;
-      result.modRevision_ = modRevision_;
-      result.version_ = version_;
-      result.value_ = value_;
-      result.lease_ = lease_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       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);
+    private void buildPartial0(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.key_ = key_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.createRevision_ = createRevision_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.modRevision_ = modRevision_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.version_ = version_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.value_ = value_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.lease_ = lease_;
+      }
     }
+
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
       if (other instanceof org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue) {
@@ -568,7 +471,7 @@ public Builder mergeFrom(org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue oth
       if (other.getLease() != 0L) {
         setLease(other.getLease());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -583,19 +486,63 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              key_ = input.readBytes();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              createRevision_ = input.readInt64();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              modRevision_ = input.readInt64();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              version_ = input.readInt64();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 42: {
+              value_ = input.readBytes();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 42
+            case 48: {
+              lease_ = input.readInt64();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            default: {
+              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                done = true; // was an endgroup tag
+              }
+              break;
+            } // default:
+          } // switch (tag)
+        } // while (!done)
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (org.eclipse.ecf.provider.etcd3.grpc.api.kv.KeyValue) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
     /**
@@ -620,11 +567,9 @@ public com.google.protobuf.ByteString getKey() {
      * @return This builder for chaining.
      */
     public Builder setKey(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       key_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -637,7 +582,7 @@ public Builder setKey(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearKey() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       key_ = getDefaultInstance().getKey();
       onChanged();
       return this;
@@ -666,8 +611,9 @@ public long getCreateRevision() {
      * @return This builder for chaining.
      */
     public Builder setCreateRevision(long value) {
-      
+
       createRevision_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -680,7 +626,7 @@ public Builder setCreateRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearCreateRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       createRevision_ = 0L;
       onChanged();
       return this;
@@ -709,8 +655,9 @@ public long getModRevision() {
      * @return This builder for chaining.
      */
     public Builder setModRevision(long value) {
-      
+
       modRevision_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -723,7 +670,7 @@ public Builder setModRevision(long value) {
      * @return This builder for chaining.
      */
     public Builder clearModRevision() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       modRevision_ = 0L;
       onChanged();
       return this;
@@ -756,8 +703,9 @@ public long getVersion() {
      * @return This builder for chaining.
      */
     public Builder setVersion(long value) {
-      
+
       version_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -772,7 +720,7 @@ public Builder setVersion(long value) {
      * @return This builder for chaining.
      */
     public Builder clearVersion() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       version_ = 0L;
       onChanged();
       return this;
@@ -801,11 +749,9 @@ 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(); }
       value_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -818,7 +764,7 @@ public Builder setValue(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearValue() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       value_ = getDefaultInstance().getValue();
       onChanged();
       return this;
@@ -851,8 +797,9 @@ public long getLease() {
      * @return This builder for chaining.
      */
     public Builder setLease(long value) {
-      
+
       lease_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -867,7 +814,7 @@ public Builder setLease(long value) {
      * @return This builder for chaining.
      */
     public Builder clearLease() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       lease_ = 0L;
       onChanged();
       return this;
@@ -905,7 +852,18 @@ public KeyValue parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new KeyValue(input, extensionRegistry);
+      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();
     }
   };