diff --git a/commons/pom.xml b/commons/pom.xml
index 67b19ba..c251d46 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -101,18 +101,11 @@
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro</artifactId>
-      <version>1.7.7</version>
     </dependency>
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro-ipc</artifactId>
-      <version>1.7.7</version>
     </dependency>
-
-
-
-  
-  
   </dependencies>
   <build>
     <resources>
diff --git a/core/pom.xml b/core/pom.xml
index fa86caa..9e99b37 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -20,8 +20,8 @@
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>16</version>
-    <relativePath />
+    <version>21</version>
+    <relativePath/>
   </parent>
   <groupId>org.apache.oodt</groupId>
   <artifactId>oodt-core</artifactId>
@@ -40,6 +40,7 @@
     <wicket.version>1.4.17</wicket.version>
     <jetty.version>6.1.25</jetty.version>
     <sonar.language>java</sonar.language>
+    <lucene.version>6.6.5</lucene.version>
   </properties>
   <distributionManagement>
     <site>
@@ -324,33 +325,22 @@
       <dependency>
         <groupId>org.apache.lucene</groupId>
         <artifactId>lucene-core</artifactId>
-        <version>6.6.5</version>
+        <version>${lucene.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.lucene</groupId>
         <artifactId>lucene-queryparser</artifactId>
-        <version>6.6.5</version>
+        <version>${lucene.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.lucene</groupId>
         <artifactId>lucene-analyzers-common</artifactId>
-        <version>6.6.5</version>
+        <version>${lucene.version}</version>
       </dependency>
       <dependency>
          <groupId>org.apache.lucene</groupId>
-	 <artifactId>lucene-backward-codecs</artifactId>
-	 <version>6.6.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.lucene</groupId>
-        <artifactId>lucene-queryparser</artifactId>
-        <version>6.1.0</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.lucene</groupId>
-        <artifactId>lucene-analyzers-common</artifactId>
-        <version>6.1.0</version>
+	       <artifactId>lucene-backward-codecs</artifactId>
+	       <version>${lucene.version}</version>
       </dependency>
 
       <dependency>
diff --git a/filemgr/pom.xml b/filemgr/pom.xml
index ccf610f..75e33a3 100644
--- a/filemgr/pom.xml
+++ b/filemgr/pom.xml
@@ -50,7 +50,6 @@
      can be overridden in a specific pom and should have a comment explaing why the version has been overridden
   -->
   <dependencies>
-    <!-- https://mvnrepository.com/artifact/org.apache.avro/avro -->
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro</artifactId>
@@ -249,7 +248,7 @@
       <plugin>
         <groupId>org.apache.avro</groupId>
         <artifactId>avro-maven-plugin</artifactId>
-        <version>1.7.7</version>
+        <version>1.8.2</version>
         <configuration>
           <stringType>String</stringType>
           <detail>true</detail>
diff --git a/resource/pom.xml b/resource/pom.xml
index 6f1ebdd..be627f9 100644
--- a/resource/pom.xml
+++ b/resource/pom.xml
@@ -63,7 +63,7 @@
       <plugin>
         <groupId>org.apache.avro</groupId>
         <artifactId>avro-maven-plugin</artifactId>
-        <version>1.7.7</version>
+        <version>1.8.2</version>
         <configuration>
           <stringType>String</stringType>
           <detail>true</detail>
@@ -143,32 +143,25 @@
     </plugins>
   </build>
   <dependencies>
-   <dependency>
-    <groupId>com.thoughtworks.xstream</groupId>
-    <artifactId>xstream</artifactId>
-    <version>1.3.1</version>
-    <exclusions>
-      <exclusion>
-        <!-- xom is an optional dependency of xstream. Its also an Apache incompatible license -->
-        <groupId>xom</groupId>
-        <artifactId>xom</artifactId>
-      </exclusion>
-     </exclusions>
-   </dependency>
+    <dependency>
+      <groupId>com.thoughtworks.xstream</groupId>
+      <artifactId>xstream</artifactId>
+      <version>1.3.1</version>
+      <exclusions>
+        <exclusion>
+          <!-- xom is an optional dependency of xstream. Its also an Apache incompatible license -->
+          <groupId>xom</groupId>
+          <artifactId>xom</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro</artifactId>
-      <version>1.7.7</version>
     </dependency>
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro-ipc</artifactId>
-      <version>1.7.7</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.oodt</groupId>
-      <artifactId>cas-metadata</artifactId>
-      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>commons-codec</groupId>
diff --git a/workflow/pom.xml b/workflow/pom.xml
index 55259dd..b23f30b 100644
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -51,17 +51,13 @@
      can be overridden in a specific pom and should have a comment explaing why the version has been overridden
   -->
   <dependencies>
-    <!-- https://mvnrepository.com/artifact/org.apache.avro/avro -->
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro</artifactId>
-      <version>1.8.1</version>
     </dependency>
-    <!-- https://mvnrepository.com/artifact/org.apache.avro/avro-ipc -->
     <dependency>
       <groupId>org.apache.avro</groupId>
       <artifactId>avro-ipc</artifactId>
-      <version>1.8.1</version>
     </dependency>
     <dependency>
       <groupId>commons-codec</groupId>
@@ -195,7 +191,7 @@
       <plugin>
         <groupId>org.apache.avro</groupId>
         <artifactId>avro-maven-plugin</artifactId>
-        <version>1.7.7</version>
+        <version>1.8.2</version>
         <configuration>
           <stringType>String</stringType>
           <detail>true</detail>
diff --git a/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java b/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
index bc0ce8d..a411b44 100644
--- a/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
+++ b/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
@@ -17,10 +17,16 @@
 
 package org.apache.oodt.cas.workflow.system;
 
-import junit.framework.TestCase;
 import org.apache.commons.io.FileUtils;
 import org.apache.oodt.cas.metadata.Metadata;
 import org.apache.oodt.cas.workflow.util.AvroTypeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -31,7 +37,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-public class TestAvroRpcWorkflowManager extends TestCase {
+public class TestAvroRpcWorkflowManager {
 
     private static final int WM_PORT = 65527;
 
@@ -42,6 +48,7 @@
     private static final Logger LOG = Logger
             .getLogger(TestXmlRpcWorkflowManager.class.getName());
 
+    @Test
     public void testGetWorkflowInstances() {
 
         Vector workflowInsts = null;
@@ -59,15 +66,17 @@
 
         assertNotNull(workflowInsts);
 
-        assertEquals(2, workflowInsts.size());
+        assertEquals(1, workflowInsts.size());
     }
 
-    protected void setUp() throws Exception {
+    @Before
+    public void setUp() throws Exception {
         startAvroRpcWorkflowManager();
         startWorkflow();
     }
 
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         wmgr.shutdown();
     }
 
@@ -117,11 +126,9 @@
             }
         }
 
-        System
-                .setProperty("workflow.engine.instanceRep.factory",
+        System.setProperty("workflow.engine.instanceRep.factory",
                         "org.apache.oodt.cas.workflow.instrepo.LuceneWorkflowInstanceRepositoryFactory");
-        System
-                .setProperty("org.apache.oodt.cas.workflow.instanceRep.lucene.idxPath",
+        System.setProperty("org.apache.oodt.cas.workflow.instanceRep.lucene.idxPath",
                         luceneCatLoc);
 
         try {
