Repository: sqoop Updated Branches: refs/heads/sqoop2 d7e049043 -> b345b4654
SQOOP-1575: Sqoop2: Validations: Migrate HDFS connector to new validators (Jarek Jarcec Cecho Via Abraham Elmahrek) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/b345b465 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/b345b465 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/b345b465 Branch: refs/heads/sqoop2 Commit: b345b4654651c08a24e58c4fe232a700cc3fbc32 Parents: d7e0490 Author: Abraham Elmahrek <[email protected]> Authored: Fri Oct 10 16:50:37 2014 -0700 Committer: Abraham Elmahrek <[email protected]> Committed: Fri Oct 10 16:50:55 2014 -0700 ---------------------------------------------------------------------- .../hdfs/configuration/FromJobConfig.java | 4 +++- .../hdfs/configuration/ToJobConfig.java | 24 ++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/b345b465/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/FromJobConfig.java ---------------------------------------------------------------------- diff --git a/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/FromJobConfig.java b/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/FromJobConfig.java index 037fe59..509d772 100644 --- a/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/FromJobConfig.java +++ b/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/FromJobConfig.java @@ -19,6 +19,8 @@ package org.apache.sqoop.connector.hdfs.configuration; import org.apache.sqoop.model.ConfigClass; import org.apache.sqoop.model.Input; +import org.apache.sqoop.model.Validator; +import org.apache.sqoop.validation.validators.NotEmpty; /** * @@ -26,5 +28,5 @@ import org.apache.sqoop.model.Input; @ConfigClass public class FromJobConfig { - @Input(size = 255) public String inputDirectory; + @Input(size = 255, validators = { @Validator(NotEmpty.class) }) public String inputDirectory; } http://git-wip-us.apache.org/repos/asf/sqoop/blob/b345b465/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/ToJobConfig.java ---------------------------------------------------------------------- diff --git a/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/ToJobConfig.java b/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/ToJobConfig.java index 2dfd738..7fb1f74 100644 --- a/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/ToJobConfig.java +++ b/connector/connector-hdfs/src/main/java/org/apache/sqoop/connector/hdfs/configuration/ToJobConfig.java @@ -19,11 +19,15 @@ package org.apache.sqoop.connector.hdfs.configuration; import org.apache.sqoop.model.ConfigClass; import org.apache.sqoop.model.Input; +import org.apache.sqoop.model.Validator; +import org.apache.sqoop.validation.Status; +import org.apache.sqoop.validation.validators.AbstractValidator; +import org.apache.sqoop.validation.validators.NotEmpty; /** * */ -@ConfigClass +@ConfigClass(validators = { @Validator(ToJobConfig.ToJobConfigValidator.class)}) public class ToJobConfig { @Input public ToFormat outputFormat; @@ -32,5 +36,21 @@ public class ToJobConfig { @Input(size = 255) public String customCompression; - @Input(size = 255) public String outputDirectory; + @Input(size = 255, validators = { @Validator(NotEmpty.class)}) public String outputDirectory; + + public static class ToJobConfigValidator extends AbstractValidator<ToJobConfig> { + @Override + public void validate(ToJobConfig conf) { + if(conf.customCompression != null && + conf.customCompression.trim().length() > 0 && + conf.compression != ToCompression.CUSTOM) { + addMessage(Status.UNACCEPTABLE, "Custom compression codec should be blank as " + conf.compression + " is being used"); + } + + if(conf.compression == ToCompression.CUSTOM && + (conf.customCompression == null || conf.customCompression.trim().length() == 0)) { + addMessage(Status.UNACCEPTABLE, "Custom compression field is blank."); + } + } + } }
