Upgrade protobuf to 3.14.0 (latest)
Descriptions of the changes in this PR:
Upgraded protobuf dependency
### Motivation
unit tests log "WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil" on Java11
This has been fixed in protobuf since version 3.7
### Changes
Upgraded protobuf;
updated code to remove use of deprecated methods
Master Issue: #2579
Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Nicolò Boschi <boschi1997@gmail.com>
This closes #2580 from dlg99/master-proto
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
index 5b542b5..70e3bb6 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
@@ -165,7 +165,7 @@
}
StringBuilder b = new StringBuilder();
b.append(CURRENT_COOKIE_LAYOUT_VERSION).append("\n");
- b.append(TextFormat.printToString(builder.build()));
+ b.append(builder.build().toString());
return b.toString();
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
index eb2b91c..f5a2c0f 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
@@ -278,7 +278,7 @@
builder.addSegment(segmentBuilder.build());
}
- TextFormat.print(builder.build(), writer);
+ TextFormat.printer().print(builder.build(), writer);
writer.flush();
}
return os.toByteArray();
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkLedgerUnderreplicationManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkLedgerUnderreplicationManager.java
index a50261a..266570f 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkLedgerUnderreplicationManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkLedgerUnderreplicationManager.java
@@ -164,7 +164,7 @@
// if we cant get the address, ignore. it's optional
// in the data structure in any case
}
- return TextFormat.printToString(lockDataBuilder.build()).getBytes(UTF_8);
+ return lockDataBuilder.build().toString().getBytes(UTF_8);
}
private void checkLayout()
@@ -182,7 +182,7 @@
LedgerRereplicationLayoutFormat.Builder builder = LedgerRereplicationLayoutFormat.newBuilder();
builder.setType(LAYOUT).setVersion(LAYOUT_VERSION);
try {
- zkc.create(layoutZNode, TextFormat.printToString(builder.build()).getBytes(UTF_8),
+ zkc.create(layoutZNode, builder.build().toString().getBytes(UTF_8),
zkAcls, CreateMode.PERSISTENT);
} catch (KeeperException.NodeExistsException nne) {
// someone else managed to create it
@@ -310,7 +310,7 @@
builder.setCtime(System.currentTimeMillis());
}
missingReplicas.forEach(builder::addReplica);
- final byte[] urLedgerData = TextFormat.printToString(builder.build()).getBytes(UTF_8);
+ final byte[] urLedgerData = builder.build().toString().getBytes(UTF_8);
ZkUtils.asyncCreateFullPathOptimistic(
zkc, znode, urLedgerData, zkAcls, CreateMode.PERSISTENT,
(rc, path, ctx, name) -> {
@@ -361,7 +361,7 @@
if (conf.getStoreSystemTimeAsLedgerUnderreplicatedMarkTime()) {
builder.setCtime(System.currentTimeMillis());
}
- final byte[] newUrLedgerData = TextFormat.printToString(builder.build()).getBytes(UTF_8);
+ final byte[] newUrLedgerData = builder.build().toString().getBytes(UTF_8);
zkc.setData(znode, newUrLedgerData, getStat.getVersion(), (setRc, setPath, setCtx, setStat) -> {
if (Code.OK.intValue() == setRc) {
FutureUtils.complete(finalFuture, null);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AuditorElector.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AuditorElector.java
index f396e5f..7028466 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AuditorElector.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AuditorElector.java
@@ -184,7 +184,7 @@
AuditorVoteFormat.Builder builder = AuditorVoteFormat.newBuilder()
.setBookieId(bookieId);
myVote = zkc.create(getVotePath(PATH_SEPARATOR + VOTE_PREFIX),
- TextFormat.printToString(builder.build()).getBytes(UTF_8), zkAcls,
+ builder.build().toString().getBytes(UTF_8), zkAcls,
CreateMode.EPHEMERAL_SEQUENTIAL);
}
}
@@ -310,7 +310,7 @@
.setBookieId(bookieId);
zkc.setData(getVotePath(""),
- TextFormat.printToString(builder.build()).getBytes(UTF_8), -1);
+ builder.build().toString().getBytes(UTF_8), -1);
auditor = new Auditor(bookieId, conf, bkc, false, statsLogger);
auditor.start();
} else {
diff --git a/pom.xml b/pom.xml
index b490495..a20c1ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,8 +157,8 @@
<prometheus.version>0.8.1</prometheus.version>
<datasketches.version>0.8.3</datasketches.version>
<httpclient.version>4.5.5</httpclient.version>
- <protobuf.version>3.5.1</protobuf.version>
- <protoc3.version>3.5.1-1</protoc3.version>
+ <protobuf.version>3.14.0</protobuf.version>
+ <protoc3.version>3.14.0</protoc3.version>
<protoc-gen-grpc-java.version>${grpc.version}</protoc-gen-grpc-java.version>
<reflections.version>0.9.11</reflections.version>
<rocksdb.version>6.10.2</rocksdb.version>
@@ -195,7 +195,7 @@
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<nar-maven-plugin.version>3.5.2</nar-maven-plugin.version>
<os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version>
- <protobuf-maven-plugin.version>0.5.0</protobuf-maven-plugin.version>
+ <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
<puppycrawl.checkstyle.version>6.19</puppycrawl.checkstyle.version>
<spotbugs-maven-plugin.version>3.1.8</spotbugs-maven-plugin.version>
<forkCount.variable>1</forkCount.variable>