diff --git a/.travis.yml b/.travis.yml
index 8b2427e..ae97bcc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,5 @@
+# Container-based infrastructure has been fully deprecated.
+# https://docs.travis-ci.com/user/reference/trusty/#container-based-infrastructure
 sudo: false
 
 env:
@@ -6,32 +8,26 @@
    #   via the "travis encrypt" command using the project repo's public key
    - secure: "gYAzVukFw3ssmQzfovoKTNJnzQbUhF13tksHHhe5dqQWglxdix39wY405nMmzRm/21ZpIq3OFIlI7fnHdZSGkVPS/nPPxbzUkjYUh+zkujYwsqgjZecq9vGaoarnyV9CcI+2D6qUVnArHQ02FKxirtXduGvElZ/eRIa/hBfpgn4="
 
-#addons:
-#  coverity_scan:
-#    project:
-#      name: "myui/hivemall"
-#      description: "Build submitted via Travis CI"
-#    notification_email: false
-#    build_command_prepend: "mvn clean"
-#    build_command:   "mvn -DskipTests=true compile"
-#    branch_pattern: master
-
 dist: trusty
+
 language: java
 jdk:
 # - openjdk7
-# - oraclejdk7
   - oraclejdk8
-# - oraclejdk9
+  - oraclejdk9
+  - oraclejdk11
 
 branches:
   only:
     - master
-    - develop
 
 notifications:
   email: false
 
+cache:
+  directories:
+  - $HOME/.m2
+
 script:
   - ./bin/run_travis_tests.sh
 
diff --git a/bin/run_travis_tests.sh b/bin/run_travis_tests.sh
index 3f0b090..06c0f75 100755
--- a/bin/run_travis_tests.sh
+++ b/bin/run_travis_tests.sh
@@ -18,17 +18,6 @@
 # under the License.
 #
 
