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.");
+      }
+    }
+  }
 }

Reply via email to