falcon-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rostafiyc...@apache.org
Subject [2/8] incubator-falcon git commit: FALCON-698 Fix checkstyle bugs in test files in falcon-regression. Contributed by Ruslan Ostafiychuk and Raghav Kumar Gautam
Date Fri, 28 Nov 2014 13:10:46 GMT
http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/FeedAclTest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/FeedAclTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/FeedAclTest.java
index 46019fa..8996923 100644
--- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/FeedAclTest.java
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/FeedAclTest.java
@@ -7,14 +7,13 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.falcon.regression.security;
@@ -27,8 +26,7 @@ import org.apache.falcon.regression.core.interfaces.IEntityManagerHelper;
 import org.apache.falcon.regression.core.util.AssertUtil;
 import org.apache.falcon.regression.core.util.BundleUtil;
 import org.apache.falcon.regression.core.util.HadoopUtil;
-import org.apache.falcon.regression.core.util.KerberosHelper;
-import org.apache.falcon.regression.core.util.MathUtil;
+import org.apache.falcon.regression.core.util.MatrixUtil;
 import org.apache.falcon.regression.core.util.OSUtil;
 import org.apache.falcon.regression.testHelper.BaseTestClass;
 import org.apache.hadoop.fs.FileSystem;
@@ -44,6 +42,9 @@ import org.testng.annotations.Test;
 import java.io.IOException;
 import java.lang.reflect.Method;
 
