You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2017/12/15 20:19:05 UTC
[bookkeeper] branch master updated: ISSUE #778: Make build pass
using JDK9
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 97c35e9 ISSUE #778: Make build pass using JDK9
97c35e9 is described below
commit 97c35e9c02f0b7be33881d1a1c0c500143f8fc55
Author: Sijie Guo <si...@apache.org>
AuthorDate: Fri Dec 15 12:18:57 2017 -0800
ISSUE #778: Make build pass using JDK9
Descriptions of the changes in this PR:
- make bookkeeper can be compiled with java 9
- add java9 to travis ci to make sure it can be built for both java8 and java9
Author: Sijie Guo <si...@apache.org>
Reviewers: Enrico Olivelli <eo...@gmail.com>, Matteo Merli <mm...@apache.org>
This closes #857 from sijie/compile_with_java9, closes #778
---
.travis.yml | 4 ++++
.../java/org/apache/bookkeeper/common/util/Retries.java | 16 +++++++++-------
bookkeeper-server/pom.xml | 2 +-
.../bookkeeper/tls/SecurityProviderFactoryFactory.java | 15 ++++++++-------
.../org/apache/bookkeeper/tls/TLSContextFactory.java | 14 ++++++++------
.../java/org/apache/bookkeeper/util/EntryFormatter.java | 5 ++---
.../org/apache/bookkeeper/bookie/TestSkipListArena.java | 2 +-
.../org/apache/bookkeeper/metastore/TestMetaStore.java | 2 +-
pom.xml | 15 +++++++++++----
9 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 234a600..f0a8e95 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,9 +25,13 @@ matrix:
include:
- os: osx
osx_image: xcode8
+ - os: osx
+ osx_image: xcode9.2
- os: linux
env: CUSTOM_JDK="oraclejdk8"
- os: linux
+ env: CUSTOM_JDK="oraclejdk9"
+ - os: linux
dist: trusty
env: CUSTOM_JDK="openjdk8"
diff --git a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/util/Retries.java b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/util/Retries.java
index 3dd4da8..89214e3 100644
--- a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/util/Retries.java
+++ b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/util/Retries.java
@@ -94,13 +94,15 @@ public final class Retries {
scheduler,
null);
} else {
- scheduler.submitOrdered(key, () -> execute(
- future,
- backoffs.iterator(),
- retryPredicate,
- task,
- scheduler,
- key));
+ scheduler.submitOrdered(key, () -> {
+ execute(
+ future,
+ backoffs.iterator(),
+ retryPredicate,
+ task,
+ scheduler,
+ key);
+ });
}
return future;
}
diff --git a/bookkeeper-server/pom.xml b/bookkeeper-server/pom.xml
index 9e6d4ca..04a27d0 100644
--- a/bookkeeper-server/pom.xml
+++ b/bookkeeper-server/pom.xml
@@ -335,7 +335,7 @@
<configuration>
<!-- Avoid for missing javadoc comments to be marked as errors -->
<additionalparam>-Xdoclint:none</additionalparam>
- <subpackages>org.apache.bookkeeper.client:org.apache.bookkeeper.common.annotation:org.apache.bookkeeper.conf:org.apache.bookkeeper.feature:org.apache.bookkeeper.stats</subpackages>
+ <subpackages>org.apache.bookkeeper.client:org.apache.bookkeeper.conf:org.apache.bookkeeper.feature</subpackages>
<groups>
<group>
<title>Bookkeeper</title>
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/SecurityProviderFactoryFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/SecurityProviderFactoryFactory.java
index 94d6096..a6dad0b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/SecurityProviderFactoryFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/SecurityProviderFactoryFactory.java
@@ -17,6 +17,7 @@
*/
package org.apache.bookkeeper.tls;
+import org.apache.bookkeeper.util.ReflectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,15 +33,15 @@ public abstract class SecurityProviderFactoryFactory {
return null;
}
- ClassLoader classLoader = SecurityProviderFactoryFactory.class.getClassLoader();
- SecurityHandlerFactory shFactory = null;
+ SecurityHandlerFactory shFactory;
try {
- Class<?> shFactoryClass = classLoader.loadClass(securityHandler);
- shFactory = (SecurityHandlerFactory) shFactoryClass.newInstance();
+ Class<? extends SecurityHandlerFactory> shFactoryClass =
+ ReflectionUtils.forName(securityHandler, SecurityHandlerFactory.class);
+ shFactory = ReflectionUtils.newInstance(shFactoryClass);
LOG.info("Loaded security handler for {}", securityHandler);
- } catch (Exception e) {
- LOG.error("Unable to load security handler for {}: ", securityHandler, e);
- throw new SecurityException(e);
+ } catch (RuntimeException re) {
+ LOG.error("Unable to load security handler for {}: ", securityHandler, re.getCause());
+ throw new SecurityException(re.getCause());
}
return shFactory;
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
index 040bc9b..a2108a7 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
@@ -19,6 +19,7 @@ package org.apache.bookkeeper.tls;
import com.google.common.base.Strings;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.OpenSsl;
@@ -58,16 +59,17 @@ public class TLSContextFactory implements SecurityHandlerFactory {
private String getPasswordFromFile(String path) throws IOException {
byte[] pwd;
- try (FileInputStream pwdin = new FileInputStream(path)) {
- File passwdFile = new File(path);
- if (passwdFile.length() == 0) {
- return "";
- }
- pwd = FileUtils.readFileToByteArray(passwdFile);
+ File passwdFile = new File(path);
+ if (passwdFile.length() == 0) {
+ return "";
}
+ pwd = FileUtils.readFileToByteArray(passwdFile);
return new String(pwd, "UTF-8");
}
+ @SuppressFBWarnings(
+ value = "OBL_UNSATISFIED_OBLIGATION",
+ justification = "work around for java 9: https://github.com/spotbugs/spotbugs/issues/493")
private KeyStore loadKeyStore(String keyStoreType, String keyStoreLocation, String keyStorePassword)
throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
KeyStore ks = KeyStore.getInstance(keyStoreType);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EntryFormatter.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EntryFormatter.java
index eae5f58..86a5f0e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EntryFormatter.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EntryFormatter.java
@@ -59,11 +59,10 @@ public abstract class EntryFormatter {
public static EntryFormatter newEntryFormatter(Configuration conf, String clsProperty) {
String cls = conf.getString(clsProperty, StringEntryFormatter.class.getName());
- ClassLoader classLoader = EntryFormatter.class.getClassLoader();
EntryFormatter formatter;
try {
- Class aCls = classLoader.loadClass(cls);
- formatter = (EntryFormatter) aCls.newInstance();
+ Class<? extends EntryFormatter> aCls = ReflectionUtils.forName(cls, EntryFormatter.class);
+ formatter = ReflectionUtils.newInstance(aCls);
formatter.setConf(conf);
} catch (Exception e) {
LOG.warn("No formatter class found : " + cls, e);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSkipListArena.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSkipListArena.java
index f5d819c..83e4794 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSkipListArena.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSkipListArena.java
@@ -188,7 +188,7 @@ public class TestSkipListArena {
treeMap = new TreeMap<Integer, AllocBuffer>();
mapsByArray.put(ptr, treeMap);
}
- AllocBuffer other = treeMap.put(new Integer(buf.alloc.getOffset()), buf);
+ AllocBuffer other = treeMap.put(buf.alloc.getOffset(), buf);
if (other != null) {
fail("Buffer " + other.toString() + " overlapped with " + buf.toString());
}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
index 40e60cd..f61d14b 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
@@ -110,7 +110,7 @@ public class TestMetaStore {
name = getFieldFromValue(value, FIELD_NAME);
String c = getFieldFromValue(value, FIELD_COUNTER);
if (c != null) {
- counter = new Integer(c);
+ counter = Integer.parseInt(c);
}
}
diff --git a/pom.xml b/pom.xml
index ec42c90..5bb7f2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,15 +106,16 @@
<hamcrest.version>1.3</hamcrest.version>
<jmh.version>1.19</jmh.version>
<junit.version>4.12</junit.version>
- <lombok.version>1.16.12</lombok.version>
+ <lombok.version>1.16.18</lombok.version>
<mockito-core.version>2.8.9</mockito-core.version>
- <powermock.version>1.7.3</powermock.version>
- <protobuf.version>3.4.0</protobuf.version>
<netty.version>4.1.12.Final</netty.version>
<netty-boringssl.version>2.0.3.Final</netty-boringssl.version>
+ <powermock.version>1.7.3</powermock.version>
+ <protobuf.version>3.4.0</protobuf.version>
+ <rocksdb.version>5.8.6</rocksdb.version>
<slf4j.version>1.7.25</slf4j.version>
+ <spotbugs-annotations.version>3.1.1</spotbugs-annotations.version>
<zookeeper.version>3.5.3-beta</zookeeper.version>
- <rocksdb.version>5.8.6</rocksdb.version>
<!-- plugin dependencies -->
<spotbugs-maven-plugin.version>3.1.0-RC6</spotbugs-maven-plugin.version>
<puppycrawl.checkstyle.version>6.19</puppycrawl.checkstyle.version>
@@ -144,6 +145,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-annotations</artifactId>
+ <version>${spotbugs-annotations.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons-configuration.version}</version>
--
To stop receiving notification emails like this one, please contact
['"commits@bookkeeper.apache.org" <co...@bookkeeper.apache.org>'].