You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by km...@apache.org on 2019/07/03 12:06:09 UTC

[oozie] branch master updated: OOZIE-3476 Migrate classes without setup/tearDown to JUnit4 (asalamon74 via kmarton)

This is an automated email from the ASF dual-hosted git repository.

kmarton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/oozie.git


The following commit(s) were added to refs/heads/master by this push:
     new 64b9b40  OOZIE-3476 Migrate classes without setup/tearDown to JUnit4 (asalamon74 via kmarton)
64b9b40 is described below

commit 64b9b40117958ad29fbb05fc956d450ce871006e
Author: kmarton <km...@apache.org>
AuthorDate: Wed Jul 3 14:05:57 2019 +0200

    OOZIE-3476 Migrate classes without setup/tearDown to JUnit4 (asalamon74 via kmarton)
---
 .../java/org/apache/oozie/cli/TestCLIParser.java   |  9 ++++++--
 .../org/apache/oozie/cli/TestOozieCLIMethods.java  |  7 ++++--
 .../apache/oozie/client/rest/TestJsonToBean.java   | 27 ++++++++++++++++++++--
 .../test/java/org/apache/oozie/TestActionBean.java | 14 ++++++-----
 .../org/apache/oozie/TestBundleEngineSimple.java   | 17 +++++++++++---
 .../java/org/apache/oozie/TestBundleJobBean.java   |  8 +++++--
 .../org/apache/oozie/TestCoordinatorJobBean.java   |  8 +++++--
 .../test/java/org/apache/oozie/TestErrorCode.java  |  8 ++++---
 .../java/org/apache/oozie/TestSLAEventBean.java    | 10 ++++++--
 .../java/org/apache/oozie/TestWorkflowBean.java    | 16 +++++--------
 .../oozie/action/hadoop/TestCredentials.java       |  6 ++++-
 .../oozie/client/TestWorkflowClientException.java  | 13 +++++++++--
 .../client/rest/TestJsonCoordinatorAction.java     |  8 +++++--
 .../oozie/client/rest/TestJsonCoordinatorJob.java  |  8 +++++--
 .../oozie/client/rest/TestJsonWorkflowAction.java  |  7 ++++--
 .../oozie/client/rest/TestJsonWorkflowJob.java     |  8 +++++--
 .../coord/input/logic/TestInputLogicParser.java    | 23 ++++++++++++++++--
 .../oozie/service/TestActionConfFileType.java      | 13 +++++++++--
 .../apache/oozie/servlet/TestHostnameFilter.java   |  8 +++++--
 .../oozie/test/TestEmbeddedServletContainer.java   |  8 ++++++-
 .../util/TestBlockingWritesExitValueProcess.java   |  6 ++++-
 .../oozie/util/TestELConstantsFunctions.java       | 17 ++++++++++++--
 .../org/apache/oozie/util/TestELEvaluator.java     | 16 +++++++++++--
 .../org/apache/oozie/util/TestParamChecker.java    | 23 ++++++++++++++++--
 .../apache/oozie/util/TestParameterVerifier.java   | 16 +++++++++++--
 .../apache/oozie/util/TestPriorityDelayQueue.java  | 21 +++++++++++++++--
 .../apache/oozie/util/db/TestSLADbOperations.java  |  8 +++++--
 .../apache/oozie/util/db/TestSLADbXOperations.java |  8 +++++--
 .../java/org/apache/oozie/util/db/TestSchema.java  |  8 +++++--
 release-log.txt                                    |  1 +
 .../apache/oozie/action/hadoop/TestHive2Main.java  |  8 +++++--
 .../oozie/tools/TestBlockSizeCalculator.java       | 16 ++++++++-----
 32 files changed, 297 insertions(+), 77 deletions(-)

diff --git a/client/src/test/java/org/apache/oozie/cli/TestCLIParser.java b/client/src/test/java/org/apache/oozie/cli/TestCLIParser.java
index bbb95e2..77c582e 100644
--- a/client/src/test/java/org/apache/oozie/cli/TestCLIParser.java
+++ b/client/src/test/java/org/apache/oozie/cli/TestCLIParser.java
@@ -25,7 +25,7 @@ import java.io.PipedOutputStream;
 import java.io.PrintStream;
 import java.nio.charset.StandardCharsets;
 
-import junit.framework.TestCase;
+
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
@@ -34,7 +34,12 @@ import org.junit.Test;
 
 import com.google.common.io.ByteStreams;
 