-if [ "$HIVEMALL_HOME" = "" ]; then
-  if [ -e ../bin/${0##*/} ]; then
-    HIVEMALL_HOME=".."
-  elif [ -e ./bin/${0##*/} ]; then
-    HIVEMALL_HOME="."
-  else
-    echo "env HIVEMALL_HOME not defined"
-    exit 1
-  fi
-fi
-
 set -ev
 
 mvn clean test
diff --git a/core/pom.xml b/core/pom.xml
index 645967d..59cd169 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -42,11 +42,23 @@
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-common</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-mapreduce-client-core</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hive</groupId>
@@ -153,16 +165,6 @@
 			<artifactId>mockito-core</artifactId>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.powermock</groupId>
-			<artifactId>powermock-module-junit4</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.powermock</groupId>
-			<artifactId>powermock-api-mockito</artifactId>
-			<scope>test</scope>
-		</dependency>
 	</dependencies>
 
 </project>
diff --git a/core/src/main/java/hivemall/fm/FactorizationMachineUDTF.java b/core/src/main/java/hivemall/fm/FactorizationMachineUDTF.java
index 4a39101..1d8509c 100644
--- a/core/src/main/java/hivemall/fm/FactorizationMachineUDTF.java
+++ b/core/src/main/java/hivemall/fm/FactorizationMachineUDTF.java
@@ -124,8 +124,8 @@
     protected long _numValidations;
 
     // file IO
-    private ByteBuffer _inputBuf;
-    private NioStatefulSegment _fileIO;
+    private transient ByteBuffer _inputBuf;
+    private transient NioStatefulSegment _fileIO;
 
     @Override
     protected Options getOptions() {
diff --git a/core/src/main/java/hivemall/topicmodel/ProbabilisticTopicModelBaseUDTF.java b/core/src/main/java/hivemall/topicmodel/ProbabilisticTopicModelBaseUDTF.java
index 5a5fbce..c13d18b 100644
--- a/core/src/main/java/hivemall/topicmodel/ProbabilisticTopicModelBaseUDTF.java
+++ b/core/src/main/java/hivemall/topicmodel/ProbabilisticTopicModelBaseUDTF.java
@@ -78,8 +78,8 @@
     protected ListObjectInspector wordCountsOI;
 
     // for iterations
-    protected NioStatefulSegment fileIO;
-    protected ByteBuffer inputBuf;
+    protected transient NioStatefulSegment fileIO;
+    protected transient ByteBuffer inputBuf;
 
     private float cumPerplexity;
 
diff --git a/core/src/test/java/hivemall/ftvec/trans/BinarizeLabelUDTFTest.java b/core/src/test/java/hivemall/ftvec/trans/BinarizeLabelUDTFTest.java
index 55b4e53..3824bd0 100644
--- a/core/src/test/java/hivemall/ftvec/trans/BinarizeLabelUDTFTest.java
+++ b/core/src/test/java/hivemall/ftvec/trans/BinarizeLabelUDTFTest.java
@@ -18,13 +18,6 @@
  */
 package hivemall.ftvec.trans;
 
-import static org.mockito.AdditionalMatchers.aryEq;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.times;
-import static org.powermock.api.mockito.PowerMockito.doNothing;
-import static org.powermock.api.mockito.PowerMockito.spy;
-import static org.powermock.api.mockito.PowerMockito.verifyPrivate;
-
 import hivemall.TestUtils;
 import hivemall.utils.hadoop.WritableUtils;
 
@@ -36,12 +29,7 @@
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({BinarizeLabelUDTF.class})
 public class BinarizeLabelUDTFTest {
 
     // ignored to avoid
@@ -60,54 +48,6 @@
     }
 
     @Test
-    public void test2Positive3NegativeSample() throws Exception {
-        BinarizeLabelUDTF udtf = spy(new BinarizeLabelUDTF());
-        ObjectInspector[] argOIs = new ObjectInspector[3];
-        argOIs[0] = PrimitiveObjectInspectorFactory.javaIntObjectInspector;
-        argOIs[1] = PrimitiveObjectInspectorFactory.javaIntObjectInspector;
-        List<String> featureNames = Arrays.asList("positive", "negative", "features");
-        argOIs[2] = ObjectInspectorFactory.getStandardConstantListObjectInspector(
-            PrimitiveObjectInspectorFactory.javaStringObjectInspector, featureNames);
-
-        doNothing().when(udtf, "forward", any());
-        udtf.initialize(argOIs);
-
-        Object[] arguments = new Object[3];
-        arguments[0] = new Integer(2);
-        arguments[1] = new Integer(3);
-        arguments[2] = WritableUtils.val("a:1", "b:2");
-        udtf.process(arguments);
-
-        verifyPrivate(udtf, times(5)).invoke("forward", any(Object[].class));
-        verifyPrivate(udtf, times(2)).invoke("forward",
-            aryEq(new Object[] {WritableUtils.val("a:1", "b:2"), 1}));
-        verifyPrivate(udtf, times(3)).invoke("forward",
-            aryEq(new Object[] {WritableUtils.val("a:1", "b:2"), 0}));
-    }
-
-    @Test
-    public void test0Positive0NegativeSample() throws Exception {
-        BinarizeLabelUDTF udtf = spy(new BinarizeLabelUDTF());
-        ObjectInspector[] argOIs = new ObjectInspector[3];
-        argOIs[0] = PrimitiveObjectInspectorFactory.javaIntObjectInspector;
-        argOIs[1] = PrimitiveObjectInspectorFactory.javaIntObjectInspector;
-        List<String> featureNames = Arrays.asList("positive", "negative", "features");
-        argOIs[2] = ObjectInspectorFactory.getStandardConstantListObjectInspector(
-            PrimitiveObjectInspectorFactory.javaStringObjectInspector, featureNames);
-
-        doNothing().when(udtf, "forward", any());
-        udtf.initialize(argOIs);
-
-        Object[] arguments = new Object[3];
-        arguments[0] = new Integer(0);
-        arguments[1] = new Integer(0);
-        arguments[2] = WritableUtils.val("a:1", "b:2");
-        udtf.process(arguments);
-
-        verifyPrivate(udtf, times(0)).invoke("forward", any(Object[].class));
-    }
-
-    @Test
     public void testSerialization() throws HiveException {
         final List<String> featureNames = Arrays.asList("positive", "negative", "features");
         TestUtils.testGenericUDTFSerialization(BinarizeLabelUDTF.class,
diff --git a/mixserv/pom.xml b/mixserv/pom.xml
index fd863a5..d1c0f6b 100644
--- a/mixserv/pom.xml
+++ b/mixserv/pom.xml
@@ -40,11 +40,23 @@
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-common</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-mapreduce-client-core</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hive</groupId>
diff --git a/nlp/pom.xml b/nlp/pom.xml
index 0bce2ac..c1cfd05 100644
--- a/nlp/pom.xml
+++ b/nlp/pom.xml
@@ -40,11 +40,23 @@
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-common</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-mapreduce-client-core</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hive</groupId>
diff --git a/pom.xml b/pom.xml
index 157b7db..47e3154 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,9 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
 	<groupId>org.apache.hivemall</groupId>
@@ -24,9 +26,9 @@
 	<version>0.6.0-incubating-SNAPSHOT</version>
 
 	<parent>
-	  <groupId>org.apache</groupId>
-	  <artifactId>apache</artifactId>
-	  <version>21</version>
+		<groupId>org.apache</groupId>
+		<artifactId>apache</artifactId>
+		<version>21</version>
 	</parent>
 
 	<name>Apache Hivemall</name>
@@ -571,6 +573,7 @@
 						<docencoding>UTF-8</docencoding>
 						<show>protected</show>
 						<linksource>true</linksource>
+						<source>7</source>
 					</configuration>
 					<executions>
 						<execution>
@@ -650,6 +653,12 @@
 								<requireEnvironmentVariable>
 									<variableName>JAVA_HOME</variableName>
 								</requireEnvironmentVariable>
+								<bannedDependencies>
+									<excludes>
+										<!-- see STORM-3114 -->
+										<exclude>jdk.tools:jdk.tools:*</exclude>
+									</excludes>
+								</bannedDependencies>
 							</rules>
 							<fail>true</fail>
 						</configuration>
diff --git a/xgboost/pom.xml b/xgboost/pom.xml
index 7b7d1df..0c77a54 100644
--- a/xgboost/pom.xml
+++ b/xgboost/pom.xml
@@ -40,11 +40,23 @@
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-common</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hadoop</groupId>
 			<artifactId>hadoop-mapreduce-client-core</artifactId>
 			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>jdk.tools</artifactId>
+					<groupId>jdk.tools</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.hive</groupId>
