protected void propagateCatalogTableProperties( Output output, CatalogStorage tableStorage, Properties props) { String prefix = "falcon_" + output.getName(); propagateCommonCatalogTableProperties(tableStorage, props, prefix); // pig and java actions require partition expression as "key1=val1, key2=val2" props.put(prefix + "_partitions_pig", "${coord:dataOutPartitions('" + output.getName() + "')}"); props.put( prefix + "_partitions_java", "${coord:dataOutPartitions('" + output.getName() + "')}"); // hive requires partition expression as "key1='val1', key2='val2'" (with quotes around values) // there is no direct EL expression in oozie List<String> partitions = new ArrayList<String>(); for (String key : tableStorage.getDatedPartitionKeys()) { StringBuilder expr = new StringBuilder(); expr.append("${coord:dataOutPartitionValue('") .append(output.getName()) .append("', '") .append(key) .append("')}"); props.put(prefix + "_dated_partition_value_" + key, expr.toString()); partitions.add(key + "='" + expr + "'"); } props.put(prefix + "_partitions_hive", StringUtils.join(partitions, ",")); }
@Test(dependsOnMethods = "testOnProcessEntityChange") public void testAreSame() throws Exception { Inputs inputs1 = new Inputs(); Inputs inputs2 = new Inputs(); Outputs outputs1 = new Outputs(); Outputs outputs2 = new Outputs(); // return true when both are null Assert.assertTrue(EntityRelationshipGraphBuilder.areSame(inputs1, inputs2)); Assert.assertTrue(EntityRelationshipGraphBuilder.areSame(outputs1, outputs2)); Input i1 = new Input(); i1.setName("input1"); Input i2 = new Input(); i2.setName("input2"); Output o1 = new Output(); o1.setName("output1"); Output o2 = new Output(); o2.setName("output2"); inputs1.getInputs().add(i1); Assert.assertFalse(EntityRelationshipGraphBuilder.areSame(inputs1, inputs2)); outputs1.getOutputs().add(o1); Assert.assertFalse(EntityRelationshipGraphBuilder.areSame(outputs1, outputs2)); inputs2.getInputs().add(i1); Assert.assertTrue(EntityRelationshipGraphBuilder.areSame(inputs1, inputs2)); outputs2.getOutputs().add(o1); Assert.assertTrue(EntityRelationshipGraphBuilder.areSame(outputs1, outputs2)); }
public void removeOutputFeeds(Outputs outputs, Vertex processVertex) { if (outputs == null) { return; } for (Output output : outputs.getOutputs()) { removeProcessFeedEdge(processVertex, output.getFeed(), RelationshipLabel.PROCESS_FEED_EDGE); } }