Repository: falcon Updated Branches: refs/heads/master 9f69ae271 -> 5f58c380b
FALCON-1278 Submitted entity properties must have unique names contributed by Raghav Kumar Gautam Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/5f58c380 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/5f58c380 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/5f58c380 Branch: refs/heads/master Commit: 5f58c380bf28d91a40d7a1a640bec742b4b72e12 Parents: 9f69ae2 Author: Raghav Kumar Gautam <[email protected]> Authored: Wed Jul 15 17:19:11 2015 -0700 Committer: Raghav Kumar Gautam <[email protected]> Committed: Wed Jul 15 17:21:37 2015 -0700 ---------------------------------------------------------------------- falcon-regression/CHANGES.txt | 2 + .../regression/Entities/ClusterMerlin.java | 24 +++++++-- .../falcon/regression/Entities/FeedMerlin.java | 42 +++++++-------- .../regression/Entities/ProcessMerlin.java | 57 +++++++++++--------- .../falcon/regression/core/bundle/Bundle.java | 11 ++-- .../falcon/regression/core/util/BundleUtil.java | 42 ++++----------- .../regression/ui/search/ClusterWizardPage.java | 2 +- .../falcon/regression/AuthorizationTest.java | 6 +-- .../regression/EmbeddedPigScriptTest.java | 15 ++---- .../apache/falcon/regression/LogMoverTest.java | 24 ++++----- .../regression/prism/EntityDryRunTest.java | 6 +-- .../falcon/regression/prism/FeedDelayTest.java | 4 +- .../regression/prism/PrismFeedUpdateTest.java | 5 +- .../prism/ProcessPartitionExpVariableTest.java | 11 ++-- .../prism/UpdateAtSpecificTimeTest.java | 4 +- .../falcon/regression/security/FeedAclTest.java | 8 +-- .../regression/security/ProcessAclTest.java | 8 +-- 17 files changed, 119 insertions(+), 152 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/CHANGES.txt ---------------------------------------------------------------------- diff --git a/falcon-regression/CHANGES.txt b/falcon-regression/CHANGES.txt index b062872..ebfc0cb 100644 --- a/falcon-regression/CHANGES.txt +++ b/falcon-regression/CHANGES.txt @@ -357,6 +357,8 @@ Trunk (Unreleased) FALCON-681 delete duplicate feed retention test from falcon regression (SamarthG) BUG FIXES + FALCON-1278 Submitted entity properties must have unique names (Raghav Kumar Gautam) + FALCON-1300 Use xml instead of properties for log4j (Raghav Kumar Gautam via Ruslan Ostafiychuk) FALCON-1290 Push Enter in start/end filter on entity page, start instance is included (Ruslan Ostafiychuk) http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ClusterMerlin.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ClusterMerlin.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ClusterMerlin.java index 0198e19..fe1338a 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ClusterMerlin.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ClusterMerlin.java @@ -169,11 +169,29 @@ public class ClusterMerlin extends Cluster { getLocations().getLocations().add(newLocation); } - public void addProperty(String name, String value) { - Property property = new Property(); + /** + * Add/replace a property. + * @param name name of the property + * @param value value of the property + * @return this + */ + public ClusterMerlin withProperty(String name, String value) { + final List<Property> properties = getProperties().getProperties(); + //if property with same name exists, just replace the value + for (Property property : properties) { + if (property.getName().equals(name)) { + LOGGER.info(String.format("Overwriting property name = %s oldVal = %s newVal = %s", + property.getName(), property.getValue(), value)); + property.setValue(value); + return this; + } + } + //if property is not added already, add it + final Property property = new Property(); property.setName(name); property.setValue(value); - getProperties().getProperties().add(property); + properties.add(property); + return this; } public void addInterface(Interfacetype type, String endpoint, String version) { http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/FeedMerlin.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/FeedMerlin.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/FeedMerlin.java index 787ddc1..ba1d228 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/FeedMerlin.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/FeedMerlin.java @@ -88,26 +88,27 @@ public class FeedMerlin extends Feed { } /** - * Sets custom feed property. - * @param propertyName custom property name - * @param propertyValue custom property value + * Add/replace a property. + * @param name name of the property + * @param value value of the property + * @return this */ - public FeedMerlin setFeedProperty(String propertyName, String propertyValue) { - boolean found = false; - for (Property prop : this.getProperties().getProperties()) { - //check if it is present - if (prop.getName().equalsIgnoreCase(propertyName)) { - prop.setValue(propertyValue); - found = true; - break; + public FeedMerlin withProperty(String name, String value) { + final List<Property> properties = getProperties().getProperties(); + //if property with same name exists, just replace the value + for (Property property : properties) { + if (property.getName().equals(name)) { + LOGGER.info(String.format("Overwriting property name = %s oldVal = %s newVal = %s", + property.getName(), property.getValue(), value)); + property.setValue(value); + return this; } } - if (!found) { - Property property = new Property(); - property.setName(propertyName); - property.setValue(propertyValue); - this.getProperties().getProperties().add(property); - } + //if property is not added already, add it + final Property property = new Property(); + property.setName(name); + property.setValue(value); + properties.add(property); return this; } @@ -288,13 +289,6 @@ public class FeedMerlin extends Feed { } } - public void addProperty(String someProp, String someVal) { - Property property = new Property(); - property.setName(someProp); - property.setValue(someVal); - this.getProperties().getProperties().add(property); - } - /** * Sets unique names for the feed. * @return mapping of old name to new name http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ProcessMerlin.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ProcessMerlin.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ProcessMerlin.java index 615587d..ae5c70c 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ProcessMerlin.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/Entities/ProcessMerlin.java @@ -24,10 +24,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.falcon.entity.v0.EntityType; import org.apache.falcon.entity.v0.Frequency; -import org.apache.falcon.entity.v0.process.EngineType; -import org.apache.falcon.entity.v0.process.Sla; import org.apache.falcon.entity.v0.process.ACL; import org.apache.falcon.entity.v0.process.Cluster; +import org.apache.falcon.entity.v0.process.EngineType; import org.apache.falcon.entity.v0.process.Input; import org.apache.falcon.entity.v0.process.Inputs; import org.apache.falcon.entity.v0.process.Output; @@ -35,6 +34,7 @@ import org.apache.falcon.entity.v0.process.Outputs; import org.apache.falcon.entity.v0.process.Process; import org.apache.falcon.entity.v0.process.Properties; import org.apache.falcon.entity.v0.process.Property; +import org.apache.falcon.entity.v0.process.Sla; import org.apache.falcon.entity.v0.process.Validity; import org.apache.falcon.entity.v0.process.Workflow; import org.apache.falcon.regression.core.util.TimeUtil; @@ -182,19 +182,35 @@ public class ProcessMerlin extends Process { } } - public final void setProperty(String name, String value) { - Property p = new Property(); - p.setName(name); - p.setValue(value); - if (null == getProperties() || null == getProperties() - .getProperties() || getProperties().getProperties().size() - <= 0) { - Properties props = new Properties(); - props.getProperties().add(p); - setProperties(props); - } else { - getProperties().getProperties().add(p); + public final ProcessMerlin clearProperties() { + final Properties properties = new Properties(); + setProperties(properties); + return this; + } + + /** + * Add/replace a property. + * @param name name of the property + * @param value value of the property + * @return this + */ + public final ProcessMerlin withProperty(String name, String value) { + final List<Property> properties = getProperties().getProperties(); + //if property with same name exists, just replace the value + for (Property property : properties) { + if (property.getName().equals(name)) { + LOGGER.info(String.format("Overwriting property name = %s oldVal = %s newVal = %s", + property.getName(), property.getValue(), value)); + property.setValue(value); + return this; + } } + //if property is not added already, add it + final Property property = new Property(); + property.setName(name); + property.setValue(value); + properties.add(property); + return this; } @Override @@ -431,17 +447,6 @@ public class ProcessMerlin extends Process { } /** - * Adds optional property to process definition. - * - * @param properties desired properties to be added - */ - public void addProperties(Property... properties) { - for (Property property : properties) { - this.getProperties().getProperties().add(property); - } - } - - /** * Changes names of process inputs. * * @param names desired names of inputs @@ -608,7 +613,7 @@ public class ProcessMerlin extends Process { draft.getOutputs().getOutputs().clear(); draft.setRetry(null); draft.clearProcessCluster(); - draft.getProperties().getProperties().clear(); + draft.clearProperties(); draft.setFrequency(null); draft.setOrder(null); draft.setTimezone(null); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java index c8f2320..f463f91 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java @@ -27,7 +27,6 @@ import org.apache.falcon.entity.v0.feed.Feed; import org.apache.falcon.entity.v0.process.Cluster; import org.apache.falcon.entity.v0.process.EngineType; import org.apache.falcon.entity.v0.process.LateProcess; -import org.apache.falcon.entity.v0.process.Property; import org.apache.falcon.entity.v0.process.Retry; import org.apache.falcon.regression.Entities.ClusterMerlin; import org.apache.falcon.regression.Entities.FeedMerlin; @@ -795,10 +794,8 @@ public class Bundle { * * @param properties desired properties to be added */ - public void addProcessProperty(Property... properties) { - ProcessMerlin p = new ProcessMerlin(processData); - p.addProperties(properties); - processData = p.toString(); + public void addProcessProperty(String propName, String propValue) { + processData = new ProcessMerlin(processData).withProperty(propName, propValue).toString(); } /** @@ -840,10 +837,8 @@ public class Bundle { } public void setProcessProperty(String property, String value) { - ProcessMerlin process = new ProcessMerlin(this.getProcessData()); - process.setProperty(property, value); + ProcessMerlin process = getProcessObject().withProperty(property, value); this.setProcessData(process.toString()); - } public String getDatasetPath() { http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java index bda5c23..16ff6cb 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java @@ -25,7 +25,6 @@ import org.apache.falcon.entity.v0.cluster.ClusterLocationType; import org.apache.falcon.entity.v0.cluster.Interface; import org.apache.falcon.entity.v0.cluster.Interfacetype; import org.apache.falcon.entity.v0.cluster.Location; -import org.apache.falcon.entity.v0.cluster.Property; import org.apache.falcon.regression.Entities.ClusterMerlin; import org.apache.falcon.regression.Entities.FeedMerlin; import org.apache.falcon.regression.Entities.ProcessMerlin; @@ -132,9 +131,7 @@ public final class BundleUtil { final String protectionPropName = "hadoop.rpc.protection"; final String protectionPropValue = Config.getProperty(protectionPropName); if (StringUtils.isNotEmpty(protectionPropValue)) { - final Property property = getFalconClusterPropertyObject( - protectionPropName, protectionPropValue.trim()); - clusterMerlin.getProperties().getProperties().add(property); + clusterMerlin.withProperty(protectionPropName, protectionPropValue.trim()); } clusterData = clusterMerlin.toString(); } else if (data.contains("uri:falcon:feed:0.1")) { @@ -198,56 +195,35 @@ public final class BundleUtil { } //set colo name: clusterObject.setColo(Config.getProperty(prefix + "colo")); - // get the properties object for the cluster - org.apache.falcon.entity.v0.cluster.Properties clusterProperties = - clusterObject.getProperties(); // properties in the cluster needed when secure mode is on if (MerlinConstants.IS_SECURE) { // add the namenode principal to the properties object - clusterProperties.getProperties().add(getFalconClusterPropertyObject( - "dfs.namenode.kerberos.principal", - Config.getProperty(prefix + "namenode.kerberos.principal", "none"))); + clusterObject.withProperty("dfs.namenode.kerberos.principal", + Config.getProperty(prefix + "namenode.kerberos.principal", "none")); // add the hive meta store principal to the properties object - clusterProperties.getProperties().add(getFalconClusterPropertyObject( - "hive.metastore.kerberos.principal", - Config.getProperty(prefix + "hive.metastore.kerberos.principal", "none"))); + clusterObject.withProperty("hive.metastore.kerberos.principal", + Config.getProperty(prefix + "hive.metastore.kerberos.principal", "none")); - // Until oozie has better integration with secure hive we need to send the properites to + // Until oozie has better integration with secure hive we need to send the properties to // falcon. // hive.metastore.sasl.enabled = true - clusterProperties.getProperties() - .add(getFalconClusterPropertyObject("hive.metastore.sasl.enabled", "true")); + clusterObject.withProperty("hive.metastore.sasl.enabled", "true"); // Only set the metastore uri if its not empty or null. } String hiveMetastoreUris = Config.getProperty(prefix + "hive.metastore.uris"); if (StringUtils.isNotBlank(hiveMetastoreUris)) { //hive.metastore.uris - clusterProperties.getProperties() - .add(getFalconClusterPropertyObject("hive.metastore.uris", hiveMetastoreUris)); + clusterObject.withProperty("hive.metastore.uris", hiveMetastoreUris); } String hiveServer2Uri = Config.getProperty(prefix + "hive.server2.uri"); if (StringUtils.isNotBlank(hiveServer2Uri)) { //hive.metastore.uris - clusterProperties.getProperties() - .add(getFalconClusterPropertyObject("hive.server2.uri", hiveServer2Uri)); + clusterObject.withProperty("hive.server2.uri", hiveServer2Uri); } return clusterObject; } - /** - * Forms property object based on parameters. - * @param name property name - * @param value property value - * @return property object - */ - private static Property getFalconClusterPropertyObject(String name, String value) { - Property property = new Property(); - property.setName(name); - property.setValue(value); - return property; - } - public static List<ClusterMerlin> getClustersFromStrings(List<String> clusterStrings) { List<ClusterMerlin> clusters = new ArrayList<>(); for (String clusterString : clusterStrings) { http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/ClusterWizardPage.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/ClusterWizardPage.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/ClusterWizardPage.java index cb6315b..0d0abe6 100644 --- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/ClusterWizardPage.java +++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/ClusterWizardPage.java @@ -369,7 +369,7 @@ public class ClusterWizardPage extends AbstractSearchPage { int indx = line.indexOf(":"); String name = line.substring(0, indx).trim(); String value = line.substring(indx + 1, line.length()).trim(); - cluster.addProperty(name, value); + cluster.withProperty(name, value); } } //retrieve locations http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java index e09033f..9c37562 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java @@ -693,8 +693,7 @@ public class AuthorizationTest extends BaseTestClass { String oldFeedBundleId = OozieUtil.getLatestBundleID(clusterOC, Util.readEntityName(feed), EntityType.FEED); //update process by U1 - ProcessMerlin processObj = bundles[0].getProcessObject(); - processObj.setProperty("randomProp", "randomVal"); + ProcessMerlin processObj = bundles[0].getProcessObject().withProperty("randomProp", "randomVal"); serviceResponse = prism.getProcessHelper().update(bundles[0].getProcessData(), processObj.toString()); AssertUtil.assertSucceeded(serviceResponse); @@ -735,8 +734,7 @@ public class AuthorizationTest extends BaseTestClass { String oldFeedBundleId = OozieUtil.getLatestBundleID(clusterOC, Util.readEntityName(feed), EntityType.FEED); //update process by U2 - ProcessMerlin processObj = bundles[0].getProcessObject(); - processObj.setProperty("randomProp", "randomVal"); + ProcessMerlin processObj = bundles[0].getProcessObject().withProperty("randomProp", "randomVal"); serviceResponse = prism.getProcessHelper().update(bundles[0].getProcessData(), processObj.toString(), MerlinConstants.USER2_NAME); AssertUtil.assertSucceeded(serviceResponse); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/EmbeddedPigScriptTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/EmbeddedPigScriptTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/EmbeddedPigScriptTest.java index 4fb3c4a..87fab7c 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/EmbeddedPigScriptTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/EmbeddedPigScriptTest.java @@ -18,13 +18,11 @@ package org.apache.falcon.regression; -import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.entity.v0.EntityType; import org.apache.falcon.entity.v0.Frequency.TimeUnit; import org.apache.falcon.entity.v0.process.EngineType; -import org.apache.falcon.entity.v0.process.Process; -import org.apache.falcon.entity.v0.process.Properties; -import org.apache.falcon.entity.v0.process.Property; +import org.apache.falcon.regression.Entities.ProcessMerlin; +import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.regression.core.enumsAndConstants.ResponseErrors; import org.apache.falcon.regression.core.helpers.ColoHelper; import org.apache.falcon.regression.core.response.ServiceResponse; @@ -100,13 +98,8 @@ public class EmbeddedPigScriptTest extends BaseTestClass { bundles[0].setProcessPeriodicity(5, TimeUnit.minutes); bundles[0].setOutputFeedPeriodicity(5, TimeUnit.minutes); - final Process processElement = bundles[0].getProcessObject(); - final Properties properties = new Properties(); - final Property property = new Property(); - property.setName("queueName"); - property.setValue("default"); - properties.getProperties().add(property); - processElement.setProperties(properties); + final ProcessMerlin processElement = bundles[0].getProcessObject(); + processElement.clearProperties().withProperty("queueName", "default"); processElement.getWorkflow().setEngine(EngineType.PIG); bundles[0].setProcessData(processElement.toString()); bundles[0].submitFeedsScheduleProcess(prism); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/LogMoverTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/LogMoverTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/LogMoverTest.java index 56fe8ab..5398581 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/LogMoverTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/LogMoverTest.java @@ -18,14 +18,19 @@ package org.apache.falcon.regression; -import org.apache.falcon.entity.v0.process.Process; -import org.apache.falcon.entity.v0.process.Properties; -import org.apache.falcon.entity.v0.process.Property; -import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.entity.v0.EntityType; import org.apache.falcon.entity.v0.Frequency.TimeUnit; +import org.apache.falcon.regression.Entities.ProcessMerlin; +import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.regression.core.helpers.ColoHelper; -import org.apache.falcon.regression.core.util.*; +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.InstanceUtil; +import org.apache.falcon.regression.core.util.OSUtil; +import org.apache.falcon.regression.core.util.OozieUtil; +import org.apache.falcon.regression.core.util.TimeUtil; +import org.apache.falcon.regression.core.util.Util; import org.apache.falcon.regression.testHelper.BaseTestClass; import org.apache.hadoop.fs.FileSystem; import org.apache.log4j.Logger; @@ -88,13 +93,8 @@ public class LogMoverTest extends BaseTestClass { bundles[0].getFeedDataPathPrefix(), dataDates); // Defining path to be used in pig script - final Process processElement = bundles[0].getProcessObject(); - final Properties properties = new Properties(); - final Property property = new Property(); - property.setName("inputPath"); - property.setValue(propPath); - properties.getProperties().add(property); - processElement.setProperties(properties); + final ProcessMerlin processElement = bundles[0].getProcessObject(); + processElement.clearProperties().withProperty("inputPath", propPath); bundles[0].setProcessData(processElement.toString()); process = bundles[0].getProcessData(); processName = Util.readEntityName(process); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/EntityDryRunTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/EntityDryRunTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/EntityDryRunTest.java index 529df25..4dc776f 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/EntityDryRunTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/EntityDryRunTest.java @@ -115,8 +115,8 @@ public class EntityDryRunTest extends BaseTestClass { */ @Test(groups = {"singleCluster"}) public void testDryRunFailureScheduleFeed() throws Exception { - FeedMerlin feed = new FeedMerlin(bundles[0].getInputFeedFromBundle()); - feed.setFeedProperty("EntityDryRunTestProp", "${coord:someEL(1)"); + FeedMerlin feed = new FeedMerlin(bundles[0].getInputFeedFromBundle()) + .withProperty("EntityDryRunTestProp", "${coord:someEL(1)"); bundles[0].submitClusters(prism); ServiceResponse response = prism.getFeedHelper().submitAndSchedule(feed.toString()); validate(response, @@ -132,7 +132,7 @@ public class EntityDryRunTest extends BaseTestClass { FeedMerlin feed = new FeedMerlin(bundles[0].getInputFeedFromBundle()); ServiceResponse response = prism.getFeedHelper().submitAndSchedule(feed.toString()); AssertUtil.assertSucceeded(response); - feed.setFeedProperty("EntityDryRunTestProp", "${coord:someEL(1)"); + feed.withProperty("EntityDryRunTestProp", "${coord:someEL(1)"); response = prism.getFeedHelper().update(feed.toString(), feed.toString()); validate(response, "The new entity (feed) " + bundles[0].getInputFeedNameFromBundle() + " can't be scheduled"); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/FeedDelayTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/FeedDelayTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/FeedDelayTest.java index e43621a..22aabfa 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/FeedDelayTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/FeedDelayTest.java @@ -123,8 +123,8 @@ public class FeedDelayTest extends BaseTestClass { .withDataLocation(targetDataLocation) .build()).toString(); - feed = FeedMerlin.fromString(feed).setFeedProperty("timeout", "minutes(35)").toString(); - feed = FeedMerlin.fromString(feed).setFeedProperty("parallel", "3").toString(); + feed = FeedMerlin.fromString(feed).withProperty("timeout", "minutes(35)").toString(); + feed = FeedMerlin.fromString(feed).withProperty("parallel", "3").toString(); LOGGER.info("feed : " + Util.prettyPrintXml(feed)); AssertUtil.assertSucceeded(prism.getFeedHelper().submitAndSchedule(feed)); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/PrismFeedUpdateTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/PrismFeedUpdateTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/PrismFeedUpdateTest.java index 35806fd..5e868e2 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/PrismFeedUpdateTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/PrismFeedUpdateTest.java @@ -204,7 +204,7 @@ public class PrismFeedUpdateTest extends BaseTestClass { CoordinatorAction.Status.RUNNING, EntityType.PROCESS, 1); //change feed location path - outputFeed.setFeedProperty("queueName", "myQueue"); + outputFeed.withProperty("queueName", "myQueue"); LOGGER.info("updated feed: " + Util.prettyPrintXml(outputFeed.toString())); //update feed first time @@ -229,8 +229,7 @@ public class PrismFeedUpdateTest extends BaseTestClass { OozieUtil.waitForBundleToReachState(cluster1OC, bundles[0].getProcessName(), Job.Status.SUCCEEDED, 20); - FeedMerlin feed = new FeedMerlin(bundles[0].getDataSets().get(0)); - feed.addProperty("someProp", "someVal"); + FeedMerlin feed = new FeedMerlin(bundles[0].getDataSets().get(0)).withProperty("someProp", "someVal"); AssertUtil.assertSucceeded(prism.getFeedHelper().update(feed.toString(), feed.toString())); //check for new feed bundle creation Assert.assertEquals(OozieUtil.getNumberOfBundle(cluster1OC, EntityType.FEED, http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/ProcessPartitionExpVariableTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/ProcessPartitionExpVariableTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/ProcessPartitionExpVariableTest.java index 20c60d2..30b20c5 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/ProcessPartitionExpVariableTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/ProcessPartitionExpVariableTest.java @@ -18,9 +18,8 @@ package org.apache.falcon.regression.prism; -import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.entity.v0.EntityType; -import org.apache.falcon.entity.v0.process.Property; +import org.apache.falcon.regression.core.bundle.Bundle; import org.apache.falcon.regression.core.helpers.ColoHelper; import org.apache.falcon.regression.core.util.BundleUtil; import org.apache.falcon.regression.core.util.HadoopUtil; @@ -30,6 +29,7 @@ import org.apache.falcon.regression.core.util.TimeUtil; import org.apache.falcon.regression.core.util.Util; import org.apache.falcon.regression.testHelper.BaseTestClass; import org.apache.hadoop.fs.FileSystem; +import org.apache.log4j.Logger; import org.apache.oozie.client.CoordinatorAction; import org.apache.oozie.client.OozieClient; import org.joda.time.DateTime; @@ -39,7 +39,6 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import org.apache.log4j.Logger; import java.util.ArrayList; import java.util.List; @@ -91,11 +90,7 @@ public class ProcessPartitionExpVariableTest extends BaseTestClass { bundles[0].generateRequiredBundle(1, 2, 1, baseTestDir, 1, startTime, endTime); bundles[0].setProcessInputNames("inputData0", "inputData"); - Property p = new Property(); - p.setName("var1"); - p.setValue("hardCoded"); - - bundles[0].addProcessProperty(p); + bundles[0].addProcessProperty("var1", "hardCoded"); bundles[0].setProcessInputPartition("${var1}", "${fileTime}"); for (int i = 0; i < bundles[0].getDataSets().size(); i++) { http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/UpdateAtSpecificTimeTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/UpdateAtSpecificTimeTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/UpdateAtSpecificTimeTest.java index 189ef2f..e10f8d1 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/UpdateAtSpecificTimeTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/UpdateAtSpecificTimeTest.java @@ -284,7 +284,7 @@ public class UpdateAtSpecificTimeTest extends BaseTestClass { Util.shutDownService(cluster2.getProcessHelper()); //add some property to feed so that new bundle is created - FeedMerlin updatedFeed = new FeedMerlin(feed).setFeedProperty("someProp", "someVal"); + FeedMerlin updatedFeed = new FeedMerlin(feed).withProperty("someProp", "someVal"); //save old data String oldBundleCluster1 = OozieUtil.getLatestBundleID(cluster1OC, @@ -398,7 +398,7 @@ public class UpdateAtSpecificTimeTest extends BaseTestClass { String oldBundleID = OozieUtil.getLatestBundleID(cluster1OC, Util.readEntityName(feed), EntityType.FEED); String updateTime = TimeUtil.addMinsToTime(endTime, 60); - FeedMerlin updatedFeed = new FeedMerlin(feed).setFeedProperty("someProp", "someVal"); + FeedMerlin updatedFeed = new FeedMerlin(feed).withProperty("someProp", "someVal"); LOGGER.info("Original Feed : " + Util.prettyPrintXml(feed)); LOGGER.info("Updated Feed :" + Util.prettyPrintXml(updatedFeed.toString())); LOGGER.info("Update Time : " + updateTime); http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/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 6144c69..9259f5e 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 @@ -119,9 +119,7 @@ public class FeedAclTest extends BaseTestClass { bundles[0].submitClusters(prism); bundles[0].submitFeeds(prism); if (op == EntityOp.update) { - FeedMerlin feedMerlin = new FeedMerlin(feedString); - feedMerlin.addProperty("abc", "xyz"); - feedString = feedMerlin.toString(); + feedString = new FeedMerlin(feedString).withProperty("abc", "xyz").toString(); } final boolean executeRes = op.executeAs(user, feedHelper, feedString); Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user @@ -164,9 +162,7 @@ public class FeedAclTest extends BaseTestClass { if (op == EntityOp.resume) { feedHelper.suspend(feedString); } else if (op == EntityOp.update) { - FeedMerlin feedMerlin = new FeedMerlin(feedString); - feedMerlin.addProperty("abc", "xyz"); - feedString = feedMerlin.toString(); + feedString = new FeedMerlin(feedString).withProperty("abc", "xyz").toString(); } final boolean executeRes = op.executeAs(user, feedHelper, feedString); Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user http://git-wip-us.apache.org/repos/asf/falcon/blob/5f58c380/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 b649915..eb05859 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 @@ -126,9 +126,7 @@ public class ProcessAclTest extends BaseTestClass { throws Exception { bundles[0].submitProcess(true); if (op == EntityOp.update) { - ProcessMerlin processMerlin = new ProcessMerlin(processString); - processMerlin.setProperty("abc", "xyz"); - processString = processMerlin.toString(); + processString = new ProcessMerlin(processString).withProperty("abc", "xyz").toString(); } final boolean executeRes = op.executeAs(user, processHelper, processString); Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user @@ -172,9 +170,7 @@ public class ProcessAclTest extends BaseTestClass { if (op == EntityOp.resume) { processHelper.suspend(processString); } else if (op == EntityOp.update) { - ProcessMerlin processMerlin = new ProcessMerlin(processString); - processMerlin.setProperty("abc", "xyz"); - processString = processMerlin.toString(); + processString = new ProcessMerlin(processString).withProperty("abc", "xyz").toString(); } final boolean executeRes = op.executeAs(user, processHelper, processString); Assert.assertEquals(executeRes, isAllowed, "Unexpected result user " + user
