From b33401f07398ca4ee60146b2d16b1b915209ddc9 Mon Sep 17 00:00:00 2001 From: Bhooshan Mogal Date: Wed, 15 Jul 2020 12:33:54 -0700 Subject: [PATCH] (PLUGIN-174) Made host, port, database macro-enabled --- .../db/batch/config/DBSpecificQueryActionConfig.java | 4 ++++ .../plugin/db/batch/config/DBSpecificQueryConfig.java | 4 ++++ .../plugin/db/batch/config/DBSpecificSinkConfig.java | 4 ++++ .../plugin/db/batch/config/DBSpecificSourceConfig.java | 4 ++++ .../io/cdap/plugin/db/batch/source/AbstractDBSource.java | 9 ++++++++- 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryActionConfig.java b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryActionConfig.java index cad417206..5c07575db 100644 --- a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryActionConfig.java +++ b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryActionConfig.java @@ -17,6 +17,7 @@ package io.cdap.plugin.db.batch.config; import io.cdap.cdap.api.annotation.Description; +import io.cdap.cdap.api.annotation.Macro; import io.cdap.cdap.api.annotation.Name; import io.cdap.plugin.db.batch.action.QueryActionConfig; @@ -27,14 +28,17 @@ public abstract class DBSpecificQueryActionConfig extends QueryActionConfig { @Name(HOST) @Description("Database host") + @Macro public String host; @Name(PORT) @Description("Specific database port") + @Macro public Integer port; @Name(DATABASE) @Description("Database name to connect to") + @Macro public String database; } diff --git a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryConfig.java b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryConfig.java index e34a66b8b..2f27ae901 100644 --- a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryConfig.java +++ b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificQueryConfig.java @@ -17,6 +17,7 @@ package io.cdap.plugin.db.batch.config; import io.cdap.cdap.api.annotation.Description; +import io.cdap.cdap.api.annotation.Macro; import io.cdap.cdap.api.annotation.Name; import io.cdap.plugin.db.batch.action.QueryConfig; @@ -27,13 +28,16 @@ public abstract class DBSpecificQueryConfig extends QueryConfig { @Name(HOST) @Description("Database host") + @Macro public String host; @Name(PORT) @Description("Specific database port") + @Macro public Integer port; @Name(DATABASE) @Description("Database name to connect to") + @Macro public String database; } diff --git a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSinkConfig.java b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSinkConfig.java index 70b68e6cb..b6bfcbf9d 100644 --- a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSinkConfig.java +++ b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSinkConfig.java @@ -17,6 +17,7 @@ package io.cdap.plugin.db.batch.config; import io.cdap.cdap.api.annotation.Description; +import io.cdap.cdap.api.annotation.Macro; import io.cdap.cdap.api.annotation.Name; import io.cdap.plugin.db.batch.sink.AbstractDBSink; @@ -27,13 +28,16 @@ public abstract class DBSpecificSinkConfig extends AbstractDBSink.DBSinkConfig { @Name(HOST) @Description("Database host") + @Macro public String host; @Name(PORT) @Description("Specific database port") + @Macro public Integer port; @Name(DATABASE) @Description("Database name to connect to") + @Macro public String database; } diff --git a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSourceConfig.java b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSourceConfig.java index f1d85ffcf..74685234a 100644 --- a/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSourceConfig.java +++ b/database-commons/src/main/java/io/cdap/plugin/db/batch/config/DBSpecificSourceConfig.java @@ -17,6 +17,7 @@ package io.cdap.plugin.db.batch.config; import io.cdap.cdap.api.annotation.Description; +import io.cdap.cdap.api.annotation.Macro; import io.cdap.cdap.api.annotation.Name; import io.cdap.plugin.db.batch.source.AbstractDBSource; @@ -27,13 +28,16 @@ public abstract class DBSpecificSourceConfig extends AbstractDBSource.DBSourceConfig { @Name(HOST) @Description("Database host") + @Macro public String host; @Name(PORT) @Description("Specific database port") + @Macro public Integer port; @Name(DATABASE) @Description("Database name to connect to") + @Macro public String database; } diff --git a/database-commons/src/main/java/io/cdap/plugin/db/batch/source/AbstractDBSource.java b/database-commons/src/main/java/io/cdap/plugin/db/batch/source/AbstractDBSource.java index e60d4fc73..a2e03a0da 100644 --- a/database-commons/src/main/java/io/cdap/plugin/db/batch/source/AbstractDBSource.java +++ b/database-commons/src/main/java/io/cdap/plugin/db/batch/source/AbstractDBSource.java @@ -101,7 +101,14 @@ public void configurePipeline(PipelineConfigurer pipelineConfigurer) { sourceConfig.validate(collector); if (sourceConfig.getSchema() != null) { stageConfigurer.setOutputSchema(sourceConfig.getSchema()); - } else if (!sourceConfig.containsMacro(DBSourceConfig.IMPORT_QUERY)) { + return; + } + if (!sourceConfig.containsMacro(ConnectionConfig.HOST) && + !sourceConfig.containsMacro(ConnectionConfig.PORT) && + !sourceConfig.containsMacro(ConnectionConfig.USER) && + !sourceConfig.containsMacro(ConnectionConfig.PASSWORD) && + !sourceConfig.containsMacro(DBSourceConfig.DATABASE) && + !sourceConfig.containsMacro(DBSourceConfig.IMPORT_QUERY)) { try { stageConfigurer.setOutputSchema(getSchema(driverClass)); } catch (IllegalAccessException | InstantiationException e) {