+/**
+ * Tests ACL of feed with different operations.
+ */
 @Test(groups = "authorization")
 public class FeedAclTest extends BaseTestClass {
     private static final Logger LOGGER = Logger.getLogger(FeedAclTest.class);
@@ -75,7 +76,7 @@ public class FeedAclTest extends BaseTestClass {
     }
 
     /**
-     * Test feed read operation by different types of user
+     * Test feed read operation by different types of user.
      * @param user the user that would attempt operation
      * @param op the read operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -87,31 +88,32 @@ public class FeedAclTest extends BaseTestClass {
         bundles[0].submitClusters(prism);
         bundles[0].submitFeeds(prism);
         final boolean executeRes = op.executeAs(user, feedHelper, feedString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-            " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserReadOpsPermissions")
     public Object[][] generateUserReadOpsPermissions() {
         final EntityOp[] falconReadOps = {EntityOp.status, EntityOp.dependency,
-            EntityOp.listing, EntityOp.definition};
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME, MerlinConstants.FALCON_SUPER_USER2_NAME,
-                MerlinConstants.USER2_NAME},
+            EntityOp.listing, EntityOp.definition, };
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME, },
             falconReadOps,
             new Boolean[]{true}
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
             new String[]{MerlinConstants.DIFFERENT_USER_NAME},
             falconReadOps,
             new Boolean[]{false}
         );
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
-     * Test edit operation on submitted feed by different users
+     * Test edit operation on submitted feed by different users.
      * @param user the user that would attempt operation
      * @param op the edit operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -128,32 +130,33 @@ public class FeedAclTest extends BaseTestClass {
             feedString = feedMerlin.toString();
         }
         final boolean executeRes = op.executeAs(user, feedHelper, feedString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-            " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserSubmittedEditOpsPermission")
     public Object[][] generateUserSubmittedEditOpsPermission() {
         final EntityOp[] falconEditOps = {EntityOp.delete, EntityOp.update};
 
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME, MerlinConstants.FALCON_SUPER_USER2_NAME,
-                MerlinConstants.USER2_NAME},
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME, },
             falconEditOps,
             new Boolean[]{true}
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
             new String[]{MerlinConstants.DIFFERENT_USER_NAME},
             falconEditOps,
             new Boolean[]{false}
         );
 
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
-     * Test edit operation on scheduled feed by different users
+     * Test edit operation on scheduled feed by different users.
      * @param user the user that would attempt operation
      * @param op the edit operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -164,7 +167,7 @@ public class FeedAclTest extends BaseTestClass {
         throws Exception {
         bundles[0].submitClusters(prism);
         bundles[0].submitAndScheduleAllFeeds();
-        if(op == EntityOp.resume) {
+        if (op == EntityOp.resume) {
             feedHelper.suspend(feedString);
         } else if (op == EntityOp.update) {
             FeedMerlin feedMerlin = new FeedMerlin(feedString);
@@ -172,28 +175,29 @@ public class FeedAclTest extends BaseTestClass {
             feedString = feedMerlin.toString();
         }
         final boolean executeRes = op.executeAs(user, feedHelper, feedString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-            " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserScheduledEditOpsPermission")
     public Object[][] generateUserScheduledEditOpsPermission() {
 
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME, MerlinConstants.FALCON_SUPER_USER2_NAME,
-                MerlinConstants.USER2_NAME},
-            new EntityOp[]{EntityOp.delete, EntityOp.update, EntityOp.suspend, EntityOp.resume},
-            new Boolean[]{true}
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME, },
+            new EntityOp[]{EntityOp.delete, EntityOp.update, EntityOp.suspend, EntityOp.resume, },
+            new Boolean[]{true, }
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.DIFFERENT_USER_NAME},
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.DIFFERENT_USER_NAME, },
             new EntityOp[]{EntityOp.delete, EntityOp.update,
-                EntityOp.suspend, EntityOp.resume},
-            new Boolean[]{false}
+                EntityOp.suspend, EntityOp.resume, },
+            new Boolean[]{false, }
         );
 
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
@@ -207,28 +211,28 @@ public class FeedAclTest extends BaseTestClass {
         AssertUtil.assertSucceeded(feedHelper.submitAndSchedule(oldFeed));
         final FeedMerlin feedMerlin = new FeedMerlin(oldFeed);
         feedMerlin.setACL(MerlinConstants.DIFFERENT_USER_NAME,
-                MerlinConstants.DIFFERENT_USER_GROUP, "*");
+            MerlinConstants.DIFFERENT_USER_GROUP, "*");
         final String newFeed = feedMerlin.toString();
         AssertUtil.assertSucceeded(feedHelper.update(oldFeed, newFeed));
         //check that current user can't access the feed
         for(EntityOp op : new EntityOp[]{EntityOp.status, EntityOp.dependency, EntityOp.listing,
-                EntityOp.definition}) {
+            EntityOp.definition, }) {
             final boolean executeRes =
-                    op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, feedHelper, newFeed);
+                op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, feedHelper, newFeed);
             Assert.assertFalse(executeRes, "Unexpected result: user "
-                    + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
+                + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
         }
         //check that different user can access the feed
         for(EntityOp op : new EntityOp[]{EntityOp.status, EntityOp.dependency, EntityOp.listing,
-                EntityOp.definition}) {
+            EntityOp.definition, }) {
             final boolean executeRes =
-                    op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, feedHelper, newFeed);
+                op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, feedHelper, newFeed);
             Assert.assertTrue(executeRes, "Unexpected result: user "
-                    + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
+                + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
         }
         //check modification permissions
         AssertUtil.assertSucceeded(feedHelper.update(newFeed, oldFeed,
-                MerlinConstants.DIFFERENT_USER_NAME));
+            MerlinConstants.DIFFERENT_USER_NAME));
     }
 
     @AfterMethod(alwaysRun = true)

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/ProcessAclTest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/ProcessAclTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/ProcessAclTest.java
index 2a623e6..7d1213e 100644
--- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/ProcessAclTest.java
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/security/ProcessAclTest.java
@@ -7,14 +7,13 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.falcon.regression.security;
@@ -27,8 +26,7 @@ import org.apache.falcon.regression.core.interfaces.IEntityManagerHelper;
 import org.apache.falcon.regression.core.util.AssertUtil;
 import org.apache.falcon.regression.core.util.BundleUtil;
 import org.apache.falcon.regression.core.util.HadoopUtil;
-import org.apache.falcon.regression.core.util.KerberosHelper;
-import org.apache.falcon.regression.core.util.MathUtil;
+import org.apache.falcon.regression.core.util.MatrixUtil;
 import org.apache.falcon.regression.core.util.OSUtil;
 import org.apache.falcon.regression.testHelper.BaseTestClass;
 import org.apache.hadoop.fs.FileSystem;
@@ -47,6 +45,9 @@ import java.io.IOException;
 import java.lang.reflect.Method;
 import java.util.Date;
 
+/**
+ * Tests ACL of process with different operations.
+ */
 @Test(groups = "authorization")
 public class ProcessAclTest extends BaseTestClass {
     private static final Logger LOGGER = Logger.getLogger(ProcessAclTest.class);
@@ -57,7 +58,7 @@ public class ProcessAclTest extends BaseTestClass {
     private String aggregateWorkflowDir = baseTestDir + "/aggregator";
     private String feedInputPath = baseTestDir + "/input" + MINUTE_DATE_PATTERN;
     private final IEntityManagerHelper processHelper = prism.getProcessHelper();
-    String processString;
+    private String processString;
 
     @BeforeClass(alwaysRun = true)
     public void uploadWorkflow() throws Exception {
@@ -82,7 +83,7 @@ public class ProcessAclTest extends BaseTestClass {
     }
 
     /**
-     * Test process read operation by different types of user
+     * Test process read operation by different types of user.
      * @param user the user that would attempt operation
      * @param op the read operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -93,33 +94,33 @@ public class ProcessAclTest extends BaseTestClass {
         throws Exception {
         bundles[0].submitProcess(true);
         final boolean executeRes = op.executeAs(user, processHelper, processString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-                " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserReadOpsPermissions")
     public Object[][] generateUserReadOpsPermissions() {
         final EntityOp[] falconReadOps = {EntityOp.status, EntityOp.dependency,
-            EntityOp.listing, EntityOp.definition};
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-                new String[]{MerlinConstants.FALCON_SUPER_USER_NAME,
-                        MerlinConstants.FALCON_SUPER_USER2_NAME,
-                        MerlinConstants.USER2_NAME},
+            EntityOp.listing, EntityOp.definition, };
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME, },
             falconReadOps,
             new Boolean[]{true}
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
             new String[]{MerlinConstants.DIFFERENT_USER_NAME},
             falconReadOps,
             new Boolean[]{false}
         );
 
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
-     * Test edit operation on submitted process by different users
+     * Test edit operation on submitted process by different users.
      * @param user the user that would attempt operation
      * @param op the edit operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -135,32 +136,35 @@ public class ProcessAclTest extends BaseTestClass {
             processString = processMerlin.toString();
         }
         final boolean executeRes = op.executeAs(user, processHelper, processString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-            " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserSubmittedEditOpsPermission")
     public Object[][] generateUserSubmittedEditOpsPermission() {
         final EntityOp[] falconEditOps = {EntityOp.delete, EntityOp.update};
 
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME, MerlinConstants.FALCON_SUPER_USER2_NAME,
-                MerlinConstants.USER2_NAME},
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{
+                MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME,
+            },
             falconEditOps,
             new Boolean[]{true}
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
-                new String[]{MerlinConstants.DIFFERENT_USER_NAME},
-                falconEditOps,
-                new Boolean[]{false}
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
+            new String[]{MerlinConstants.DIFFERENT_USER_NAME},
+            falconEditOps,
+            new Boolean[]{false}
         );
 
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
-     * Test edit operation on scheduled process by different users
+     * Test edit operation on scheduled process by different users.
      * @param user the user that would attempt operation
      * @param op the edit operation that would be performed
      * @param isAllowed is operation expected to go through
@@ -170,7 +174,7 @@ public class ProcessAclTest extends BaseTestClass {
     public void othersEditScheduledProcess(final String user, final EntityOp op, boolean isAllowed)
         throws Exception {
         bundles[0].submitFeedsScheduleProcess();
-        if(op == EntityOp.resume) {
+        if (op == EntityOp.resume) {
             processHelper.suspend(processString);
         } else if (op == EntityOp.update) {
             ProcessMerlin processMerlin = new ProcessMerlin(processString);
@@ -178,28 +182,33 @@ public class ProcessAclTest extends BaseTestClass {
             processString = processMerlin.toString();
         }
         final boolean executeRes = op.executeAs(user, processHelper, processString);
-        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user +
-            " performing: " + op);
+        Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
+            + " performing: " + op);
     }
 
     @DataProvider(name = "generateUserScheduledEditOpsPermission")
     public Object[][] generateUserScheduledEditOpsPermission() {
 
-        final Object[][] allowedCombinations = MathUtil.crossProduct(
-            new String[]{MerlinConstants.FALCON_SUPER_USER_NAME, MerlinConstants.FALCON_SUPER_USER2_NAME,
-                MerlinConstants.USER2_NAME},
+        final Object[][] allowedCombinations = MatrixUtil.crossProduct(
+            new String[]{
+                MerlinConstants.FALCON_SUPER_USER_NAME,
+                MerlinConstants.FALCON_SUPER_USER2_NAME,
+                MerlinConstants.USER2_NAME,
+            },
             new EntityOp[]{EntityOp.delete, EntityOp.update, EntityOp.suspend, EntityOp.resume},
             new Boolean[]{true}
         );
 
-        final Object[][] notAllowedCombinations = MathUtil.crossProduct(
+        final Object[][] notAllowedCombinations = MatrixUtil.crossProduct(
             new String[]{MerlinConstants.DIFFERENT_USER_NAME},
-            new EntityOp[]{EntityOp.delete, EntityOp.update,
-                EntityOp.suspend, EntityOp.resume},
+            new EntityOp[]{
+                EntityOp.delete, EntityOp.update,
+                EntityOp.suspend, EntityOp.resume,
+            },
             new Boolean[]{false}
         );
 
-        return MathUtil.append(allowedCombinations, notAllowedCombinations);
+        return MatrixUtil.append(allowedCombinations, notAllowedCombinations);
     }
 
     /**
@@ -213,28 +222,28 @@ public class ProcessAclTest extends BaseTestClass {
         AssertUtil.assertSucceeded(prism.getProcessHelper().submitAndSchedule(oldProcess));
         final ProcessMerlin processMerlin = new ProcessMerlin(oldProcess);
         processMerlin.setACL(MerlinConstants.DIFFERENT_USER_NAME,
-                MerlinConstants.DIFFERENT_USER_GROUP, "*");
+            MerlinConstants.DIFFERENT_USER_GROUP, "*");
         final String newProcess = processMerlin.toString();
         AssertUtil.assertSucceeded(processHelper.update(oldProcess, newProcess));
         //check that current user can't access the feed
         for(EntityOp op : new EntityOp[]{EntityOp.status, EntityOp.dependency, EntityOp.listing,
-                EntityOp.definition}) {
+            EntityOp.definition, }) {
             final boolean executeRes =
-                    op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, processHelper, newProcess);
+                op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, processHelper, newProcess);
             Assert.assertFalse(executeRes, "Unexpected result: user "
-                    + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
+                + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
         }
         //check that different user can access the feed
         for(EntityOp op : new EntityOp[]{EntityOp.status, EntityOp.dependency, EntityOp.listing,
-                EntityOp.definition}) {
+            EntityOp.definition, }) {
             final boolean executeRes =
-                    op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, processHelper, newProcess);
+                op.executeAs(MerlinConstants.DIFFERENT_USER_NAME, processHelper, newProcess);
             Assert.assertTrue(executeRes, "Unexpected result: user "
-                    + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
+                + MerlinConstants.DIFFERENT_USER_GROUP + " was not able to perform: " + op);
         }
         //check modification permissions
         AssertUtil.assertSucceeded(processHelper.update(newProcess, oldProcess,
-                MerlinConstants.DIFFERENT_USER_NAME));
+            MerlinConstants.DIFFERENT_USER_NAME));
     }
 
     @AfterMethod(alwaysRun = true)

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/LineageGraphTest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/LineageGraphTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/LineageGraphTest.java
index 5cbe321..74743cc 100644
--- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/LineageGraphTest.java
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/LineageGraphTest.java
@@ -55,22 +55,25 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * Tests for Lineage UI graph.
+ */
 @Test(groups = "lineage-ui")
 public class LineageGraphTest extends BaseUITestClass {
 
     private ColoHelper cluster = servers.get(0);
     private String baseTestDir = baseHDFSDir + "/LineageGraphTest";
     private String aggregateWorkflowDir = baseTestDir + "/aggregator";
-    private static final Logger logger = Logger.getLogger(LineageGraphTest.class);
-    String feedInputPath = baseTestDir + "/input" + MINUTE_DATE_PATTERN;
+    private static final Logger LOGGER = Logger.getLogger(LineageGraphTest.class);
+    private String feedInputPath = baseTestDir + "/input" + MINUTE_DATE_PATTERN;
     private FileSystem clusterFS = serverFS.get(0);
     private OozieClient clusterOC = serverOC.get(0);
     private String processName = null;
     private String inputFeedName = null;
     private String outputFeedName = null;
-    int inputEnd = 4;
+    private int inputEnd = 4;
     private List<Vertex> piVertices;
-    LineageHelper lineageHelper = new LineageHelper(prism);
+    private LineageHelper lineageHelper = new LineageHelper(prism);
 
     /**
      * Adjusts bundle and schedules it. Provides process with data, waits till some instances got
@@ -78,8 +81,8 @@ public class LineageGraphTest extends BaseUITestClass {
      */
     @BeforeClass
     public void setUp()
-            throws IOException, JAXBException, URISyntaxException, AuthenticationException,
-            OozieClientException, InterruptedException {
+        throws IOException, JAXBException, URISyntaxException, AuthenticationException,
+        OozieClientException, InterruptedException {
         uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE);
         bundles[0] = BundleUtil.readELBundle();
         bundles[0] = new Bundle(bundles[0], cluster);
@@ -87,7 +90,7 @@ public class LineageGraphTest extends BaseUITestClass {
         bundles[0].setProcessWorkflow(aggregateWorkflowDir);
         String startTime = TimeUtil.getTimeWrtSystemTime(0);
         String endTime = TimeUtil.addMinsToTime(startTime, 5);
-        logger.info("Start time: " + startTime + "\tEnd time: " + endTime);
+        LOGGER.info("Start time: " + startTime + "\tEnd time: " + endTime);
 
         /**prepare process definition*/
         bundles[0].setProcessValidity(startTime, endTime);
@@ -98,13 +101,13 @@ public class LineageGraphTest extends BaseUITestClass {
         bundles[0].setProcessInput("now(0,0)", String.format("now(0,%d)", inputEnd - 1));
 
         /**provide necessary data for first 3 instances to run*/
-        logger.info("Creating necessary data...");
+        LOGGER.info("Creating necessary data...");
         String prefix = bundles[0].getFeedDataPathPrefix();
         HadoopUtil.deleteDirIfExists(prefix.substring(1), clusterFS);
         List<String> dataDates = TimeUtil.getMinuteDatesOnEitherSide(
             TimeUtil.addMinsToTime(startTime, -2), endTime, 0);
         HadoopUtil.flattenAndPutDataInFolder(clusterFS, OSUtil.NORMAL_INPUT, prefix, dataDates);
-        logger.info("Process data: " + Util.prettyPrintXml(bundles[0].getProcessData()));
+        LOGGER.info("Process data: " + Util.prettyPrintXml(bundles[0].getProcessData()));
         bundles[0].submitBundle(prism);
 
         processName = bundles[0].getProcessName();
@@ -158,16 +161,16 @@ public class LineageGraphTest extends BaseUITestClass {
             Assert.assertEquals(processInstancesUI.get(0), nominalTime);
             /* input feed validations */
             List<String> inpInstancesUI = map.get(inputFeedName);
-            logger.info("InputFeed instances on lineage UI : " + inpInstancesUI);
-            logger.info("InputFeed instances from API : " + inpInstancesAPI);
+            LOGGER.info("InputFeed instances on lineage UI : " + inpInstancesUI);
+            LOGGER.info("InputFeed instances from API : " + inpInstancesAPI);
             Assert.assertEquals(inpInstancesUI.size(), inpInstancesAPI.size());
             for (Vertex inpInstanceAPI : inpInstancesAPI) {
                 Assert.assertTrue(inpInstancesUI.contains(inpInstanceAPI.getNominalTime()));
             }
             /* output feed validation */
             List<String> outInstancesUI = map.get(outputFeedName);
-            logger.info("Expected outputFeed instances : " + outInstancesUI);
-            logger.info("Actual instance : " + outInstancesAPI);
+            LOGGER.info("Expected outputFeed instances : " + outInstancesUI);
+            LOGGER.info("Actual instance : " + outInstancesAPI);
             Assert.assertEquals(outInstancesUI.size(), outInstancesAPI.size());
             for (Vertex outInstanceAPI : outInstancesAPI) {
                 Assert.assertTrue(outInstancesUI.contains(outInstanceAPI.getNominalTime()));
@@ -177,7 +180,7 @@ public class LineageGraphTest extends BaseUITestClass {
     }
 
     /**
-     * Clicks on each vertex and check the content of info panel
+     * Clicks on each vertex and check the content of info panel.
      */
     @Test
     public void testVerticesInfo()
@@ -207,8 +210,8 @@ public class LineageGraphTest extends BaseUITestClass {
                         Assert.assertEquals(info.get("Runs on"), clusterName,
                             String.format(message, "cluster", processName));
                     }
-                    Assert.assertEquals(info.get("Owned by"), System.getProperty("user" +
-                        ".name"), "Entity should be owned by current system user.");
+                    Assert.assertEquals(info.get("Owned by"), System.getProperty("user"
+                        + ".name"), "Entity should be owned by current system user.");
                 }
             }
             processPage.refresh();
@@ -257,9 +260,6 @@ public class LineageGraphTest extends BaseUITestClass {
         lineageHelper = new LineageHelper(prism);
         VerticesResult processResult = lineageHelper.getVerticesByName(processName);
         Vertex processVertex = processResult.getResults().get(0);
-        List<Vertex> piVertices =
-            lineageHelper.getVerticesByDirection(processVertex.getId(),
-                Direction.inComingVertices).filterByType(Vertex.VERTEX_TYPE.PROCESS_INSTANCE);
         for (Vertex piVertex : piVertices) {
             String nominalTime = piVertex.getNominalTime();
             processPage.openLineage(nominalTime);
@@ -324,18 +324,20 @@ public class LineageGraphTest extends BaseUITestClass {
                     isEdgePresent =
                         isPointNearTheVertex(startPointAPI, vertexRadius, startPointUI, 5)
                             && isPointNearTheVertex(endPointAPI, vertexRadius, endPointUI, 5);
-                    if (isEdgePresent) break;
+                    if (isEdgePresent) {
+                        break;
+                    }
                 }
                 Assert.assertTrue(
-                    isEdgePresent, String.format("Edge %s-->%s isn't present on lineage or " +
-                    "painted incorrectly.", startVertexAPI.getName(), endVertexAPI.getName()));
+                    isEdgePresent, String.format("Edge %s-->%s isn't present on lineage or "
+                        + "painted incorrectly.", startVertexAPI.getName(), endVertexAPI.getName()));
             }
             processPage.refresh();
         }
     }
 
     /**
-     * Test which opens and closes Lineage info and checks content of it
+     * Test which opens and closes Lineage info and checks content of it.
      */
     @Test
     public void testLineageOpenClose() {
@@ -354,7 +356,7 @@ public class LineageGraphTest extends BaseUITestClass {
     }
 
     /**
-     * Evaluates if endpoint is in permissible region near the vertex
+     * Evaluates if endpoint is in permissible region near the vertex.
      *
      * @param center    coordinates of vertex center
      * @param radius    radius of vertex
@@ -362,8 +364,8 @@ public class LineageGraphTest extends BaseUITestClass {
      */
     private boolean isPointNearTheVertex(Point center, int radius, Point point, int deviation) {
         double distance = Math.sqrt(
-            Math.pow(point.getX() - center.getX(), 2) +
-                Math.pow(point.getY() - center.getY(), 2));
+            Math.pow(point.getX() - center.getX(), 2)
+                + Math.pow(point.getY() - center.getY(), 2));
         return distance <= radius + deviation;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
index 9282d2c..2fa302e 100644
--- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
@@ -62,24 +62,27 @@ import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
+/**
+ * UI tests with submitted/scheduled process.
+ */
 @Test(groups = "lineage-ui")
 public class ProcessUITest extends BaseUITestClass {
 
     private ColoHelper cluster = servers.get(0);
     private String baseTestDir = baseHDFSDir + "/TestProcessUI";
     private String aggregateWorkflowDir = baseTestDir + "/aggregator";
-    private static final Logger logger = Logger.getLogger(ProcessUITest.class);
-    String feedInputPath = baseTestDir + "/input";
-    final String feedOutputPath = baseTestDir + "/output";
+    private static final Logger LOGGER = Logger.getLogger(ProcessUITest.class);
+    private final String feedInputPath = baseTestDir + "/input";
+    private final String feedOutputPath = baseTestDir + "/output";
     private FileSystem clusterFS = serverFS.get(0);
     private OozieClient clusterOC = serverOC.get(0);
     private SoftAssert softAssert = new SoftAssert();
 
     @BeforeMethod
     public void setUp()
-            throws IOException, JAXBException, NoSuchMethodException, IllegalAccessException,
-            InvocationTargetException, URISyntaxException, AuthenticationException,
-            InterruptedException {
+        throws IOException, JAXBException, NoSuchMethodException, IllegalAccessException,
+        InvocationTargetException, URISyntaxException, AuthenticationException,
+        InterruptedException {
         CleanupUtil.cleanAllEntities(prism);
         uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE);
         openBrowser();
@@ -89,7 +92,7 @@ public class ProcessUITest extends BaseUITestClass {
         bundles[0].setProcessWorkflow(aggregateWorkflowDir);
         String startTime = TimeUtil.getTimeWrtSystemTime(0);
         String endTime = TimeUtil.addMinsToTime(startTime, 5);
-        logger.info("Start time: " + startTime + "\tEnd time: " + endTime);
+        LOGGER.info("Start time: " + startTime + "\tEnd time: " + endTime);
 
         //prepare process definition
         bundles[0].setProcessValidity(startTime, endTime);
@@ -110,7 +113,7 @@ public class ProcessUITest extends BaseUITestClass {
         bundles[0].setProcessData(process.toString());
 
         //provide necessary data for first 3 instances to run
-        logger.info("Creating necessary data...");
+        LOGGER.info("Creating necessary data...");
         String prefix = bundles[0].getFeedDataPathPrefix();
         HadoopUtil.deleteDirIfExists(prefix.substring(1), clusterFS);
         List<String> dataDates = TimeUtil.getMinuteDatesOnEitherSide(
@@ -129,7 +132,7 @@ public class ProcessUITest extends BaseUITestClass {
                 prefix + "_00" + k + "/", dataDates);
         }
 
-        logger.info("Process data: " + Util.prettyPrintXml(bundles[0].getProcessData()));
+        LOGGER.info("Process data: " + Util.prettyPrintXml(bundles[0].getProcessData()));
         FeedMerlin[] inputFeeds;
         FeedMerlin[] outputFeeds;
         final FeedMerlin inputMerlin = new FeedMerlin(bundles[0].getInputFeedFromBundle());
@@ -166,12 +169,12 @@ public class ProcessUITest extends BaseUITestClass {
     /**
      * Test checks that UI show expected statuses of submitted Process (SUBMITTED and RUNNING)
      * then checks instances icons to be relevant to statuses of oozie actions
-     * and checks that Lineage links are available only for SUCCEEDED instances
+     * and checks that Lineage links are available only for SUCCEEDED instances.
      */
     @Test
     public void testProcessUI()
-            throws URISyntaxException, IOException, AuthenticationException, JAXBException,
-            OozieClientException, InterruptedException {
+        throws URISyntaxException, IOException, AuthenticationException, JAXBException,
+        OozieClientException, InterruptedException {
 
         //check Process statuses via UI
         EntitiesPage page = new EntitiesPage(driver, cluster, EntityType.PROCESS);
@@ -217,7 +220,7 @@ public class ProcessUITest extends BaseUITestClass {
 
             //check that Lineage links are available only for SUCCEEDED instances
             boolean isPresent = page.isLineageLinkPresent(oozieDate);
-            if(actions.get(date) == CoordinatorAction.Status.SUCCEEDED) {
+            if (actions.get(date) == CoordinatorAction.Status.SUCCEEDED) {
                 softAssert.assertTrue(isPresent, "Lineage button should be present for instance: " + oozieDate);
             } else {
                 softAssert.assertFalse(isPresent, "Lineage button should not be present for instance: " + oozieDate);

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java
deleted file mode 100644
index 1ab0140..0000000
--- a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ivory.entity.common;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
-
-public class Configuration implements Iterable<Map.Entry<String, String>>, Cloneable {
-
-  private final Map<String, String> properties;
-
-  public Configuration() {
-    properties = new ConcurrentHashMap<String, String>();
-  }
-
-  public Configuration(Map<String, String> properties) {
-    this.properties = properties;
-  }
-
-  public void addConfiguration(Configuration config) {
-    for (Entry<String, String> entry : config) {
-      properties.put(entry.getKey(), entry.getValue());
-    }
-  }
-
-  public Configuration addAndReturnNewConfiguration(Configuration config) {
-    Map<String, String> newProperties = new ConcurrentHashMap<String, String>(properties);
-    for (Entry<String, String> entry : config) {
-      newProperties.put(entry.getKey(), entry.getValue());
-    }
-    return new Configuration(newProperties);
-  }
-
-  public String getConf(String name) {
-    return properties.get(name);
-  }
-
-  public void setConf(String name, String value) {
-    properties.put(name, value);
-  }
-
-  public void setConf(String name, String value, String defaultValue) {
-    if (value == null) {
-      properties.put(name, defaultValue);
-    } else {
-      properties.put(name, value);
-    }
-  }
-
-  @Override
-  public Iterator<Entry<String, String>> iterator() {
-    return properties.entrySet().iterator();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java.ignore
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java.ignore b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java.ignore
new file mode 100644
index 0000000..1ab0140
--- /dev/null
+++ b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/Configuration.java.ignore
@@ -0,0 +1,73 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ivory.entity.common;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class Configuration implements Iterable<Map.Entry<String, String>>, Cloneable {
+
+  private final Map<String, String> properties;
+
+  public Configuration() {
+    properties = new ConcurrentHashMap<String, String>();
+  }
+
+  public Configuration(Map<String, String> properties) {
+    this.properties = properties;
+  }
+
+  public void addConfiguration(Configuration config) {
+    for (Entry<String, String> entry : config) {
+      properties.put(entry.getKey(), entry.getValue());
+    }
+  }
+
+  public Configuration addAndReturnNewConfiguration(Configuration config) {
+    Map<String, String> newProperties = new ConcurrentHashMap<String, String>(properties);
+    for (Entry<String, String> entry : config) {
+      newProperties.put(entry.getKey(), entry.getValue());
+    }
+    return new Configuration(newProperties);
+  }
+
+  public String getConf(String name) {
+    return properties.get(name);
+  }
+
+  public void setConf(String name, String value) {
+    properties.put(name, value);
+  }
+
+  public void setConf(String name, String value, String defaultValue) {
+    if (value == null) {
+      properties.put(name, defaultValue);
+    } else {
+      properties.put(name, value);
+    }
+  }
+
+  @Override
+  public Iterator<Entry<String, String>> iterator() {
+    return properties.entrySet().iterator();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java
deleted file mode 100644
index f02ed34..0000000
--- a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ivory.entity.common;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class DateValidator {
-
-	private Pattern pattern;
-	private Matcher matcher;
-
-	private static final String DATE_PATTERN = "(2\\d\\d\\d|19\\d\\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])T([0-1][0-9]|2[0-3]):([0-5][0-9])Z";
-
-	public DateValidator() {
-		pattern = Pattern.compile(DATE_PATTERN);
-	}
-
-	/**
-	 * Validate date format with regular expression
-	 * 
-	 * @param date
-	 *            date address for validation
-	 * @return true valid date fromat, false invalid date format
-	 */
-	public boolean validate(final String date) {
-
-		matcher = pattern.matcher(date);
-
-		if (matcher.matches()) {
-
-			matcher.reset();
-
-			if (matcher.find()) {
-
-				int year = Integer.parseInt(matcher.group(1));
-				String month = matcher.group(2);
-				String day = matcher.group(3);
-
-				if (day.equals("31")
-						&& (month.equals("4") || month.equals("6")
-								|| month.equals("9") || month.equals("11")
-								|| month.equals("04") || month.equals("06") || month
-									.equals("09"))) {
-					return false; // only 1,3,5,7,8,10,12 has 31 days
-				} else if (month.equals("2") || month.equals("02")) {
-					// leap year
-					if (year % 4 == 0) {
-						if (day.equals("30") || day.equals("31")) {
-							return false;
-						} else {
-							return true;
-						}
-					} else {
-						if (day.equals("29") || day.equals("30")
-								|| day.equals("31")) {
-							return false;
-						} else {
-							return true;
-						}
-					}
-				} else {
-					return true;
-				}
-			} else {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java.ignore
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java.ignore b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java.ignore
new file mode 100644
index 0000000..f02ed34
--- /dev/null
+++ b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/DateValidator.java.ignore
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ivory.entity.common;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class DateValidator {
+
+	private Pattern pattern;
+	private Matcher matcher;
+
+	private static final String DATE_PATTERN = "(2\\d\\d\\d|19\\d\\d)-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])T([0-1][0-9]|2[0-3]):([0-5][0-9])Z";
+
+	public DateValidator() {
+		pattern = Pattern.compile(DATE_PATTERN);
+	}
+
+	/**
+	 * Validate date format with regular expression
+	 * 
+	 * @param date
+	 *            date address for validation
+	 * @return true valid date fromat, false invalid date format
+	 */
+	public boolean validate(final String date) {
+
+		matcher = pattern.matcher(date);
+
+		if (matcher.matches()) {
+
+			matcher.reset();
+
+			if (matcher.find()) {
+
+				int year = Integer.parseInt(matcher.group(1));
+				String month = matcher.group(2);
+				String day = matcher.group(3);
+
+				if (day.equals("31")
+						&& (month.equals("4") || month.equals("6")
+								|| month.equals("9") || month.equals("11")
+								|| month.equals("04") || month.equals("06") || month
+									.equals("09"))) {
+					return false; // only 1,3,5,7,8,10,12 has 31 days
+				} else if (month.equals("2") || month.equals("02")) {
+					// leap year
+					if (year % 4 == 0) {
+						if (day.equals("30") || day.equals("31")) {
+							return false;
+						} else {
+							return true;
+						}
+					} else {
+						if (day.equals("29") || day.equals("30")
+								|| day.equals("31")) {
+							return false;
+						} else {
+							return true;
+						}
+					}
+				} else {
+					return true;
+				}
+			} else {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java
deleted file mode 100644
index 67f9d4c..0000000
--- a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ivory.entity.common;
-
-import java.util.Calendar;
-
-public enum TimeUnit {
-    MINUTE(Calendar.MINUTE), HOUR(Calendar.HOUR), DAY(Calendar.DATE), MONTH(Calendar.MONTH), END_OF_DAY(Calendar.DATE), END_OF_MONTH(
-        Calendar.MONTH), NONE(-1);
-
-    private int calendarUnit;
-
-    private TimeUnit(int calendarUnit) {
-        this.calendarUnit = calendarUnit;
-    }
-
-    public int getCalendarUnit() {
-        return calendarUnit;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java.ignore
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java.ignore b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java.ignore
new file mode 100644
index 0000000..67f9d4c
--- /dev/null
+++ b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/2ndLateData/TimeUnit.java.ignore
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ivory.entity.common;
+
+import java.util.Calendar;
+
+public enum TimeUnit {
+    MINUTE(Calendar.MINUTE), HOUR(Calendar.HOUR), DAY(Calendar.DATE), MONTH(Calendar.MONTH), END_OF_DAY(Calendar.DATE), END_OF_MONTH(
+        Calendar.MONTH), NONE(-1);
+
+    private int calendarUnit;
+
+    private TimeUnit(int calendarUnit) {
+        this.calendarUnit = calendarUnit;
+    }
+
+    public int getCalendarUnit() {
+        return calendarUnit;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore
new file mode 100644
index 0000000..f992f21
--- /dev/null
+++ b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore
@@ -0,0 +1,412 @@
+///**
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *     http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing, software
+// * distributed under the License is distributed on an "AS IS" BASIS,
+// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// * See the License for the specific language governing permissions and
+// * limitations under the License.
+// */
+//
+//package org.apache.ivory.messaging;
+//
+//import org.apache.hadoop.conf.Configuration;
+//import org.apache.hadoop.fs.FileSystem;
+//import org.apache.hadoop.fs.Path;
+//import org.apache.hadoop.io.IOUtils;
+//import org.apache.log4j.Logger;
+//
+//import java.io.ByteArrayOutputStream;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.util.HashMap;
+//import java.util.Map;
+//
+///**
+// * Value Object which is stored in JMS Topic as TextMessage
+// *
+// */
+//public class EntityInstanceMessage {
+//
+//	private final Map<ARG, String> msgs = new HashMap<ARG, String>();
+//	private static final String MSG_SEPERATOR = "$";
+//	private static final int ARG_LENGTH = EntityInstanceMessage.ARG.values().length;
+//	private static final Logger LOG = Logger
+//			.getLogger(EntityInstanceMessage.class);
+//	private static final String IVORY_PROCESS_TOPIC_NAME = "IVORY.PROCESS.TOPIC";
+//
+//	/**
+//	 * Enum for arguments that are used in coordinators to pass arguments to
+//	 * parent workflow
+//	 */
+//
+//	public enum entityOperation {
+//		GENERATE, DELETE, ARCHIVE, REPLICATE, CHMOD
+//	}
+//
+//	public enum ARG {
+//		PROCESS_NAME(0, "entityName"), FEED_NAME(1, "feedNames"), FEED_INSTANCE_PATH(
+//				2, "feedInstancePaths"), WORKFLOW_ID(3, "workflowId"), RUN_ID(
+//				4, "runId"), NOMINAL_TIME(5, "nominalTime"), TIME_STAMP(6,
+//				"timeStamp"), BROKER_URL(7, "brokerUrl"), BROKER_IMPL_CLASS(8,
+//				"brokerImplClass"), ENTITY_TYPE(9, "entityType"), OPERATION(10,
+//				"operation"), LOG_FILE(11, "logFile"), TOPIC_NAME(12,
+//				"topicName"), STATUS(13, "status"), BROKER_TTL(14, "broker.ttlInMins");
+//
+//		private int argOrder;
+//		private String argName;
+//
+//		private ARG(int argOrder, String argName) {
+//			this.argOrder = argOrder;
+//			this.argName = argName;
+//		}
+//
+//		public int ORDER() {
+//			return this.argOrder;
+//		}
+//
+//		public String NAME() {
+//			return this.argName;
+//		}
+//	}
+//
+//	public String getProcessName() {
+//		return this.msgs.get(ARG.PROCESS_NAME);
+//	}
+//
+//	public void setProcessName(String processName) {
+//		this.msgs.put(ARG.PROCESS_NAME, processName);
+//	}
+//
+//	public String getTopicName() {
+//		return this.msgs.get(ARG.TOPIC_NAME);
+//	}
+//
+//	public void setTopicName(String topicName) {
+//		this.msgs.put(ARG.TOPIC_NAME, topicName);
+//	}
+//
+//	public String getFeedName() {
+//		return this.msgs.get(ARG.FEED_NAME);
+//	}
+//
+//	public void setFeedName(String feedName) {
+//		this.msgs.put(ARG.FEED_NAME, feedName);
+//	}
+//
+//	public String getFeedInstancePath() {
+//		return this.msgs.get(ARG.FEED_INSTANCE_PATH);
+//	}
+//
+//	public void setFeedInstancePath(String feedInstancePath) {
+//		this.msgs.put(ARG.FEED_INSTANCE_PATH, feedInstancePath);
+//	}
+//
+//	public String getWorkflowId() {
+//		return this.msgs.get(ARG.WORKFLOW_ID);
+//	}
+//
+//	public void setWorkflowId(String workflowId) {
+//		this.msgs.put(ARG.WORKFLOW_ID, workflowId);
+//	}
+//
+//	public String getRunId() {
+//		return this.msgs.get(ARG.RUN_ID);
+//	}
+//
+//	public void setRunId(String runId) {
+//		this.msgs.put(ARG.RUN_ID, runId);
+//	}
+//
+//	public String getNominalTime() {
+//		return this.msgs.get(ARG.NOMINAL_TIME);
+//	}
+//
+//	public void setNominalTime(String nominalTime) {
+//		this.msgs.put(ARG.NOMINAL_TIME, nominalTime);
+//	}
+//
+//	public String getTimeStamp() {
+//		return this.msgs.get(ARG.TIME_STAMP);
+//	}
+//
+//	public void setTimeStamp(String timeStamp) {
+//		this.msgs.put(ARG.TIME_STAMP, timeStamp);
+//	}
+//
+//	public String getBrokerUrl() {
+//		return this.msgs.get(ARG.BROKER_URL);
+//	}
+//
+//	public void setBrokerUrl(String brokerUrl) {
+//		this.msgs.put(ARG.BROKER_URL, brokerUrl);
+//	}
+//
+//	public String getBrokerImplClass() {
+//		return this.msgs.get(ARG.BROKER_IMPL_CLASS);
+//	}
+//
+//	public void setBrokerImplClass(String brokerImplClass) {
+//		this.msgs.put(ARG.BROKER_IMPL_CLASS, brokerImplClass);
+//	}
+//
+//	public String getEntityType() {
+//		return this.msgs.get(ARG.ENTITY_TYPE);
+//	}
+//
+//	public void setEntityType(String entityType) {
+//		this.msgs.put(ARG.ENTITY_TYPE, entityType);
+//	}
+//
+//	public String getOperation() {
+//		return this.msgs.get(ARG.OPERATION);
+//	}
+//
+//	public void setOperation(String operation) {
+//		this.msgs.put(ARG.OPERATION, operation);
+//	}
+//
+//	public String getLogFile() {
+//		return this.msgs.get(ARG.LOG_FILE);
+//	}
+//
+//	public void setLogFile(String logFile) {
+//		this.msgs.put(ARG.LOG_FILE, logFile);
+//	}
+//
+//	public String getStatus() {
+//		return this.msgs.get(ARG.STATUS);
+//	}
+//
+//	public void setStatus(String status) {
+//		this.msgs.put(ARG.STATUS, status);
+//	}
+//
+//	public String getBrokerTTL() {
+//		return this.msgs.get(ARG.BROKER_TTL);
+//	}
+//
+//	public void setBrokerTTL(String brokerTTL) {
+//		this.msgs.put(ARG.BROKER_TTL, brokerTTL);
+//	}
+//
+//	@Override
+//	public String toString() {
+//		if (getEntityType().equalsIgnoreCase("PROCESS")
+//				&& getTopicName().equals(IVORY_PROCESS_TOPIC_NAME)) {
+//			return getIvoryMessage();
+//		}
+//		if (getEntityType().equalsIgnoreCase("FEED")) {
+//			return getFeedMessage();
+//		}
+//		return getProcessMessage();
+//
+//	}
+//
+//	private String getProcessMessage() {
+//		return getProcessName() + MSG_SEPERATOR + getFeedName() + MSG_SEPERATOR
+//				+ getFeedInstancePath() + MSG_SEPERATOR + getWorkflowId()
+//				+ MSG_SEPERATOR + getRunId() + MSG_SEPERATOR + getNominalTime()
+//				+ MSG_SEPERATOR + getTimeStamp();
+//	}
+//
+//	private String getIvoryMessage() {
+//		return getProcessName() + MSG_SEPERATOR + getFeedName() + MSG_SEPERATOR
+//				+ getFeedInstancePath() + MSG_SEPERATOR + getWorkflowId()
+//				+ MSG_SEPERATOR + getRunId() + MSG_SEPERATOR + getNominalTime()
+//				+ MSG_SEPERATOR + getTimeStamp() + MSG_SEPERATOR + getStatus();
+//	}
+//
+//	private String getFeedMessage() {
+//		return getFeedName() + MSG_SEPERATOR
+//				+ getFeedInstancePath() + MSG_SEPERATOR + getOperation()
+//				+ MSG_SEPERATOR + getWorkflowId() + MSG_SEPERATOR + getRunId()
+//				+ MSG_SEPERATOR + getNominalTime() + MSG_SEPERATOR
+//				+ getTimeStamp();
+//	}
+//
+//	/**
+//	 *
+//	 * @param args
+//	 *            - String array passed from oozie action for jms messaging
+//	 * @return ProcessMessage - Value object which is stored in JMS topic
+//	 */
+//	public static EntityInstanceMessage[] argsToMessage(String[] args) {
+//
+//		assert args.length == ARG_LENGTH : "Required number of arguments: "
+//				+ ARG_LENGTH;
+//
+//		String[] feedNames = getFeedNames(args);
+//
+//		String[] feedPaths;
+//		try {
+//			feedPaths = getFeedPaths(args);
+//		} catch (IOException e) {
+//			LOG.error("Error getting instance paths: ", e);
+//			throw new RuntimeException(e);
+//		}
+//
+//		EntityInstanceMessage[] processMessages = new EntityInstanceMessage[feedPaths.length];
+//		for (int i = 0; i < feedPaths.length; i++) {
+//			EntityInstanceMessage instanceMessage = new EntityInstanceMessage();
+//			instanceMessage
+//					.setProcessName(args[EntityInstanceMessage.ARG.PROCESS_NAME
+//							.ORDER()]);
+//			if (args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()]
+//					.equalsIgnoreCase("PROCESS")) {
+//				instanceMessage.setFeedName(feedNames[i]);
+//			} else {
+//				instanceMessage
+//						.setFeedName(args[EntityInstanceMessage.ARG.FEED_NAME
+//								.ORDER()]);
+//			}
+//			instanceMessage.setFeedInstancePath(feedPaths[i]);
+//			instanceMessage
+//					.setWorkflowId(args[EntityInstanceMessage.ARG.WORKFLOW_ID
+//							.ORDER()]);
+//			instanceMessage.setRunId(args[EntityInstanceMessage.ARG.RUN_ID
+//					.ORDER()]);
+//			instanceMessage
+//					.setNominalTime(args[EntityInstanceMessage.ARG.NOMINAL_TIME
+//							.ORDER()]);
+//			instanceMessage
+//					.setTimeStamp(args[EntityInstanceMessage.ARG.TIME_STAMP
+//							.ORDER()]);
+//			instanceMessage
+//					.setBrokerUrl(args[EntityInstanceMessage.ARG.BROKER_URL
+//							.ORDER()]);
+//			instanceMessage
+//					.setBrokerImplClass(args[EntityInstanceMessage.ARG.BROKER_IMPL_CLASS
+//							.ORDER()]);
+//			instanceMessage
+//					.setEntityType(args[EntityInstanceMessage.ARG.ENTITY_TYPE
+//							.ORDER()]);
+//			instanceMessage
+//					.setOperation(args[EntityInstanceMessage.ARG.OPERATION
+//							.ORDER()]);
+//			instanceMessage.setLogFile(args[EntityInstanceMessage.ARG.LOG_FILE
+//					.ORDER()]);
+//			instanceMessage
+//					.setTopicName(args[EntityInstanceMessage.ARG.TOPIC_NAME
+//							.ORDER()]);
+//			instanceMessage.setStatus(args[EntityInstanceMessage.ARG.STATUS
+//					.ORDER()]);
+//			instanceMessage.setBrokerTTL(args[EntityInstanceMessage.ARG.BROKER_TTL
+//			           					.ORDER()]);
+//
+//			processMessages[i] = instanceMessage;
+//		}
+//		return processMessages;
+//	}
+//
+//	private static String[] getFeedNames(String[] args) {
+//		String topicName = args[ARG.TOPIC_NAME.argOrder];
+//		if (topicName.equals(IVORY_PROCESS_TOPIC_NAME)) {
+//			return new String[] { args[EntityInstanceMessage.ARG.FEED_NAME
+//					.ORDER()] };
+//		}
+//		return args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()].split(",");
+//	}
+//
+//	private static String[] getFeedPaths(String[] args) throws IOException {
+//		String entityType = args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()];
+//		String topicName = args[EntityInstanceMessage.ARG.TOPIC_NAME.ORDER()];
+//
+//		if (entityType.equalsIgnoreCase("PROCESS")
+//				&& topicName.equals(IVORY_PROCESS_TOPIC_NAME)) {
+//			LOG.debug("Returning instance paths for Ivory Topic: "
+//					+ args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]);
+//			return new String[] { args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH
+//					.ORDER()] };
+//		}
+//
+//		if (entityType.equalsIgnoreCase("PROCESS")) {
+//			LOG.debug("Returning instance paths for process: "
+//					+ args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]);
+//			return args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]
+//					.split(",");
+//		}
+//		//
+//		Path logFile = new Path(
+//				args[EntityInstanceMessage.ARG.LOG_FILE.ORDER()]);
+//		FileSystem fs = FileSystem.get(logFile.toUri(), new Configuration());
+//		ByteArrayOutputStream writer = new ByteArrayOutputStream();
+//		InputStream instance = fs.open(logFile);
+//		IOUtils.copyBytes(instance, writer, 4096, true);
+//		String[] instancePaths = writer.toString().split("=");
+//		if (instancePaths.length == 1) {
+//			LOG.debug("Returning 0 instance paths for feed ");
+//			return new String[0];
+//		} else {
+//			LOG.debug("Returning instance paths for feed " + instancePaths[1]);
+//			return instancePaths[1].split(",");
+//		}
+//
+//	}
+//
+//	/**
+//	 *
+//	 * @param instanceMessages
+//	 *            - value object which is stored in JMS topic as TextMessage
+//	 * @return - String array.
+//	 */
+//	public static String[] messageToArgs(
+//			EntityInstanceMessage[] instanceMessages) {
+//		String[] args = new String[ARG_LENGTH];
+//
+//		args[EntityInstanceMessage.ARG.PROCESS_NAME.ORDER()] = instanceMessages[0]
+//				.getProcessName();
+//		StringBuilder feedNames = new StringBuilder();
+//		StringBuilder feedPaths = new StringBuilder();
+//
+//		for (EntityInstanceMessage instanceMessage : instanceMessages) {
+//			feedNames.append(instanceMessage.getFeedName()).append(",");
+//			feedPaths.append(instanceMessage.getFeedInstancePath()).append(",");
+//		}
+//		if (instanceMessages[0].getEntityType().equalsIgnoreCase("PROCESS")) {
+//			args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()] = feedNames
+//					.toString();
+//
+//		} else {
+//			args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()] = instanceMessages[0]
+//					.getFeedName();
+//		}
+//		args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()] = feedPaths
+//				.toString();
+//		args[EntityInstanceMessage.ARG.WORKFLOW_ID.ORDER()] = instanceMessages[0]
+//				.getWorkflowId();
+//		args[EntityInstanceMessage.ARG.RUN_ID.ORDER()] = instanceMessages[0]
+//				.getRunId();
+//		args[EntityInstanceMessage.ARG.NOMINAL_TIME.ORDER()] = instanceMessages[0]
+//				.getNominalTime();
+//		args[EntityInstanceMessage.ARG.TIME_STAMP.ORDER()] = instanceMessages[0]
+//				.getTimeStamp();
+//		args[EntityInstanceMessage.ARG.BROKER_URL.ORDER()] = instanceMessages[0]
+//				.getBrokerUrl();
+//		args[EntityInstanceMessage.ARG.BROKER_IMPL_CLASS.ORDER()] = instanceMessages[0]
+//				.getBrokerImplClass();
+//		args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()] = instanceMessages[0]
+//				.getEntityType();
+//		args[EntityInstanceMessage.ARG.OPERATION.ORDER()] = instanceMessages[0]
+//				.getOperation();
+//		args[EntityInstanceMessage.ARG.LOG_FILE.ORDER()] = instanceMessages[0]
+//				.getLogFile();
+//		args[EntityInstanceMessage.ARG.TOPIC_NAME.ORDER()] = instanceMessages[0]
+//				.getTopicName();
+//		args[EntityInstanceMessage.ARG.STATUS.ORDER()] = instanceMessages[0]
+//				.getStatus();
+//		args[EntityInstanceMessage.ARG.BROKER_TTL.ORDER()] = instanceMessages[0]
+//				.getBrokerTTL();
+//
+//		return args;
+//	}
+//
+//}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore.java b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore.java
deleted file mode 100644
index f992f21..0000000
--- a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessage.java.ignore.java
+++ /dev/null
@@ -1,412 +0,0 @@
-///**
-// * Licensed to the Apache Software Foundation (ASF) under one
-// * or more contributor license agreements.  See the NOTICE file
-// * distributed with this work for additional information
-// * regarding copyright ownership.  The ASF licenses this file
-// * to you under the Apache License, Version 2.0 (the
-// * "License"); you may not use this file except in compliance
-// * with the License.  You may obtain a copy of the License at
-// *
-// *     http://www.apache.org/licenses/LICENSE-2.0
-// *
-// * Unless required by applicable law or agreed to in writing, software
-// * distributed under the License is distributed on an "AS IS" BASIS,
-// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// * See the License for the specific language governing permissions and
-// * limitations under the License.
-// */
-//
-//package org.apache.ivory.messaging;
-//
-//import org.apache.hadoop.conf.Configuration;
-//import org.apache.hadoop.fs.FileSystem;
-//import org.apache.hadoop.fs.Path;
-//import org.apache.hadoop.io.IOUtils;
-//import org.apache.log4j.Logger;
-//
-//import java.io.ByteArrayOutputStream;
-//import java.io.IOException;
-//import java.io.InputStream;
-//import java.util.HashMap;
-//import java.util.Map;
-//
-///**
-// * Value Object which is stored in JMS Topic as TextMessage
-// *
-// */
-//public class EntityInstanceMessage {
-//
-//	private final Map<ARG, String> msgs = new HashMap<ARG, String>();
-//	private static final String MSG_SEPERATOR = "$";
-//	private static final int ARG_LENGTH = EntityInstanceMessage.ARG.values().length;
-//	private static final Logger LOG = Logger
-//			.getLogger(EntityInstanceMessage.class);
-//	private static final String IVORY_PROCESS_TOPIC_NAME = "IVORY.PROCESS.TOPIC";
-//
-//	/**
-//	 * Enum for arguments that are used in coordinators to pass arguments to
-//	 * parent workflow
-//	 */
-//
-//	public enum entityOperation {
-//		GENERATE, DELETE, ARCHIVE, REPLICATE, CHMOD
-//	}
-//
-//	public enum ARG {
-//		PROCESS_NAME(0, "entityName"), FEED_NAME(1, "feedNames"), FEED_INSTANCE_PATH(
-//				2, "feedInstancePaths"), WORKFLOW_ID(3, "workflowId"), RUN_ID(
-//				4, "runId"), NOMINAL_TIME(5, "nominalTime"), TIME_STAMP(6,
-//				"timeStamp"), BROKER_URL(7, "brokerUrl"), BROKER_IMPL_CLASS(8,
-//				"brokerImplClass"), ENTITY_TYPE(9, "entityType"), OPERATION(10,
-//				"operation"), LOG_FILE(11, "logFile"), TOPIC_NAME(12,
-//				"topicName"), STATUS(13, "status"), BROKER_TTL(14, "broker.ttlInMins");
-//
-//		private int argOrder;
-//		private String argName;
-//
-//		private ARG(int argOrder, String argName) {
-//			this.argOrder = argOrder;
-//			this.argName = argName;
-//		}
-//
-//		public int ORDER() {
-//			return this.argOrder;
-//		}
-//
-//		public String NAME() {
-//			return this.argName;
-//		}
-//	}
-//
-//	public String getProcessName() {
-//		return this.msgs.get(ARG.PROCESS_NAME);
-//	}
-//
-//	public void setProcessName(String processName) {
-//		this.msgs.put(ARG.PROCESS_NAME, processName);
-//	}
-//
-//	public String getTopicName() {
-//		return this.msgs.get(ARG.TOPIC_NAME);
-//	}
-//
-//	public void setTopicName(String topicName) {
-//		this.msgs.put(ARG.TOPIC_NAME, topicName);
-//	}
-//
-//	public String getFeedName() {
-//		return this.msgs.get(ARG.FEED_NAME);
-//	}
-//
-//	public void setFeedName(String feedName) {
-//		this.msgs.put(ARG.FEED_NAME, feedName);
-//	}
-//
-//	public String getFeedInstancePath() {
-//		return this.msgs.get(ARG.FEED_INSTANCE_PATH);
-//	}
-//
-//	public void setFeedInstancePath(String feedInstancePath) {
-//		this.msgs.put(ARG.FEED_INSTANCE_PATH, feedInstancePath);
-//	}
-//
-//	public String getWorkflowId() {
-//		return this.msgs.get(ARG.WORKFLOW_ID);
-//	}
-//
-//	public void setWorkflowId(String workflowId) {
-//		this.msgs.put(ARG.WORKFLOW_ID, workflowId);
-//	}
-//
-//	public String getRunId() {
-//		return this.msgs.get(ARG.RUN_ID);
-//	}
-//
-//	public void setRunId(String runId) {
-//		this.msgs.put(ARG.RUN_ID, runId);
-//	}
-//
-//	public String getNominalTime() {
-//		return this.msgs.get(ARG.NOMINAL_TIME);
-//	}
-//
-//	public void setNominalTime(String nominalTime) {
-//		this.msgs.put(ARG.NOMINAL_TIME, nominalTime);
-//	}
-//
-//	public String getTimeStamp() {
-//		return this.msgs.get(ARG.TIME_STAMP);
-//	}
-//
-//	public void setTimeStamp(String timeStamp) {
-//		this.msgs.put(ARG.TIME_STAMP, timeStamp);
-//	}
-//
-//	public String getBrokerUrl() {
-//		return this.msgs.get(ARG.BROKER_URL);
-//	}
-//
-//	public void setBrokerUrl(String brokerUrl) {
-//		this.msgs.put(ARG.BROKER_URL, brokerUrl);
-//	}
-//
-//	public String getBrokerImplClass() {
-//		return this.msgs.get(ARG.BROKER_IMPL_CLASS);
-//	}
-//
-//	public void setBrokerImplClass(String brokerImplClass) {
-//		this.msgs.put(ARG.BROKER_IMPL_CLASS, brokerImplClass);
-//	}
-//
-//	public String getEntityType() {
-//		return this.msgs.get(ARG.ENTITY_TYPE);
-//	}
-//
-//	public void setEntityType(String entityType) {
-//		this.msgs.put(ARG.ENTITY_TYPE, entityType);
-//	}
-//
-//	public String getOperation() {
-//		return this.msgs.get(ARG.OPERATION);
-//	}
-//
-//	public void setOperation(String operation) {
-//		this.msgs.put(ARG.OPERATION, operation);
-//	}
-//
-//	public String getLogFile() {
-//		return this.msgs.get(ARG.LOG_FILE);
-//	}
-//
-//	public void setLogFile(String logFile) {
-//		this.msgs.put(ARG.LOG_FILE, logFile);
-//	}
-//
-//	public String getStatus() {
-//		return this.msgs.get(ARG.STATUS);
-//	}
-//
-//	public void setStatus(String status) {
-//		this.msgs.put(ARG.STATUS, status);
-//	}
-//
-//	public String getBrokerTTL() {
-//		return this.msgs.get(ARG.BROKER_TTL);
-//	}
-//
-//	public void setBrokerTTL(String brokerTTL) {
-//		this.msgs.put(ARG.BROKER_TTL, brokerTTL);
-//	}
-//
-//	@Override
-//	public String toString() {
-//		if (getEntityType().equalsIgnoreCase("PROCESS")
-//				&& getTopicName().equals(IVORY_PROCESS_TOPIC_NAME)) {
-//			return getIvoryMessage();
-//		}
-//		if (getEntityType().equalsIgnoreCase("FEED")) {
-//			return getFeedMessage();
-//		}
-//		return getProcessMessage();
-//
-//	}
-//
-//	private String getProcessMessage() {
-//		return getProcessName() + MSG_SEPERATOR + getFeedName() + MSG_SEPERATOR
-//				+ getFeedInstancePath() + MSG_SEPERATOR + getWorkflowId()
-//				+ MSG_SEPERATOR + getRunId() + MSG_SEPERATOR + getNominalTime()
-//				+ MSG_SEPERATOR + getTimeStamp();
-//	}
-//
-//	private String getIvoryMessage() {
-//		return getProcessName() + MSG_SEPERATOR + getFeedName() + MSG_SEPERATOR
-//				+ getFeedInstancePath() + MSG_SEPERATOR + getWorkflowId()
-//				+ MSG_SEPERATOR + getRunId() + MSG_SEPERATOR + getNominalTime()
-//				+ MSG_SEPERATOR + getTimeStamp() + MSG_SEPERATOR + getStatus();
-//	}
-//
-//	private String getFeedMessage() {
-//		return getFeedName() + MSG_SEPERATOR
-//				+ getFeedInstancePath() + MSG_SEPERATOR + getOperation()
-//				+ MSG_SEPERATOR + getWorkflowId() + MSG_SEPERATOR + getRunId()
-//				+ MSG_SEPERATOR + getNominalTime() + MSG_SEPERATOR
-//				+ getTimeStamp();
-//	}
-//
-//	/**
-//	 *
-//	 * @param args
-//	 *            - String array passed from oozie action for jms messaging
-//	 * @return ProcessMessage - Value object which is stored in JMS topic
-//	 */
-//	public static EntityInstanceMessage[] argsToMessage(String[] args) {
-//
-//		assert args.length == ARG_LENGTH : "Required number of arguments: "
-//				+ ARG_LENGTH;
-//
-//		String[] feedNames = getFeedNames(args);
-//
-//		String[] feedPaths;
-//		try {
-//			feedPaths = getFeedPaths(args);
-//		} catch (IOException e) {
-//			LOG.error("Error getting instance paths: ", e);
-//			throw new RuntimeException(e);
-//		}
-//
-//		EntityInstanceMessage[] processMessages = new EntityInstanceMessage[feedPaths.length];
-//		for (int i = 0; i < feedPaths.length; i++) {
-//			EntityInstanceMessage instanceMessage = new EntityInstanceMessage();
-//			instanceMessage
-//					.setProcessName(args[EntityInstanceMessage.ARG.PROCESS_NAME
-//							.ORDER()]);
-//			if (args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()]
-//					.equalsIgnoreCase("PROCESS")) {
-//				instanceMessage.setFeedName(feedNames[i]);
-//			} else {
-//				instanceMessage
-//						.setFeedName(args[EntityInstanceMessage.ARG.FEED_NAME
-//								.ORDER()]);
-//			}
-//			instanceMessage.setFeedInstancePath(feedPaths[i]);
-//			instanceMessage
-//					.setWorkflowId(args[EntityInstanceMessage.ARG.WORKFLOW_ID
-//							.ORDER()]);
-//			instanceMessage.setRunId(args[EntityInstanceMessage.ARG.RUN_ID
-//					.ORDER()]);
-//			instanceMessage
-//					.setNominalTime(args[EntityInstanceMessage.ARG.NOMINAL_TIME
-//							.ORDER()]);
-//			instanceMessage
-//					.setTimeStamp(args[EntityInstanceMessage.ARG.TIME_STAMP
-//							.ORDER()]);
-//			instanceMessage
-//					.setBrokerUrl(args[EntityInstanceMessage.ARG.BROKER_URL
-//							.ORDER()]);
-//			instanceMessage
-//					.setBrokerImplClass(args[EntityInstanceMessage.ARG.BROKER_IMPL_CLASS
-//							.ORDER()]);
-//			instanceMessage
-//					.setEntityType(args[EntityInstanceMessage.ARG.ENTITY_TYPE
-//							.ORDER()]);
-//			instanceMessage
-//					.setOperation(args[EntityInstanceMessage.ARG.OPERATION
-//							.ORDER()]);
-//			instanceMessage.setLogFile(args[EntityInstanceMessage.ARG.LOG_FILE
-//					.ORDER()]);
-//			instanceMessage
-//					.setTopicName(args[EntityInstanceMessage.ARG.TOPIC_NAME
-//							.ORDER()]);
-//			instanceMessage.setStatus(args[EntityInstanceMessage.ARG.STATUS
-//					.ORDER()]);
-//			instanceMessage.setBrokerTTL(args[EntityInstanceMessage.ARG.BROKER_TTL
-//			           					.ORDER()]);
-//
-//			processMessages[i] = instanceMessage;
-//		}
-//		return processMessages;
-//	}
-//
-//	private static String[] getFeedNames(String[] args) {
-//		String topicName = args[ARG.TOPIC_NAME.argOrder];
-//		if (topicName.equals(IVORY_PROCESS_TOPIC_NAME)) {
-//			return new String[] { args[EntityInstanceMessage.ARG.FEED_NAME
-//					.ORDER()] };
-//		}
-//		return args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()].split(",");
-//	}
-//
-//	private static String[] getFeedPaths(String[] args) throws IOException {
-//		String entityType = args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()];
-//		String topicName = args[EntityInstanceMessage.ARG.TOPIC_NAME.ORDER()];
-//
-//		if (entityType.equalsIgnoreCase("PROCESS")
-//				&& topicName.equals(IVORY_PROCESS_TOPIC_NAME)) {
-//			LOG.debug("Returning instance paths for Ivory Topic: "
-//					+ args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]);
-//			return new String[] { args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH
-//					.ORDER()] };
-//		}
-//
-//		if (entityType.equalsIgnoreCase("PROCESS")) {
-//			LOG.debug("Returning instance paths for process: "
-//					+ args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]);
-//			return args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()]
-//					.split(",");
-//		}
-//		//
-//		Path logFile = new Path(
-//				args[EntityInstanceMessage.ARG.LOG_FILE.ORDER()]);
-//		FileSystem fs = FileSystem.get(logFile.toUri(), new Configuration());
-//		ByteArrayOutputStream writer = new ByteArrayOutputStream();
-//		InputStream instance = fs.open(logFile);
-//		IOUtils.copyBytes(instance, writer, 4096, true);
-//		String[] instancePaths = writer.toString().split("=");
-//		if (instancePaths.length == 1) {
-//			LOG.debug("Returning 0 instance paths for feed ");
-//			return new String[0];
-//		} else {
-//			LOG.debug("Returning instance paths for feed " + instancePaths[1]);
-//			return instancePaths[1].split(",");
-//		}
-//
-//	}
-//
-//	/**
-//	 *
-//	 * @param instanceMessages
-//	 *            - value object which is stored in JMS topic as TextMessage
-//	 * @return - String array.
-//	 */
-//	public static String[] messageToArgs(
-//			EntityInstanceMessage[] instanceMessages) {
-//		String[] args = new String[ARG_LENGTH];
-//
-//		args[EntityInstanceMessage.ARG.PROCESS_NAME.ORDER()] = instanceMessages[0]
-//				.getProcessName();
-//		StringBuilder feedNames = new StringBuilder();
-//		StringBuilder feedPaths = new StringBuilder();
-//
-//		for (EntityInstanceMessage instanceMessage : instanceMessages) {
-//			feedNames.append(instanceMessage.getFeedName()).append(",");
-//			feedPaths.append(instanceMessage.getFeedInstancePath()).append(",");
-//		}
-//		if (instanceMessages[0].getEntityType().equalsIgnoreCase("PROCESS")) {
-//			args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()] = feedNames
-//					.toString();
-//
-//		} else {
-//			args[EntityInstanceMessage.ARG.FEED_NAME.ORDER()] = instanceMessages[0]
-//					.getFeedName();
-//		}
-//		args[EntityInstanceMessage.ARG.FEED_INSTANCE_PATH.ORDER()] = feedPaths
-//				.toString();
-//		args[EntityInstanceMessage.ARG.WORKFLOW_ID.ORDER()] = instanceMessages[0]
-//				.getWorkflowId();
-//		args[EntityInstanceMessage.ARG.RUN_ID.ORDER()] = instanceMessages[0]
-//				.getRunId();
-//		args[EntityInstanceMessage.ARG.NOMINAL_TIME.ORDER()] = instanceMessages[0]
-//				.getNominalTime();
-//		args[EntityInstanceMessage.ARG.TIME_STAMP.ORDER()] = instanceMessages[0]
-//				.getTimeStamp();
-//		args[EntityInstanceMessage.ARG.BROKER_URL.ORDER()] = instanceMessages[0]
-//				.getBrokerUrl();
-//		args[EntityInstanceMessage.ARG.BROKER_IMPL_CLASS.ORDER()] = instanceMessages[0]
-//				.getBrokerImplClass();
-//		args[EntityInstanceMessage.ARG.ENTITY_TYPE.ORDER()] = instanceMessages[0]
-//				.getEntityType();
-//		args[EntityInstanceMessage.ARG.OPERATION.ORDER()] = instanceMessages[0]
-//				.getOperation();
-//		args[EntityInstanceMessage.ARG.LOG_FILE.ORDER()] = instanceMessages[0]
-//				.getLogFile();
-//		args[EntityInstanceMessage.ARG.TOPIC_NAME.ORDER()] = instanceMessages[0]
-//				.getTopicName();
-//		args[EntityInstanceMessage.ARG.STATUS.ORDER()] = instanceMessages[0]
-//				.getStatus();
-//		args[EntityInstanceMessage.ARG.BROKER_TTL.ORDER()] = instanceMessages[0]
-//				.getBrokerTTL();
-//
-//		return args;
-//	}
-//
-//}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore
new file mode 100644
index 0000000..f7e8bbb
--- /dev/null
+++ b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore
@@ -0,0 +1,61 @@
+///**
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *     http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing, software
+// * distributed under the License is distributed on an "AS IS" BASIS,
+// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// * See the License for the specific language governing permissions and
+// * limitations under the License.
+// */
+//
+//package org.apache.ivory.messaging;
+//
+//import javax.jms.JMSException;
+//import javax.jms.Session;
+//import javax.jms.TextMessage;
+//
+//import org.apache.log4j.Logger;
+//
+///**
+// * Ivory JMS message creator- creates JMS TextMessage
+// */
+//public class EntityInstanceMessageCreator  {
+//
+//	private static final Logger LOG = Logger
+//			.getLogger(EntityInstanceMessageCreator.class);
+//
+//	private TextMessage textMessage;
+//
+//	private final EntityInstanceMessage args;
+//
+//	public EntityInstanceMessageCreator(EntityInstanceMessage args) {
+//		this.args = args;
+//	}
+//
+//	public TextMessage createMessage(Session session) throws JMSException {
+//		this.textMessage = session.createTextMessage();
+//		this.textMessage.setText(this.args.toString());
+//		LOG.debug("Sending Message: " + this.textMessage.getText());
+//		// System.out.println("Sending Message: " + this.textMessage);
+//		return this.textMessage;
+//	}
+//
+//	@Override
+//	public String toString() {
+//		try {
+//			return this.textMessage.getText();
+//		} catch (JMSException e) {
+//			return e.getMessage();
+//		}
+//
+//	}
+//
+//}

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/387604d1/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore.java b/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore.java
deleted file mode 100644
index f7e8bbb..0000000
--- a/falcon-regression/merlin/src/test/resources/OozieExampleInputData/normalInput/EntityInstanceMessageCreator.java.ignore.java
+++ /dev/null
@@ -1,61 +0,0 @@
-///**
-// * Licensed to the Apache Software Foundation (ASF) under one
-// * or more contributor license agreements.  See the NOTICE file
-// * distributed with this work for additional information
-// * regarding copyright ownership.  The ASF licenses this file
-// * to you under the Apache License, Version 2.0 (the
-// * "License"); you may not use this file except in compliance
-// * with the License.  You may obtain a copy of the License at
-// *
-// *     http://www.apache.org/licenses/LICENSE-2.0
-// *
-// * Unless required by applicable law or agreed to in writing, software
-// * distributed under the License is distributed on an "AS IS" BASIS,
-// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// * See the License for the specific language governing permissions and
-// * limitations under the License.
-// */
-//
-//package org.apache.ivory.messaging;
-//
-//import javax.jms.JMSException;
-//import javax.jms.Session;
-//import javax.jms.TextMessage;
-//
-//import org.apache.log4j.Logger;
-//
-///**
-// * Ivory JMS message creator- creates JMS TextMessage
-// */
-//public class EntityInstanceMessageCreator  {
-//
-//	private static final Logger LOG = Logger
-//			.getLogger(EntityInstanceMessageCreator.class);
-//
-//	private TextMessage textMessage;
-//
-//	private final EntityInstanceMessage args;
-//
-//	public EntityInstanceMessageCreator(EntityInstanceMessage args) {
-//		this.args = args;
-//	}
-//
-//	public TextMessage createMessage(Session session) throws JMSException {
-//		this.textMessage = session.createTextMessage();
-//		this.textMessage.setText(this.args.toString());
-//		LOG.debug("Sending Message: " + this.textMessage.getText());
-//		// System.out.println("Sending Message: " + this.textMessage);
-//		return this.textMessage;
-//	}
-//
-//	@Override
-//	public String toString() {
-//		try {
-//			return this.textMessage.getText();
-//		} catch (JMSException e) {
-//			return e.getMessage();
-//		}
-//
-//	}
-//
-//}


Mime
View raw message