diff --git a/pom.xml b/pom.xml
index 5c24516..5583f30 100644
--- a/pom.xml
+++ b/pom.xml
@@ -361,8 +361,8 @@
                     <!-- https://jira.codehaus.org/browse/MCOMPILER-205 -->
                     <version>2.5.1</version>
                     <configuration>
-                        <source>1.7</source>
-                        <target>1.7</target>
+                        <source>1.8</source>
+                        <target>1.8</target>
                     </configuration>
                 </plugin>
 
@@ -407,7 +407,7 @@
                 <plugin>
                     <groupId>org.apache.felix</groupId>
                     <artifactId>maven-scr-plugin</artifactId>
-                    <version>1.15.0</version>
+                    <version>1.20.0</version>
                     <executions>
                         <execution>
                             <id>generate-scr-srcdescriptor</id>
diff --git a/tools/package/bin/onos-service b/tools/package/bin/onos-service
index 9250d5b..ae6d970 100755
--- a/tools/package/bin/onos-service
+++ b/tools/package/bin/onos-service
@@ -3,7 +3,7 @@
 # Starts ONOS Apache Karaf container
 # -----------------------------------------------------------------------------
 
-export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-7-openjdk-amd64/}
+#export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-7-openjdk-amd64/}
 export JAVA_OPTS="${JAVA_OPTS:--Xms256M -Xmx2048M}"
 
 cd /opt/onos
diff --git a/tools/package/debian/onos.conf b/tools/package/debian/onos.conf
index 1d8f10a..888c02b 100644
--- a/tools/package/debian/onos.conf
+++ b/tools/package/debian/onos.conf
@@ -11,8 +11,8 @@
 respawn
 
 env LANG=en_US.UTF-8
-env JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
-env NEW_JAVA_HOME=/usr/lib/jvm/java-8-oracle/
+#env JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
+#env NEW_JAVA_HOME=/usr/lib/jvm/java-8-oracle/
 
 pre-stop script
     /opt/onos/bin/onos halt 2>/opt/onos/var/stderr.log
diff --git a/utils/junit/src/test/java/org/onlab/junit/TestUtilsTest.java b/utils/junit/src/test/java/org/onlab/junit/TestUtilsTest.java
index 39712ba..68e407f 100644
--- a/utils/junit/src/test/java/org/onlab/junit/TestUtilsTest.java
+++ b/utils/junit/src/test/java/org/onlab/junit/TestUtilsTest.java
@@ -101,9 +101,9 @@
     @Test
     public void testSetGetPrivateField() throws TestUtilsException {
 
-        assertEquals(42, TestUtils.getField(test, "privateField"));
+        assertEquals(42, (int) TestUtils.getField(test, "privateField"));
         TestUtils.setField(test, "privateField", 0xDEAD);
-        assertEquals(0xDEAD, TestUtils.getField(test, "privateField"));
+        assertEquals(0xDEAD, (int) TestUtils.getField(test, "privateField"));
     }
 
     /**
@@ -114,9 +114,9 @@
     @Test
     public void testSetGetProtectedField() throws TestUtilsException {
 
-        assertEquals(2501, TestUtils.getField(test, "protectedField"));
+        assertEquals(2501, (int) TestUtils.getField(test, "protectedField"));
         TestUtils.setField(test, "protectedField", 0xBEEF);
-        assertEquals(0xBEEF, TestUtils.getField(test, "protectedField"));
+        assertEquals(0xBEEF, (int) TestUtils.getField(test, "protectedField"));
     }
 
     /**
