Skip to content

Commit 9adb339

Browse files
committed
Make field Macro
1 parent 435b096 commit 9adb339

File tree

1 file changed

+16
-13
lines changed
  • integration-test-remote/src/test/java/io/cdap/cdap/app/etl/gcp

1 file changed

+16
-13
lines changed

integration-test-remote/src/test/java/io/cdap/cdap/app/etl/gcp/GCSTest.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
import java.util.concurrent.TimeUnit;
8080
import java.util.stream.Collectors;
8181
import java.util.stream.StreamSupport;
82+
import javax.annotation.Nullable;
8283

8384
/**
8485
* Tests reading from GCS (Google Cloud Storage) and writing to GCS from within a Dataproc cluster.
@@ -811,9 +812,7 @@ public void testMultiSinkContentType() throws Exception {
811812
Schema outputSchema = Schema.recordOf("output.schema",
812813
Schema.Field.of("id", Schema.of(Schema.Type.INT)),
813814
Schema.Field.of("name", Schema.nullableOf(Schema.of(Schema.Type.STRING))),
814-
Schema.Field.of("email", Schema.nullableOf(Schema.of(Schema.Type.STRING)))
815-
);
816-
815+
Schema.Field.of("email", Schema.nullableOf(Schema.of(Schema.Type.STRING))));
817816

818817
String line1 = "1,Marilyn Hawkins,[email protected],DepartmentA";
819818
String line2 = "2,Terry Perez,[email protected],DepartmentB";
@@ -822,7 +821,6 @@ public void testMultiSinkContentType() throws Exception {
822821

823822
bucket.create(inputPath, String.join("\n", Arrays.asList(line1, line2, line3)).getBytes(StandardCharsets.UTF_8));
824823

825-
826824
Map<String, String> inputSourceConfig = new HashMap<>();
827825
inputSourceConfig.put("schema", schema.toString());
828826
inputSourceConfig.put("format", "${sourceFormat}");
@@ -838,7 +836,7 @@ public void testMultiSinkContentType() throws Exception {
838836
ETLBatchConfig.Builder pipelineConfig = ETLBatchConfig.builder().addStage(source);
839837

840838
String path = createPath(bucket, OUTPUT_BLOB_NAME);
841-
ETLStage sink = new ETLStage("multsink", createMultiSinkPlugin(path, schema, "departament"));
839+
ETLStage sink = new ETLStage("multsink", createMultiSinkPlugin("csv"));
842840
pipelineConfig.addStage(sink).addConnection(source.getName(), sink.getName());
843841

844842
AppRequest<ETLBatchConfig> appRequest = getBatchAppRequestV2(pipelineConfig.build());
@@ -851,7 +849,10 @@ public void testMultiSinkContentType() throws Exception {
851849
args.put(multisink1, outputSchema.toString());
852850
args.put(multisink2, outputSchema.toString());
853851
args.put("sourceFormat", "csv");
854-
args.put("sinkFormat", "csv");
852+
args.put("multiSinkPath", path);
853+
args.put("multiSinkProjectId", getProjectId());
854+
args.put("multiSinkSchema", schema.toString());
855+
args.put("multiSinkSplitField", "departament");
855856
args.put("contentType", CSV_CONTENT_TYPE);
856857
startWorkFlow(appManager, ProgramRunStatus.COMPLETED, args);
857858

@@ -879,7 +880,7 @@ private ETLPlugin createSinkPlugin(String format, String path, Schema schema) {
879880
return createSinkPlugin(format, path, schema, null);
880881
}
881882

882-
private ETLPlugin createSinkPlugin(String format, String path, Schema schema, String contentType) {
883+
private ETLPlugin createSinkPlugin(String format, String path, Schema schema,@Nullable String contentType) {
883884
ImmutableMap.Builder<String, String> propertyBuilder = new ImmutableMap.Builder<String, String>()
884885
.put("path", path)
885886
.put("format", format)
@@ -892,14 +893,16 @@ private ETLPlugin createSinkPlugin(String format, String path, Schema schema, St
892893
return new ETLPlugin(SINK_PLUGIN_NAME, BatchSink.PLUGIN_TYPE, propertyBuilder.build(), GOOGLE_CLOUD_ARTIFACT);
893894
}
894895

895-
private ETLPlugin createMultiSinkPlugin(String path, Schema schema, String splitField) {
896+
private ETLPlugin createMultiSinkPlugin(String sinkFormat) {
896897
Map<String, String> map = new HashMap<>();
897-
map.put("path", path);
898-
map.put("format", "${sinkFormat}");
899-
map.put("project", getProjectId());
900-
map.put("schema", schema.toString());
898+
map.put("path", "${multiSinkPath}");
899+
map.put("format", sinkFormat);
900+
//todo make macro when https://cdap.atlassian.net/browse/PLUGIN-553 is fixed
901+
//map.put("format", "${sinkFormat}");
902+
map.put("project", "${multiSinkProjectId}");
903+
map.put("schema", "${multiSinkSchema}");
901904
map.put("referenceName", "gcs-multi-input");
902-
map.put("splitField", splitField);
905+
map.put("splitField", "${multiSinkSplitField}");
903906
map.put("contentType", "${contentType}");
904907
return new ETLPlugin(MULTI_SINK_PLUGIN_NAME, BatchSink.PLUGIN_TYPE, map, GOOGLE_CLOUD_ARTIFACT);
905908
}

0 commit comments

Comments
 (0)