-public class TestCLIParser extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+public class TestCLIParser {
 
     @Test
     public void testEmptyParser() throws Exception {
diff --git a/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java b/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
index 7202f51..06db6c3 100644
--- a/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
+++ b/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
@@ -31,7 +31,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.client.BulkResponse;
 import org.apache.oozie.client.BundleJob;
@@ -44,7 +44,10 @@ import org.junit.Test;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.ByteStreams;
 
-public class TestOozieCLIMethods extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+
+public class TestOozieCLIMethods {
 
     static final String jobIdPattern = "Job ID[\\s|:]+";
     static final String jobNamePattern = "Job Name[\\s|:]+";
diff --git a/client/src/test/java/org/apache/oozie/client/rest/TestJsonToBean.java b/client/src/test/java/org/apache/oozie/client/rest/TestJsonToBean.java
index 7326778..4d75b37 100644
--- a/client/src/test/java/org/apache/oozie/client/rest/TestJsonToBean.java
+++ b/client/src/test/java/org/apache/oozie/client/rest/TestJsonToBean.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.AppType;
 import org.apache.oozie.client.BulkResponse;
@@ -41,7 +41,12 @@ import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 import org.json.simple.JSONValue;
 
-public class TestJsonToBean extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class TestJsonToBean {
 
     static String CREATED_TIME = "Thu, 01 Jan 2009 00:00:00 GMT";
     static String START_TIME = "Thu, 01 Jan 2009 00:00:00 GMT";
@@ -86,6 +91,7 @@ public class TestJsonToBean extends TestCase {
         return array;
     }
 
+    @Test
     public void testParseWorkflowAction() {
         JSONObject json = createJsonWorkflowAction();
         WorkflowAction action = JsonToBean.createWorkflowAction(json);
@@ -109,6 +115,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseWorkflowActions() {
         JSONArray array = createJsonWorkflowActionList();
         List<WorkflowAction> list = JsonToBean.createWorkflowActionList(array);
@@ -150,6 +157,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseWorkflowJob() {
         JSONObject json = createJsonWorkflowJob();
         WorkflowJob wf = JsonToBean.createWorkflowJob(json);
@@ -172,6 +180,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseWorkflowJobs() {
         JSONArray array = createJsonWorkflowJobList();
         List<WorkflowJob> list = JsonToBean.createWorkflowJobList(array);
@@ -217,6 +226,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseCoordinatorAction() {
         JSONObject json = createJsonCoordinatorAction();
         CoordinatorAction action = JsonToBean.createCoordinatorAction(json);
@@ -241,6 +251,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseCoordinatorActions() {
         JSONArray array = createJsonCoordinatorActionList();
         List<CoordinatorAction> list = JsonToBean.createCoordinatorActionList(array);
@@ -290,6 +301,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseCoordinatorJob() {
         JSONObject json = createJsonCoordinatorJob();
         CoordinatorJob job = JsonToBean.createCoordinatorJob(json);
@@ -326,6 +338,7 @@ public class TestJsonToBean extends TestCase {
     }
 
     @SuppressWarnings("unchecked")
+    @Test
     public void testParseCoordinatorJobs() {
         JSONArray array = createJsonCoordinatorJobList();
         List<CoordinatorJob> list = JsonToBean.createCoordinatorJobList(array);
@@ -351,6 +364,7 @@ public class TestJsonToBean extends TestCase {
         return json;
     }
 
+    @Test
     public void testParseJMSInfo() {
         JSONObject json = createJMSInfoJSONObject();
         JMSConnectionInfo jmsDetails = JsonToBean.createJMSConnectionInfo(json);
@@ -409,6 +423,7 @@ public class TestJsonToBean extends TestCase {
         return array;
     }
 
+    @Test
     public void testParseBulkResponse() {
         JSONObject json = createJsonBulkResponse();
 
@@ -437,6 +452,7 @@ public class TestJsonToBean extends TestCase {
         assertEquals("action-missingDeps", bulkAction.getMissingDependencies());
     }
 
+    @Test
     public void testParseBulkResponseList() {
         JSONArray array = createJsonBulkResponseList();
         List<BulkResponse> list = JsonToBean.createBulkResponseList(array);
@@ -446,30 +462,37 @@ public class TestJsonToBean extends TestCase {
         assertEquals("cj2", list.get(1).getCoordinator().getId());
     }
 
+    @Test
     public void testWorkflowActionMappings() throws Exception {
         _testMappings(JsonToBean.WF_ACTION, WorkflowAction.class, true);
     }
 
+    @Test
     public void testWorkflowJobMappings() throws Exception {
         _testMappings(JsonToBean.WF_JOB, WorkflowJob.class, true);
     }
 
+    @Test
     public void testCoordActionMappings() throws Exception {
         _testMappings(JsonToBean.COORD_ACTION, CoordinatorAction.class, true);
     }
 
+    @Test
     public void testCoordJobMappings() throws Exception {
         _testMappings(JsonToBean.COORD_JOB, CoordinatorJob.class, true);
     }
 
+    @Test
     public void testBundleJobMappings() throws Exception {
         _testMappings(JsonToBean.BUNDLE_JOB, BundleJob.class, true);
     }
 
+    @Test
     public void testBulkResponseMappings() throws Exception {
         _testMappings(JsonToBean.BULK_RESPONSE, BulkResponse.class, false);
     }
 
+    @Test
     public void testJMSConnectionInfoMappings() throws Exception {
         _testMappings(JsonToBean.JMS_CONNECTION_INFO, JMSConnectionInfoWrapper.class, false);
     }
diff --git a/core/src/test/java/org/apache/oozie/TestActionBean.java b/core/src/test/java/org/apache/oozie/TestActionBean.java
index 0af99f2..4567ec8 100644
--- a/core/src/test/java/org/apache/oozie/TestActionBean.java
+++ b/core/src/test/java/org/apache/oozie/TestActionBean.java
@@ -19,8 +19,7 @@
 package org.apache.oozie;
 
 import org.apache.oozie.client.WorkflowAction;
-import org.apache.oozie.test.XTestCase;
-import org.apache.oozie.WorkflowActionBean;
+import org.junit.Test;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -28,8 +27,13 @@ import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.util.Date;
 
-public class TestActionBean extends XTestCase {
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
+public class TestActionBean {
+
+    @Test
     public void testAction() {
         WorkflowActionBean action = new WorkflowActionBean();
         action.setJobId("id");
@@ -64,6 +68,7 @@ public class TestActionBean extends XTestCase {
         assertEquals("job1,job2", action.getExternalChildIDs());
     }
 
+    @Test
     public void testEmptyWriteRead() throws Exception {
         WorkflowActionBean action = new WorkflowActionBean();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -75,7 +80,4 @@ public class TestActionBean extends XTestCase {
         action.readFields(dis);
     }
 
-    public void testFullWriteRead() throws Exception {
-        //TODO
-    }
 }
diff --git a/core/src/test/java/org/apache/oozie/TestBundleEngineSimple.java b/core/src/test/java/org/apache/oozie/TestBundleEngineSimple.java
index 90746e8..3bba72d 100644
--- a/core/src/test/java/org/apache/oozie/TestBundleEngineSimple.java
+++ b/core/src/test/java/org/apache/oozie/TestBundleEngineSimple.java
@@ -18,19 +18,23 @@
 
 package org.apache.oozie;
 
-import junit.framework.TestCase;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.oozie.client.CoordinatorJob;
 import org.apache.oozie.client.WorkflowJob;
 import org.apache.oozie.client.rest.BulkResponseImpl;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
 
 /**
  * Test non-argument constructor and methods of {@link BundleEngine} that either throw exceptions or return null.
  * {@link BundleEngineException} covered as well.
  */
-public class TestBundleEngineSimple extends TestCase {
+public class TestBundleEngineSimple {
 
+    @Test
     public void testGetCoordJob1() {
         BundleEngine be = new BundleEngine();
         try {
@@ -42,6 +46,7 @@ public class TestBundleEngineSimple extends TestCase {
         }
     }
 
+    @Test
     public void testGetCoordJob4() {
         BundleEngine be = new BundleEngine();
         try {
@@ -53,6 +58,7 @@ public class TestBundleEngineSimple extends TestCase {
         }
     }
 
+    @Test
     public void testGetJob1() {
         BundleEngine be = new BundleEngine();
         try {
@@ -64,6 +70,7 @@ public class TestBundleEngineSimple extends TestCase {
         }
     }
 
+    @Test
     public void testGetJob3() {
         BundleEngine be = new BundleEngine();
         try {
@@ -76,6 +83,7 @@ public class TestBundleEngineSimple extends TestCase {
     }
 
     @SuppressWarnings("deprecation")
+    @Test
     public void testReRun2() {
         BundleEngine be = new BundleEngine();
         try {
@@ -88,6 +96,7 @@ public class TestBundleEngineSimple extends TestCase {
         }
     }
 
+    @Test
     public void testGetJobForExternalId() throws BundleEngineException {
         BundleEngine be = new BundleEngine();
         String job = be.getJobIdForExternalId("externalFoo");
@@ -98,6 +107,7 @@ public class TestBundleEngineSimple extends TestCase {
      * Test negative cases of the filter parsing by
      * {@link BundleEngine#parseFilter(String)}.
      */
+    @Test
     public void testParseFilterNegative() {
         BundleEngine be = new BundleEngine();
         // no eq sign in token:
@@ -138,6 +148,7 @@ public class TestBundleEngineSimple extends TestCase {
      * Test negative cases of method
      * {@link BundleEngine#parseBulkFilter(String)}
      */
+    @Test
     public void testParseBulkFilterNegative() {
         // incorrect key=value pair syntax:
         try {
diff --git a/core/src/test/java/org/apache/oozie/TestBundleJobBean.java b/core/src/test/java/org/apache/oozie/TestBundleJobBean.java
index 06e0e68..7a8b475 100644
--- a/core/src/test/java/org/apache/oozie/TestBundleJobBean.java
+++ b/core/src/test/java/org/apache/oozie/TestBundleJobBean.java
@@ -27,10 +27,12 @@ import java.util.Date;
 
 import org.apache.oozie.client.BundleJob.Timeunit;
 import org.apache.oozie.client.Job.Status;
-import org.apache.oozie.test.XTestCase;
 import org.apache.oozie.util.DateUtils;
+import org.junit.Test;
 
-public class TestBundleJobBean extends XTestCase {
+import static org.junit.Assert.assertEquals;
+
+public class TestBundleJobBean {
 
     private static final Date ct = new Date(1L);
     private static final Date et = new Date(2L);
@@ -72,6 +74,7 @@ public class TestBundleJobBean extends XTestCase {
     /**
      * Test {@link BundleJobBean} get- and set- methods.
      */
+    @Test
     public void testSetGet() {
         final BundleJobBean bean = new BundleJobBean();
         set(bean);
@@ -119,6 +122,7 @@ public class TestBundleJobBean extends XTestCase {
     /**
      * Test {@link BundleJobBean} serialization and deserialization.
      */
+    @Test
     public void testSerialization() throws IOException {
         final BundleJobBean bean = new BundleJobBean();
 
diff --git a/core/src/test/java/org/apache/oozie/TestCoordinatorJobBean.java b/core/src/test/java/org/apache/oozie/TestCoordinatorJobBean.java
index b811fac..96cad62 100644
--- a/core/src/test/java/org/apache/oozie/TestCoordinatorJobBean.java
+++ b/core/src/test/java/org/apache/oozie/TestCoordinatorJobBean.java
@@ -30,10 +30,12 @@ import java.util.List;
 import org.apache.oozie.client.CoordinatorJob.Execution;
 import org.apache.oozie.client.CoordinatorJob.Timeunit;
 import org.apache.oozie.client.Job.Status;
-import org.apache.oozie.test.XTestCase;
 import org.apache.oozie.util.DateUtils;
+import org.junit.Test;
 
-public class TestCoordinatorJobBean extends XTestCase {
+import static org.junit.Assert.assertEquals;
+
+public class TestCoordinatorJobBean {
 
     private static final Date ct = new Date(1L);
     private static final Date et = new Date(2L);
@@ -91,6 +93,7 @@ public class TestCoordinatorJobBean extends XTestCase {
     /**
      * Test {@link CoordinatorJobBean} get- and set- methods.
      */
+    @Test
     public void testSetGet() {
         final CoordinatorJobBean bean = new CoordinatorJobBean();
         set(bean);
@@ -161,6 +164,7 @@ public class TestCoordinatorJobBean extends XTestCase {
     /**
      * Test {@link CoordinatorJobBean} serialization and deserialization.
      */
+    @Test
     public void testSerialization() throws IOException {
         final CoordinatorJobBean bean = new CoordinatorJobBean();
 
diff --git a/core/src/test/java/org/apache/oozie/TestErrorCode.java b/core/src/test/java/org/apache/oozie/TestErrorCode.java
index c5493f8..bcc0b0f 100644
--- a/core/src/test/java/org/apache/oozie/TestErrorCode.java
+++ b/core/src/test/java/org/apache/oozie/TestErrorCode.java
@@ -18,19 +18,21 @@
 
 package org.apache.oozie;
 
-import org.apache.oozie.test.XTestCase;
+import org.junit.Test;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static org.junit.Assert.assertFalse;
 
-public class TestErrorCode extends XTestCase {
+public class TestErrorCode {
 
     // MessageFormat requires that single quotes are escaped by another single quote; otherwise, it (a) doesn't render the single
     // quote and (b) doesn't parse the {#} tokens after the single quote.  For example, foo("{0} don't have {1}", "I", "a problem")
     // would render as "I dont have {1}".  This test checks that we don't accidently do this.  It should be
     // foo("{0} don''t have {1}", "I", "a problem"), which would result in "I dont have a problem".
-    public void testEscapedSingleQuotes() throws Exception {
+    @Test
+    public void testEscapedSingleQuotes() {
         Pattern singleQuotePattern = Pattern.compile("^'[^']|[^']'[^']|[^']'$");
         for (ErrorCode ec : ErrorCode.values()) {
             String tmpl = ec.getTemplate();
diff --git a/core/src/test/java/org/apache/oozie/TestSLAEventBean.java b/core/src/test/java/org/apache/oozie/TestSLAEventBean.java
index de942de..7a27118 100644
--- a/core/src/test/java/org/apache/oozie/TestSLAEventBean.java
+++ b/core/src/test/java/org/apache/oozie/TestSLAEventBean.java
@@ -20,13 +20,16 @@ package org.apache.oozie;
 
 import java.util.Date;
 
-import org.apache.oozie.test.XTestCase;
 import org.apache.oozie.util.DateUtils;
 import org.apache.oozie.util.XmlUtils;
 import org.jdom.Element;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 @Deprecated
-public class TestSLAEventBean extends XTestCase {
+public class TestSLAEventBean {
 
     private static final Date ee = new Date(1L);
     private static final Date es = new Date(2L);
@@ -59,6 +62,7 @@ public class TestSLAEventBean extends XTestCase {
         bean.setUser("u");
     }
 
+    @Test
     public void testSetGet() {
         final SLAEventBean bean = new SLAEventBean();
 
@@ -95,6 +99,7 @@ public class TestSLAEventBean extends XTestCase {
         assertEquals(DateUtils.convertDateToTimestamp(es), bean.getExpectedStartTS());
     }
 
+    @Test
     public void testToXmlStatusEvent() {
         final SLAEventBean bean = new SLAEventBean();
         set(bean);
@@ -106,6 +111,7 @@ public class TestSLAEventBean extends XTestCase {
                 + "    <app-name>an</app-name>\r\n" + "  </status>\r\n" + "</event>", actualXml);
     }
 
+    @Test
     public void testToXmlRegistrationEvent() {
         final SLAEventBean bean = new SLAEventBean();
         set(bean);
diff --git a/core/src/test/java/org/apache/oozie/TestWorkflowBean.java b/core/src/test/java/org/apache/oozie/TestWorkflowBean.java
index b68f0f7..aebb91f 100644
--- a/core/src/test/java/org/apache/oozie/TestWorkflowBean.java
+++ b/core/src/test/java/org/apache/oozie/TestWorkflowBean.java
@@ -18,15 +18,11 @@
 
 package org.apache.oozie;
 
-import org.apache.oozie.service.LiteWorkflowAppService;
-import org.apache.oozie.test.XTestCase;
-import org.apache.oozie.workflow.WorkflowInstance;
 import org.apache.oozie.workflow.WorkflowApp;
 import org.apache.oozie.workflow.WorkflowException;
-import org.apache.oozie.workflow.lite.LiteWorkflowApp;
 import org.apache.oozie.workflow.lite.LiteWorkflowInstance;
-import org.apache.oozie.WorkflowJobBean;
 import org.apache.hadoop.conf.Configuration;
+import org.junit.Test;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -34,7 +30,9 @@ import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.util.Map;
 
-public class TestWorkflowBean extends XTestCase {
+import static org.junit.Assert.assertEquals;
+
+public class TestWorkflowBean {
 
     //private static class MyWorkflowInstance implements WorkflowInstance {
     private static class MyWorkflowInstance extends LiteWorkflowInstance {
@@ -108,6 +106,7 @@ public class TestWorkflowBean extends XTestCase {
         }
     }
 
+    @Test
     public void testWorkflow() {
         WorkflowJobBean workflow = new WorkflowJobBean();
         workflow.setLogToken("logToken");
@@ -118,6 +117,7 @@ public class TestWorkflowBean extends XTestCase {
         assertEquals("proto", workflow.getProtoActionConf());
     }
 
+    @Test
     public void testEmptyWriteRead() throws Exception {
         WorkflowJobBean workflow = new WorkflowJobBean();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -130,8 +130,4 @@ public class TestWorkflowBean extends XTestCase {
 
     }
 
-    public void testFullWriteRead() throws Exception {
-        //TODO
-    }
-
 }
diff --git a/core/src/test/java/org/apache/oozie/action/hadoop/TestCredentials.java b/core/src/test/java/org/apache/oozie/action/hadoop/TestCredentials.java
index d3a145d..7601628 100644
--- a/core/src/test/java/org/apache/oozie/action/hadoop/TestCredentials.java
+++ b/core/src/test/java/org/apache/oozie/action/hadoop/TestCredentials.java
@@ -25,8 +25,12 @@ import org.apache.oozie.action.hadoop.CredentialsProperties;
  * Test Credentials
  *
  */
-public class TestCredentials extends ActionExecutorTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 
+public class TestCredentials {
+
+    @Test
     public void testHbaseCredentials() {
         CredentialsProperties prop = new CredentialsProperties("dummyName", "dummyType");
         prop.getProperties().put("hbase.zookeeper.quorum", "dummyHost");
diff --git a/core/src/test/java/org/apache/oozie/client/TestWorkflowClientException.java b/core/src/test/java/org/apache/oozie/client/TestWorkflowClientException.java
index 895c26a..55dcf9a 100644
--- a/core/src/test/java/org/apache/oozie/client/TestWorkflowClientException.java
+++ b/core/src/test/java/org/apache/oozie/client/TestWorkflowClientException.java
@@ -18,10 +18,17 @@
 
 package org.apache.oozie.client;
 
-import org.apache.oozie.test.XTestCase;
 
-public class TestWorkflowClientException extends XTestCase {
 
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertNotNull;
+
+public class TestWorkflowClientException {
+
+    @Test
     public void testErrorCodeMessage() {
         OozieClientException ex = new OozieClientException("errorCode", "message");
         assertEquals("errorCode", ex.getErrorCode());
@@ -30,6 +37,7 @@ public class TestWorkflowClientException extends XTestCase {
         assertTrue(ex.toString().contains("errorCode") && ex.toString().contains("message"));
     }
 
+    @Test
     public void testErrorCodeCause() {
         OozieClientException ex = new OozieClientException("errorCode", new Exception("message"));
         assertEquals("errorCode", ex.getErrorCode());
@@ -38,6 +46,7 @@ public class TestWorkflowClientException extends XTestCase {
         assertTrue(ex.toString().contains("errorCode") && ex.toString().contains("message"));
     }
 
+    @Test
     public void testErrorCodeMessageCause() {
         OozieClientException ex = new OozieClientException("errorCode", "message", new Exception());
         assertEquals("errorCode", ex.getErrorCode());
diff --git a/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorAction.java b/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorAction.java
index 5efb8cd..e846c56 100644
--- a/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorAction.java
+++ b/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorAction.java
@@ -18,12 +18,15 @@
 
 package org.apache.oozie.client.rest;
 
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.CoordinatorActionBean;
 import org.apache.oozie.client.CoordinatorAction;
 
-public class TestJsonCoordinatorAction extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestJsonCoordinatorAction {
 
     static String CREATE_TIME = "Sat, 05 Sep 2009 00:00:00 GMT";
     static String LAST_MODIFIED_TIME = "Sat, 05 Sep 2009 00:00:00 GMT";
@@ -47,6 +50,7 @@ public class TestJsonCoordinatorAction extends TestCase {
         return app;
     }
 
+    @Test
     public void testProperties() {
         CoordinatorActionBean app = createAppAction();
         assertEquals("a", app.getJobId());
diff --git a/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorJob.java b/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorJob.java
index 0698339..976f8aa 100644
--- a/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorJob.java
+++ b/core/src/test/java/org/apache/oozie/client/rest/TestJsonCoordinatorJob.java
@@ -21,9 +21,12 @@ package org.apache.oozie.client.rest;
 import org.apache.oozie.CoordinatorJobBean;
 import org.apache.oozie.client.CoordinatorJob;
 
-import junit.framework.TestCase;
 
-public class TestJsonCoordinatorJob extends TestCase {
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestJsonCoordinatorJob {
 
     static String LAST_ACTION_TIME = "Wed, 02 Sep 2009 00:00:00 GMT";
     static String NEXT_MATERIALIZED_TIME = "Thu, 03 Sep 2009 00:00:00 GMT";
@@ -54,6 +57,7 @@ public class TestJsonCoordinatorJob extends TestCase {
         return app;
     }
 
+    @Test
     public void testProperties() {
         CoordinatorJobBean app = createApplication();
         assertEquals("a", app.getAppPath());
diff --git a/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowAction.java b/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowAction.java
index b2a4fba..ee4506f 100644
--- a/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowAction.java
+++ b/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowAction.java
@@ -19,12 +19,14 @@
 package org.apache.oozie.client.rest;
 
 import junit.framework.Assert;
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.WorkflowActionBean;
 import org.apache.oozie.client.WorkflowAction;
 
-public class TestJsonWorkflowAction extends TestCase {
+import org.junit.Test;
+
+public class TestJsonWorkflowAction {
     static String START_TIME = "Thu, 01 Jan 2009 00:00:00 GMT";
     static String END_TIME = "Fri, 02 Jan 2009 00:00:00 GMT";
 
@@ -50,6 +52,7 @@ public class TestJsonWorkflowAction extends TestCase {
         return action;
     }
 
+    @Test
     public void testProperties() {
         WorkflowAction action = createNode();
         Assert.assertEquals("a", action.getId());
diff --git a/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowJob.java b/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowJob.java
index 7f71a99..53cb0e1 100644
--- a/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowJob.java
+++ b/core/src/test/java/org/apache/oozie/client/rest/TestJsonWorkflowJob.java
@@ -18,14 +18,17 @@
 
 package org.apache.oozie.client.rest;
 
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.WorkflowActionBean;
 import org.apache.oozie.WorkflowJobBean;
 import org.apache.oozie.client.WorkflowJob;
 import java.util.Arrays;
 
-public class TestJsonWorkflowJob extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestJsonWorkflowJob {
 
     static String CREATED_TIME = "Thu, 01 Jan 2009 00:00:00 GMT";
     static String START_TIME = "Fri, 02 Jan 2009 00:00:00 GMT";
@@ -48,6 +51,7 @@ public class TestJsonWorkflowJob extends TestCase {
         return wf;
     }
 
+    @Test
     public void testProperties() {
         WorkflowJobBean wf = createWorkflow();
         assertEquals("a", wf.getAppPath());
diff --git a/core/src/test/java/org/apache/oozie/coord/input/logic/TestInputLogicParser.java b/core/src/test/java/org/apache/oozie/coord/input/logic/TestInputLogicParser.java
index 622e57f..e2ad1b5 100644
--- a/core/src/test/java/org/apache/oozie/coord/input/logic/TestInputLogicParser.java
+++ b/core/src/test/java/org/apache/oozie/coord/input/logic/TestInputLogicParser.java
@@ -19,15 +19,19 @@
 package org.apache.oozie.coord.input.logic;
 
 
-import junit.framework.TestCase;
+
 
 import org.apache.oozie.coord.input.logic.InputLogicParser;
 import org.apache.oozie.util.XmlUtils;
 import org.jdom.Element;
 import org.jdom.JDOMException;
 
-public class TestInputLogicParser extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestInputLogicParser {
 
+    @Test
     public void testAndOr() throws JDOMException {
         //@formatter:off
         String xml =
@@ -52,6 +56,7 @@ public class TestInputLogicParser extends TestCase {
 
     }
 
+    @Test
     public void testAnd() throws JDOMException {
         //@formatter:off
         String xml =
@@ -69,6 +74,7 @@ public class TestInputLogicParser extends TestCase {
 
     }
 
+    @Test
     public void testOr() throws JDOMException {
         //@formatter:off
         String xml =
@@ -86,6 +92,7 @@ public class TestInputLogicParser extends TestCase {
 
     }
 
+    @Test
     public void testOrWithMin() throws JDOMException {
         //@formatter:off
         String xml = "<input-logic>" + "<or>" + "<data-in dataset=\"A\" min=\"3\"/> " + "<data-in dataset=\"B\"/>" + "</or>"
@@ -97,6 +104,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testOrWithMinAtOr() throws JDOMException {
         //@formatter:off
         String xml =
@@ -114,6 +122,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testWithName() throws JDOMException {
         //@formatter:off
         String xml =
@@ -131,6 +140,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parseWithName(root, "test"));
     }
 
+    @Test
     public void testCombine() throws JDOMException {
         //@formatter:off
         String xml =
@@ -148,6 +158,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parseWithName(root, "test"));
     }
 
+    @Test
     public void testWithNameNested() throws JDOMException {
         //@formatter:off
         String xml =
@@ -172,6 +183,7 @@ public class TestInputLogicParser extends TestCase {
 
     }
 
+    @Test
     public void testDepth2() throws JDOMException {
         //@formatter:off
      String xml =
@@ -204,6 +216,7 @@ public class TestInputLogicParser extends TestCase {
 
     }
 
+    @Test
     public void testDepth2WithCombine() throws JDOMException {
         //@formatter:off
         String xml =
@@ -233,6 +246,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testAndCombine() throws JDOMException {
         //@formatter:off
         String xml =
@@ -256,6 +270,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testComplex1() throws JDOMException {
         //@formatter:off
         String xml=
@@ -286,6 +301,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testAllAnd() throws JDOMException {
         //@formatter:off
         String xml=
@@ -308,6 +324,7 @@ public class TestInputLogicParser extends TestCase {
                 inputLogicParser.parse(root));
     }
 
+    @Test
     public void testDataIn() throws JDOMException {
         //@formatter:off
         String xml=
@@ -320,6 +337,7 @@ public class TestInputLogicParser extends TestCase {
         assertEquals("dependencyBuilder.input(\"A\").build()", inputLogicParser.parse(root));
     }
 
+    @Test
     public void testMinWait() throws JDOMException {
         //@formatter:off
         String xml =
@@ -340,6 +358,7 @@ public class TestInputLogicParser extends TestCase {
                 + "&& dependencyBuilder.input(\"B\").min(3).inputWait(10).build())", inputLogicParser.parse(root));
     }
 
+    @Test
     public void testOrAndDataIn() throws JDOMException {
         //@formatter:off
         String xml =
diff --git a/core/src/test/java/org/apache/oozie/service/TestActionConfFileType.java b/core/src/test/java/org/apache/oozie/service/TestActionConfFileType.java
index c1dbe6f..a323f14 100644
--- a/core/src/test/java/org/apache/oozie/service/TestActionConfFileType.java
+++ b/core/src/test/java/org/apache/oozie/service/TestActionConfFileType.java
@@ -18,20 +18,28 @@
 
 package org.apache.oozie.service;
 
-import org.apache.oozie.test.XTestCase;
 
-public class TestActionConfFileType extends XTestCase {
+
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+public class TestActionConfFileType {
 
     private static final String XML_FILE = "a.xml";
     private static final String PROPERTIES_FILE = "b.properties";
     private static final String JSON_FILE = "c.json";
 
+    @Test
     public void testIsSupportedFileType() {
         assertTrue(ActionConfFileType.isSupportedFileType(XML_FILE));
         assertTrue(ActionConfFileType.isSupportedFileType(PROPERTIES_FILE));
         assertFalse(ActionConfFileType.isSupportedFileType(JSON_FILE));
     }
 
+    @Test
     public void testGetFileType() {
         assertEquals(ActionConfFileType.XML, ActionConfFileType.getFileType(XML_FILE));
         assertEquals(ActionConfFileType.PROPERTIES, ActionConfFileType.getFileType(PROPERTIES_FILE));
@@ -45,6 +53,7 @@ public class TestActionConfFileType extends XTestCase {
         }
     }
 
+    @Test
     public void testGetExtension() {
         assertEquals(".xml", ActionConfFileType.XML.getExtension());
         assertEquals(".properties", ActionConfFileType.PROPERTIES.getExtension());
diff --git a/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java b/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
index 18b22a9..7805ddf 100644
--- a/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
+++ b/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
@@ -29,12 +29,15 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 
 import junit.framework.Assert;
-import junit.framework.TestCase;
+
 import org.apache.hadoop.util.Shell;
 import org.mockito.Mockito;
 
-public class TestHostnameFilter extends TestCase {
+import org.junit.Test;
+
+public class TestHostnameFilter {
 
+    @Test
     public void testHostname() throws Exception {
         ServletRequest request = Mockito.mock(ServletRequest.class);
         Mockito.when(request.getRemoteAddr()).thenReturn("localhost");
@@ -61,6 +64,7 @@ public class TestHostnameFilter extends TestCase {
         filter.destroy();
     }
 
+    @Test
   public void testMissingHostname() throws Exception {
     ServletRequest request = Mockito.mock(ServletRequest.class);
     Mockito.when(request.getRemoteAddr()).thenReturn(null);
diff --git a/core/src/test/java/org/apache/oozie/test/TestEmbeddedServletContainer.java b/core/src/test/java/org/apache/oozie/test/TestEmbeddedServletContainer.java
index b594659..0cf2aa6 100644
--- a/core/src/test/java/org/apache/oozie/test/TestEmbeddedServletContainer.java
+++ b/core/src/test/java/org/apache/oozie/test/TestEmbeddedServletContainer.java
@@ -27,8 +27,13 @@ import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
-public class TestEmbeddedServletContainer extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
 
+public class TestEmbeddedServletContainer {
+
+    @Test
     public void testEmbeddedServletContainer() throws Exception {
         EmbeddedServletContainer container = new EmbeddedServletContainer("blah");
         container.addServletEndpoint("/ping/*", PingServlet.class);
@@ -45,6 +50,7 @@ public class TestEmbeddedServletContainer extends XTestCase {
         }
     }
 
+    @Test
     public void testMultipleParallelStarts() throws Exception {
         final List<EmbeddedServletContainer> containers = new ArrayList<>();
         PingServlet.FILTER_INIT = false;
diff --git a/core/src/test/java/org/apache/oozie/util/TestBlockingWritesExitValueProcess.java b/core/src/test/java/org/apache/oozie/util/TestBlockingWritesExitValueProcess.java
index fa0fa78..0be789c 100644
--- a/core/src/test/java/org/apache/oozie/util/TestBlockingWritesExitValueProcess.java
+++ b/core/src/test/java/org/apache/oozie/util/TestBlockingWritesExitValueProcess.java
@@ -24,7 +24,11 @@ import org.junit.rules.ExpectedException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-public class TestBlockingWritesExitValueProcess extends DrainerTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+public class TestBlockingWritesExitValueProcess {
     private static final String TEST_STRING = "test string";
     @Rule
     public final ExpectedException expectedException = ExpectedException.none();
diff --git a/core/src/test/java/org/apache/oozie/util/TestELConstantsFunctions.java b/core/src/test/java/org/apache/oozie/util/TestELConstantsFunctions.java
index 61af313..811281a 100644
--- a/core/src/test/java/org/apache/oozie/util/TestELConstantsFunctions.java
+++ b/core/src/test/java/org/apache/oozie/util/TestELConstantsFunctions.java
@@ -18,7 +18,7 @@
 
 package org.apache.oozie.util;
 
-import org.apache.oozie.test.XTestCase;
+
 import org.jdom.Element;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;
@@ -30,13 +30,19 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.TimeZone;
 
-public class TestELConstantsFunctions extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class TestELConstantsFunctions {
 
+    @Test
     public void testTrim() {
         assertEquals("", ELConstantsFunctions.trim(null));
         assertEquals("a", ELConstantsFunctions.trim(" a "));
     }
 
+    @Test
     public void testConcat() {
         assertEquals("a", ELConstantsFunctions.concat("a", null));
         assertEquals("b", ELConstantsFunctions.concat(null, "b"));
@@ -44,6 +50,7 @@ public class TestELConstantsFunctions extends XTestCase {
         assertEquals("", ELConstantsFunctions.concat(null, null));
     }
 
+    @Test
     public void testReplaceAll() {
         assertEquals("aefefd", ELConstantsFunctions.replaceAll("abcbcd", "bc", "ef"));
         assertEquals("d1 d2 d3", ELConstantsFunctions.replaceAll("d1,d2,d3", ",", " "));
@@ -54,6 +61,7 @@ public class TestELConstantsFunctions extends XTestCase {
         assertEquals("acd", ELConstantsFunctions.replaceAll("abcbcd", "bcb", null));
     }
 
+    @Test
     public void testAppendAll() {
         assertEquals("/a/b/ADD,/c/b/ADD,/c/d/ADD", ELConstantsFunctions.appendAll("/a/b/,/c/b/,/c/d/", "ADD", ","));
         assertEquals("/a/b/ADD", ELConstantsFunctions.appendAll("/a/b/", "ADD", ","));
@@ -67,6 +75,7 @@ public class TestELConstantsFunctions extends XTestCase {
         assertEquals("/a/b/ADD,/c/b/ADD,/c/d/ADD", ELConstantsFunctions.appendAll("/a/b/,/c/b/,/c/d/", "ADD", ","));
     }
 
+    @Test
     public void testTimestamp() throws Exception {
         String s = ELConstantsFunctions.timestamp();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
@@ -74,11 +83,13 @@ public class TestELConstantsFunctions extends XTestCase {
         assertNotNull(sdf.parse(s));
     }
 
+    @Test
     public void testUrlEncode() {
         assertEquals("+", ELConstantsFunctions.urlEncode(" "));
         assertEquals("%25", ELConstantsFunctions.urlEncode("%"));
     }
 
+    @Test
     public void testToJsonStr() throws Exception {
         Map<String, String> map = new HashMap<String, String>();
         map.put("a", "A");
@@ -90,6 +101,7 @@ public class TestELConstantsFunctions extends XTestCase {
         assertEquals(map, map2);
     }
 
+    @Test
     public void testToPropertiesStr() throws Exception {
         Map<String, String> map = new HashMap<String, String>();
         map.put("a", "A");
@@ -100,6 +112,7 @@ public class TestELConstantsFunctions extends XTestCase {
         assertEquals(map, map2);
     }
 
+    @Test
     public void testToConfigurationStr() throws Exception {
         Map<String, String> map = new HashMap<String, String>();
         map.put("a", "A");
diff --git a/core/src/test/java/org/apache/oozie/util/TestELEvaluator.java b/core/src/test/java/org/apache/oozie/util/TestELEvaluator.java
index 260ca1d..eab00fd 100644
--- a/core/src/test/java/org/apache/oozie/util/TestELEvaluator.java
+++ b/core/src/test/java/org/apache/oozie/util/TestELEvaluator.java
@@ -18,14 +18,19 @@
 
 package org.apache.oozie.util;
 
-import junit.framework.TestCase;
+
 
 import javax.el.ELException;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 
-public class TestELEvaluator extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+public class TestELEvaluator {
 
     public static String functionA() {
         assertEquals("A", ELEvaluator.getCurrent().getVariable("a"));
@@ -68,6 +73,7 @@ public class TestELEvaluator extends TestCase {
         }
     }
 
+    @Test
     public void testContextVars() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         assertNull(support.getVariable("a"));
@@ -89,6 +95,7 @@ public class TestELEvaluator extends TestCase {
     }
 
 
+    @Test
     public void testContextFunctions() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         support.addFunction("a", "a", functionA);
@@ -112,6 +119,7 @@ public class TestELEvaluator extends TestCase {
         assertEquals(functionA, support.resolveFunction("a", "a"));
     }
 
+    @Test
     public void testVars() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         support.setVariable("a", "A");
@@ -134,6 +142,7 @@ public class TestELEvaluator extends TestCase {
         }
     }
 
+    @Test
     public void testFunctions() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         support.addFunction("a", "a", functionA);
@@ -141,6 +150,7 @@ public class TestELEvaluator extends TestCase {
         assertEquals(functionA, evaluator.getContext().resolveFunction("a", "a"));
     }
 
+    @Test
     public void testEval() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         support.setVariable("a", "A");
@@ -149,6 +159,7 @@ public class TestELEvaluator extends TestCase {
         assertEquals("Aa", evaluator.evaluate("${a}${a:a()}", String.class));
     }
 
+    @Test
     public void testCurrent() throws Exception {
         ELEvaluator.Context support = new ELEvaluator.Context();
         support.setVariable("a", "A");
@@ -159,6 +170,7 @@ public class TestELEvaluator extends TestCase {
         assertNull(ELEvaluator.getCurrent());
     }
 
+    @Test
     public void testFunctionELEvaluationError() throws Exception {
         try {
             ELEvaluator.Context support = new ELEvaluator.Context();
diff --git a/core/src/test/java/org/apache/oozie/util/TestParamChecker.java b/core/src/test/java/org/apache/oozie/util/TestParamChecker.java
index 9d709b5..c94dd9e 100644
--- a/core/src/test/java/org/apache/oozie/util/TestParamChecker.java
+++ b/core/src/test/java/org/apache/oozie/util/TestParamChecker.java
@@ -18,13 +18,20 @@
 
 package org.apache.oozie.util;
 
-import org.apache.oozie.test.XTestCase;
+
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
-public class TestParamChecker extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+public class TestParamChecker {
 
+    @Test
     public void testNotNullElements() {
         ParamChecker.notEmptyElements(new ArrayList<String>(), "name");
         ParamChecker.notEmptyElements(Arrays.asList("a"), "name");
@@ -44,6 +51,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testNotEmpty() {
         ParamChecker.notEmpty("value", "name");
         try {
@@ -62,6 +70,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testNotEmptyElements() {
         ParamChecker.notEmptyElements(new ArrayList<String>(), "name");
         ParamChecker.notEmptyElements(Arrays.asList("a"), "name");
@@ -81,6 +90,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testValidToken() {
         ParamChecker.validateActionName("azAZ09_-");
         try {
@@ -106,6 +116,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testValidIdentifier() {
         assertTrue(ParamChecker.isValidIdentifier("a"));
         assertTrue(ParamChecker.isValidIdentifier("a1"));
@@ -115,6 +126,7 @@ public class TestParamChecker extends XTestCase {
         assertFalse(ParamChecker.isValidIdentifier("1"));
     }
 
+    @Test
     public void testCheckGTZero() {
         assertEquals(120, ParamChecker.checkGTZero(120, "test"));
         try {
@@ -131,6 +143,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testCheckGEZero() {
         assertEquals(120, ParamChecker.checkGEZero(120, "test"));
         assertEquals(0, ParamChecker.checkGEZero(0, "test"));
@@ -142,6 +155,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testCheckInteger() {
         assertEquals(120, ParamChecker.checkInteger("120", "test"));
         assertEquals(-12, ParamChecker.checkInteger("-12", "test"));
@@ -159,6 +173,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testCheckUTC() {
         ParamChecker.checkDateOozieTZ("2009-02-01T01:00Z", "test");
         try {
@@ -175,6 +190,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testCheckTimeZone() {
         ParamChecker.checkTimeZone("UTC", "test");
         try {
@@ -192,6 +208,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testIsMember() {
         String[] members = {"LIFO", "FIFO", "ONLYLAST"};
         ParamChecker.isMember("FIFO", members, "test");
@@ -204,6 +221,7 @@ public class TestParamChecker extends XTestCase {
 
     }
 
+    @Test
     public void testCheckFrequency() {
         ParamChecker.checkFrequency("10");
 
@@ -228,6 +246,7 @@ public class TestParamChecker extends XTestCase {
         }
     }
 
+    @Test
     public void testValidateActionName() {
         String actionName = "actionName";
         ParamChecker.validateActionName(actionName);
diff --git a/core/src/test/java/org/apache/oozie/util/TestParameterVerifier.java b/core/src/test/java/org/apache/oozie/util/TestParameterVerifier.java
index 9cc08ed..39edfbc 100644
--- a/core/src/test/java/org/apache/oozie/util/TestParameterVerifier.java
+++ b/core/src/test/java/org/apache/oozie/util/TestParameterVerifier.java
@@ -20,10 +20,17 @@ package org.apache.oozie.util;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.oozie.ErrorCode;
-import org.apache.oozie.test.XTestCase;
 
-public class TestParameterVerifier extends XTestCase {
 
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+public class TestParameterVerifier {
+
+    @Test
     public void testVerifyParametersNull() throws Exception {
         try {
             ParameterVerifier.verifyParameters(null, XmlUtils.parseXml("<root xmlns=\"uri:oozie:workflow:0.4\"></root>"));
@@ -45,6 +52,7 @@ public class TestParameterVerifier extends XTestCase {
         }
     }
 
+    @Test
     public void testVerifyParametersEmpty() throws Exception {
         Configuration conf = new Configuration(false);
         conf.set("A", "a");
@@ -59,6 +67,7 @@ public class TestParameterVerifier extends XTestCase {
         assertEquals("a", conf.get("A"));
     }
 
+    @Test
     public void testVerifyParametersMissing() throws Exception {
         Configuration conf = new Configuration(false);
 
@@ -104,6 +113,7 @@ public class TestParameterVerifier extends XTestCase {
         }
     }
 
+    @Test
     public void testVerifyParametersDefined() throws Exception {
         Configuration conf = new Configuration(false);
         conf.set("hello", "planet");
@@ -123,6 +133,7 @@ public class TestParameterVerifier extends XTestCase {
         assertEquals("planet", conf.get("hello"));
     }
 
+    @Test
     public void testVerifyParametersEmptyName() throws Exception {
         Configuration conf = new Configuration(false);
 
@@ -148,6 +159,7 @@ public class TestParameterVerifier extends XTestCase {
         }
     }
 
+    @Test
     public void testSupportsParameters() throws Exception {
         assertFalse(ParameterVerifier.supportsParameters("uri:oozie:workflow:0.3"));
         assertTrue(ParameterVerifier.supportsParameters("uri:oozie:workflow:0.4"));
diff --git a/core/src/test/java/org/apache/oozie/util/TestPriorityDelayQueue.java b/core/src/test/java/org/apache/oozie/util/TestPriorityDelayQueue.java
index 8c5a491..3af1c08 100644
--- a/core/src/test/java/org/apache/oozie/util/TestPriorityDelayQueue.java
+++ b/core/src/test/java/org/apache/oozie/util/TestPriorityDelayQueue.java
@@ -18,7 +18,7 @@
 
 package org.apache.oozie.util;
 
-import junit.framework.TestCase;
+
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -29,7 +29,15 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.oozie.util.PriorityDelayQueue.QueueElement;
 
-public class TestPriorityDelayQueue extends TestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+public class TestPriorityDelayQueue {
 
     public static class DPriorityDelayQueue<E> extends PriorityDelayQueue<E> {
 
@@ -44,6 +52,7 @@ public class TestPriorityDelayQueue extends TestCase {
 
     }
 
+    @Test
     public void testQueueElement() throws Exception {
         Object obj = new Object();
 
@@ -93,6 +102,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertTrue(e1.compareTo(e2) < 0);
     }
 
+    @Test
     public void testQueueConstructor() throws Exception {
         try {
             new PriorityDelayQueue<Integer>(0, 1000, TimeUnit.MILLISECONDS, -1);
@@ -123,6 +133,7 @@ public class TestPriorityDelayQueue extends TestCase {
         }
     }
 
+    @Test
     public void testBoundUnboundQueueSize() {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(1, 1000, TimeUnit.MILLISECONDS, -1);
         assertEquals(1, q.getPriorities());
@@ -149,6 +160,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertEquals(1, q.size());
     }
 
+    @Test
     public void testPoll() throws Exception {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(3, 500, TimeUnit.MILLISECONDS, -1);
 
@@ -240,6 +252,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertEquals(0, q.size());
     }
 
+    @Test
     public void testPeek() throws Exception {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(3, 500, TimeUnit.MILLISECONDS, -1);
 
@@ -290,6 +303,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertEquals(0, q.size());
     }
 
+    @Test
     public void testAntiStarvation() throws Exception {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(3, 500, TimeUnit.MILLISECONDS, -1);
         q.offer(new TestQueueElement<Integer>(1));
@@ -303,6 +317,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertEquals(1, q.sizes()[2]);
     }
 
+    @Test
     public void testConcurrency() throws Exception {
         final int threads = 5;
         final AtomicInteger counter = new AtomicInteger(threads);
@@ -343,6 +358,7 @@ public class TestPriorityDelayQueue extends TestCase {
         }
     }
 
+    @Test
     public void testIterator() throws Exception {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(3, 500, TimeUnit.MILLISECONDS, -1);
 
@@ -365,6 +381,7 @@ public class TestPriorityDelayQueue extends TestCase {
         assertEquals(4, q.size());
     }
 
+    @Test
     public void testClear() {
         PriorityDelayQueue<Integer> q = new PriorityDelayQueue<Integer>(3, 500, TimeUnit.MILLISECONDS, -1);
         q.offer(new TestQueueElement<Integer>(1, 1, 10, TimeUnit.MILLISECONDS));
diff --git a/core/src/test/java/org/apache/oozie/util/db/TestSLADbOperations.java b/core/src/test/java/org/apache/oozie/util/db/TestSLADbOperations.java
index 37dee73..295aa82 100644
--- a/core/src/test/java/org/apache/oozie/util/db/TestSLADbOperations.java
+++ b/core/src/test/java/org/apache/oozie/util/db/TestSLADbOperations.java
@@ -21,14 +21,18 @@ package org.apache.oozie.util.db;
 import java.util.Date;
 import org.apache.oozie.SLAEventBean;
 import org.apache.oozie.client.SLAEvent;
-import org.apache.oozie.test.XTestCase;
+
 import org.apache.oozie.util.DateUtils;
 import org.apache.oozie.util.XmlUtils;
 import org.jdom.Element;
 
-public class TestSLADbOperations extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestSLADbOperations {
 
     @SuppressWarnings("deprecation")
+    @Test
     public void testCreateSlaRegistrationEventMinReqFields() throws Exception {
         Date nomDate = DateUtils.parseDateOozieTZ("2014-01-01T01:01Z");
         String slaXML = " <sla:info xmlns:sla='uri:oozie:sla:0.2'>"
diff --git a/core/src/test/java/org/apache/oozie/util/db/TestSLADbXOperations.java b/core/src/test/java/org/apache/oozie/util/db/TestSLADbXOperations.java
index 94218be..2876958 100644
--- a/core/src/test/java/org/apache/oozie/util/db/TestSLADbXOperations.java
+++ b/core/src/test/java/org/apache/oozie/util/db/TestSLADbXOperations.java
@@ -21,14 +21,18 @@ package org.apache.oozie.util.db;
 import java.util.Date;
 import org.apache.oozie.SLAEventBean;
 import org.apache.oozie.client.SLAEvent;
-import org.apache.oozie.test.XTestCase;
+
 import org.apache.oozie.util.DateUtils;
 import org.apache.oozie.util.XmlUtils;
 import org.jdom.Element;
 
-public class TestSLADbXOperations extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestSLADbXOperations {
 
     @SuppressWarnings("deprecation")
+    @Test
     public void testCreateSlaRegistrationEventMinReqFields() throws Exception {
         Date nomDate = DateUtils.parseDateOozieTZ("2014-01-01T01:01Z");
         String slaXML = " <sla:info xmlns:sla='uri:oozie:sla:0.2'>"
diff --git a/core/src/test/java/org/apache/oozie/util/db/TestSchema.java b/core/src/test/java/org/apache/oozie/util/db/TestSchema.java
index 33bbc71..623158f 100644
--- a/core/src/test/java/org/apache/oozie/util/db/TestSchema.java
+++ b/core/src/test/java/org/apache/oozie/util/db/TestSchema.java
@@ -31,13 +31,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.oozie.test.XTestCase;
+
 import org.apache.oozie.util.db.Schema.Column;
 import org.apache.oozie.util.db.Schema.DBType;
 import org.apache.oozie.util.db.Schema.Index;
 import org.apache.oozie.util.db.Schema.Table;
 
-public class TestSchema extends XTestCase {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestSchema {
 
     public static Map<Table, List<Column>> TABLE_COLUMNS = new HashMap<Table, List<Column>>();
     private static final String DB_NAME = "testdb";
@@ -189,6 +192,7 @@ public class TestSchema extends XTestCase {
         }
     }
 
+    @Test
     public void testGenerateCreateScript() throws SQLException {
         Connection conn = getDirectConnection();
         prepareDB(conn);
diff --git a/release-log.txt b/release-log.txt
index aceb29a..fb1cc8e 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.2.0 release (trunk - unreleased)
 
+OOZIE-3476 Migrate classes without setup/tearDown to JUnit4 (asalamon74 via kmarton)
 OOZIE-3522 Migrate from Guava's Joiner (asalamon74 via kmarton)
 OOZIE-3520 Upgrade Derby to 10.14.2.0 (nobigo via asalamon74)
 OOZIE-3513 Migrate from Preconditions.checkNotNull and ParamChecker.notNull (asalamon74 via kmarton)
diff --git a/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2Main.java b/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2Main.java
index b6ad294..e272a29 100644
--- a/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2Main.java
+++ b/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2Main.java
@@ -22,10 +22,14 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.oozie.test.XTestCase;
 
-public class TestHive2Main extends XTestCase {
 
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class TestHive2Main {
+
+    @Test
     public void testJobIDPattern() {
         List<String> lines = new ArrayList<String>();
         lines.add("Ended Job = job_001");
diff --git a/tools/src/test/java/org/apache/oozie/tools/TestBlockSizeCalculator.java b/tools/src/test/java/org/apache/oozie/tools/TestBlockSizeCalculator.java
index b4a668e..9c1e3d3 100644
--- a/tools/src/test/java/org/apache/oozie/tools/TestBlockSizeCalculator.java
+++ b/tools/src/test/java/org/apache/oozie/tools/TestBlockSizeCalculator.java
@@ -18,32 +18,36 @@
 
 package org.apache.oozie.tools;
 
-import junit.framework.TestCase;
-import org.junit.Assert;
+import org.junit.Test;
 
-public class TestBlockSizeCalculator extends TestCase{
+import static org.junit.Assert.assertEquals;
+
+public class TestBlockSizeCalculator {
 
     private long minBlockSize = 1048576;
     private long bytesPerChecksum = 512;
 
+    @Test
     public void testGetValidBlockSizeWhenFileLengthLowerThanMinBlockSize() {
         long fileLength = 615100;
         long validBlockSize = OozieSharelibCLI.BlockSizeCalculator.getValidBlockSize(fileLength, minBlockSize, bytesPerChecksum);
-        Assert.assertEquals("The block size should be equal to the defined min block size", minBlockSize, validBlockSize);
+        assertEquals("The block size should be equal to the defined min block size", minBlockSize, validBlockSize);
     }
 
+    @Test
     public void testGetValidBlockSizeWhenBytesPerChecksumDoesNotDivideFileLength() {
         long fileLength = 1048577;
         long expectedBlockSize = (fileLength / bytesPerChecksum + 1) * bytesPerChecksum;
         long validBlockSize = OozieSharelibCLI.BlockSizeCalculator.getValidBlockSize(fileLength, minBlockSize, bytesPerChecksum);
-        Assert.assertEquals("The block size should be the first greater value than the file size, dividable by bytes per checksum",
+        assertEquals("The block size should be the first greater value than the file size, dividable by bytes per checksum",
                 expectedBlockSize, validBlockSize);
     }
 
+    @Test
     public void testGetValidBlockSizeWhenBytesPerChecksumDivideFileLength() {
         long fileLength = 1049088;
         long validBlockSize = OozieSharelibCLI.BlockSizeCalculator.getValidBlockSize(fileLength, minBlockSize, bytesPerChecksum);
-        Assert.assertEquals("The block size should be equal with the file length", fileLength, validBlockSize);
+        assertEquals("The block size should be equal with the file length", fileLength, validBlockSize);
     }
 
 }