You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2013/03/25 21:34:34 UTC
git commit: SQOOP-947: Sqoop2: Introduce the concept of "sensitivity"
input to all supported metadata structures
Updated Branches:
refs/heads/sqoop2 cc506b9eb -> dd61adf66
SQOOP-947: Sqoop2: Introduce the concept of "sensitivity" input to all supported metadata structures
(Abraham Elmahrek via Jarek Jarcec Cecho)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/dd61adf6
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/dd61adf6
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/dd61adf6
Branch: refs/heads/sqoop2
Commit: dd61adf66cf90172347d2c44e4c8c5f8b79e818c
Parents: cc506b9
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Mon Mar 25 13:33:15 2013 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Mon Mar 25 13:33:15 2013 -0700
----------------------------------------------------------------------
.../org/apache/sqoop/client/core/Constants.java | 4 +-
.../apache/sqoop/client/utils/FormDisplayer.java | 48 +++++++-------
.../org/apache/sqoop/client/utils/FormFiller.java | 38 +++++++++---
.../src/main/resources/client-resource.properties | 2 +-
.../apache/sqoop/json/util/FormSerialization.java | 17 +++---
.../java/org/apache/sqoop/model/FormUtils.java | 6 +-
.../java/org/apache/sqoop/model/MEnumInput.java | 4 +-
.../main/java/org/apache/sqoop/model/MInput.java | 13 ++++-
.../java/org/apache/sqoop/model/MIntegerInput.java | 4 +-
.../java/org/apache/sqoop/model/MMapInput.java | 4 +-
.../java/org/apache/sqoop/model/MStringInput.java | 24 ++-----
.../org/apache/sqoop/json/TestConnectionBean.java | 11 +++
.../java/org/apache/sqoop/model/TestFormUtils.java | 6 +-
.../apache/sqoop/model/TestMAccountableEntity.java | 2 +-
.../org/apache/sqoop/model/TestMConnection.java | 4 +-
.../org/apache/sqoop/model/TestMEnumInput.java | 20 +++++-
.../java/org/apache/sqoop/model/TestMForm.java | 14 ++--
.../java/org/apache/sqoop/model/TestMFormList.java | 6 +-
.../org/apache/sqoop/model/TestMIntegerInput.java | 25 ++++++--
.../java/org/apache/sqoop/model/TestMMapInput.java | 25 ++++++--
.../org/apache/sqoop/model/TestMNamedElement.java | 2 +-
.../org/apache/sqoop/model/TestMStringInput.java | 2 +-
.../apache/sqoop/model/TestMValidatedElement.java | 4 +-
.../repository/derby/DerbyRepositoryHandler.java | 13 ++--
24 files changed, 181 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/client/src/main/java/org/apache/sqoop/client/core/Constants.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/core/Constants.java b/client/src/main/java/org/apache/sqoop/client/core/Constants.java
index cc80df1..b93577c 100644
--- a/client/src/main/java/org/apache/sqoop/client/core/Constants.java
+++ b/client/src/main/java/org/apache/sqoop/client/core/Constants.java
@@ -336,8 +336,8 @@ public class Constants {
"formdisplayer.input";
public static final String RES_FORMDISPLAYER_TYPE =
"formdisplayer.type";
- public static final String RES_FORMDISPLAYER_MASK =
- "formdisplayer.mask";
+ public static final String RES_FORMDISPLAYER_SENSITIVE =
+ "formdisplayer.sensitive";
public static final String RES_FORMDISPLAYER_SIZE =
"formdisplayer.size";
public static final String RES_FORMDISPLAYER_POSSIBLE_VALUES =
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/client/src/main/java/org/apache/sqoop/client/utils/FormDisplayer.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/utils/FormDisplayer.java b/client/src/main/java/org/apache/sqoop/client/utils/FormDisplayer.java
index 0609ae1..7cce713 100644
--- a/client/src/main/java/org/apache/sqoop/client/utils/FormDisplayer.java
+++ b/client/src/main/java/org/apache/sqoop/client/utils/FormDisplayer.java
@@ -101,9 +101,9 @@ public final class FormDisplayer {
println(bundle.getString(input.getHelpKey()));
print(" %s: ", resourceString(Constants.RES_FORMDISPLAYER_TYPE));
println(input.getType());
+ print(" %s: ", resourceString(Constants.RES_FORMDISPLAYER_SENSITIVE));
+ println(input.isSensitive());
if (input.getType() == MInputType.STRING) {
- print(" %s: ", resourceString(Constants.RES_FORMDISPLAYER_MASK));
- println(((MStringInput)input).isMasked());
print(" %s: ", resourceString(Constants.RES_FORMDISPLAYER_SIZE));
println(((MStringInput)input).getMaxLength());
} else if(input.getType() == MInputType.ENUM) {
@@ -129,23 +129,27 @@ public final class FormDisplayer {
print(bundle.getString(input.getLabelKey()));
print(": ");
if(!input.isEmpty()) {
- // Based on the input type, let's perform specific load
- switch (input.getType()) {
- case STRING:
- displayInputString((MStringInput) input);
- break;
- case INTEGER:
- displayInputInteger((MIntegerInput) input);
- break;
- case MAP:
- displayInputMap((MMapInput) input);
- break;
- case ENUM:
- displayInputEnum((MEnumInput) input);
- break;
- default:
- print("\n%s " + input.getType(), resourceString(Constants.RES_FORMDISPLAYER_UNSUPPORTED_DATATYPE));
- return;
+ if (input.isSensitive()) {
+ print("(%s)", resourceString(Constants.RES_FORMDISPLAYER_INPUT_SENSITIVE));
+ } else {
+ // Based on the input type, let's perform specific load
+ switch (input.getType()) {
+ case STRING:
+ displayInputString((MStringInput) input);
+ break;
+ case INTEGER:
+ displayInputInteger((MIntegerInput) input);
+ break;
+ case MAP:
+ displayInputMap((MMapInput) input);
+ break;
+ case ENUM:
+ displayInputEnum((MEnumInput) input);
+ break;
+ default:
+ print("\n%s " + input.getType(), resourceString(Constants.RES_FORMDISPLAYER_UNSUPPORTED_DATATYPE));
+ return;
+ }
}
}
println("");
@@ -158,11 +162,7 @@ public final class FormDisplayer {
* @param input String input
*/
private static void displayInputString(MStringInput input) {
- if (input.isMasked()) {
- print("(%s)", resourceString(Constants.RES_FORMDISPLAYER_INPUT_SENSITIVE));
- } else {
- print(input.getValue());
- }
+ print(input.getValue());
}
/**
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/client/src/main/java/org/apache/sqoop/client/utils/FormFiller.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/utils/FormFiller.java b/client/src/main/java/org/apache/sqoop/client/utils/FormFiller.java
index f11b9d2..95d0612 100644
--- a/client/src/main/java/org/apache/sqoop/client/utils/FormFiller.java
+++ b/client/src/main/java/org/apache/sqoop/client/utils/FormFiller.java
@@ -203,7 +203,8 @@ public final class FormFiller {
println(" " + i + " : " + value);
- if(!input.isEmpty() && value.equals(input.getValue())) {
+ // Only show last choice if not sensitive
+ if(!input.isEmpty() && value.equals(input.getValue()) && !input.isSensitive()) {
lastChoice = i;
}
}
@@ -217,7 +218,12 @@ public final class FormFiller {
}
reader.flushConsole();
- String userTyped = reader.readLine();
+ String userTyped;
+ if(input.isSensitive()) {
+ userTyped = reader.readLine('*');
+ } else {
+ userTyped = reader.readLine();
+ }
if (userTyped == null) {
return false;
@@ -278,16 +284,23 @@ public final class FormFiller {
while(true) {
// Print all current items in each iteration
+ // However do not printout if this input contains sensitive information.
println("There are currently " + values.size() + " values in the map:");
- for(Map.Entry<String, String> entry : values.entrySet()) {
- println(entry.getKey() + " = " + entry.getValue());
+ if (!input.isSensitive()) {
+ for(Map.Entry<String, String> entry : values.entrySet()) {
+ println(entry.getKey() + " = " + entry.getValue());
+ }
}
// Special prompt for Map entry
reader.printString("entry# ");
reader.flushConsole();
- userTyped = reader.readLine();
+ if(input.isSensitive()) {
+ userTyped = reader.readLine('*');
+ } else {
+ userTyped = reader.readLine();
+ }
if(userTyped == null) {
// Finish loading and return back to Sqoop shell
@@ -365,11 +378,18 @@ public final class FormFiller {
generatePrompt(reader, bundle, input);
// Fill already filled data when available
- if(!input.isEmpty()) {
+ // However do not printout if this input contains sensitive information.
+ if(!input.isEmpty() && !input.isSensitive()) {
reader.putString(input.getValue().toString());
}
- String userTyped = reader.readLine();
+ // Get the data
+ String userTyped;
+ if(input.isSensitive()) {
+ userTyped = reader.readLine('*');
+ } else {
+ userTyped = reader.readLine();
+ }
if (userTyped == null) {
return false;
@@ -408,13 +428,13 @@ public final class FormFiller {
// Fill already filled data when available
// However do not printout if this input contains sensitive information.
- if(!input.isEmpty() && !input.isMasked()) {
+ if(!input.isEmpty() && !input.isSensitive()) {
reader.putString(input.getValue());
}
// Get the data
String userTyped;
- if(input.isMasked()) {
+ if(input.isSensitive()) {
userTyped = reader.readLine('*');
} else {
userTyped = reader.readLine();
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/client/src/main/resources/client-resource.properties
----------------------------------------------------------------------
diff --git a/client/src/main/resources/client-resource.properties b/client/src/main/resources/client-resource.properties
index 734333e..7e68c4f 100644
--- a/client/src/main/resources/client-resource.properties
+++ b/client/src/main/resources/client-resource.properties
@@ -182,7 +182,7 @@ formdisplayer.label = Label
formdisplayer.help = Help
formdisplayer.input = Input
formdisplayer.type = Type
-formdisplayer.mask = Mask
+formdisplayer.sensitive = Sensitive
formdisplayer.size = Size
formdisplayer.possible_values = Possible values
formdisplayer.unsupported_datatype = Unsupported data type
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/json/util/FormSerialization.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/util/FormSerialization.java b/common/src/main/java/org/apache/sqoop/json/util/FormSerialization.java
index 3f8f985..048323b 100644
--- a/common/src/main/java/org/apache/sqoop/json/util/FormSerialization.java
+++ b/common/src/main/java/org/apache/sqoop/json/util/FormSerialization.java
@@ -52,7 +52,7 @@ public final class FormSerialization {
public static final String FORM_INPUTS = "inputs";
public static final String FORM_INPUT_NAME = "name";
public static final String FORM_INPUT_TYPE = "type";
- public static final String FORM_INPUT_MASK = "mask";
+ public static final String FORM_INPUT_SENSITIVE = "sensitive";
public static final String FORM_INPUT_SIZE = "size";
public static final String FORM_INPUT_VALUE = "value";
public static final String FORM_INPUT_VALUES = "values";
@@ -95,11 +95,10 @@ public final class FormSerialization {
input.put(ID, mInput.getPersistenceId());
input.put(FORM_INPUT_NAME, mInput.getName());
input.put(FORM_INPUT_TYPE, mInput.getType().toString());
+ input.put(FORM_INPUT_SENSITIVE, mInput.isSensitive());
// String specific serialization
if (mInput.getType() == MInputType.STRING) {
- input.put(FORM_INPUT_MASK,
- ((MStringInput)mInput).isMasked());
input.put(FORM_INPUT_SIZE,
((MStringInput)mInput).getMaxLength());
}
@@ -112,7 +111,7 @@ public final class FormSerialization {
// Serialize value if is there
// Skip if sensitive
- if (!mInput.isEmpty() && !(skipSensitive && ((MStringInput)mInput).isMasked())) {
+ if (!mInput.isEmpty() && !(skipSensitive && mInput.isSensitive())) {
input.put(FORM_INPUT_VALUE, mInput.getUrlSafeValueString());
}
@@ -153,25 +152,25 @@ public final class FormSerialization {
MInputType type =
MInputType.valueOf((String) input.get(FORM_INPUT_TYPE));
String name = (String) input.get(FORM_INPUT_NAME);
+ Boolean sensitive = (Boolean) input.get(FORM_INPUT_SENSITIVE);
MInput mInput = null;
switch (type) {
case STRING: {
- boolean mask = (Boolean) input.get(FORM_INPUT_MASK);
long size = (Long) input.get(FORM_INPUT_SIZE);
- mInput = new MStringInput(name, mask, (short) size);
+ mInput = new MStringInput(name, sensitive.booleanValue(), (short) size);
break;
}
case MAP: {
- mInput = new MMapInput(name);
+ mInput = new MMapInput(name, sensitive.booleanValue());
break;
}
case INTEGER: {
- mInput = new MIntegerInput(name);
+ mInput = new MIntegerInput(name, sensitive.booleanValue());
break;
}
case ENUM: {
String values = (String) input.get(FORM_INPUT_VALUES);
- mInput = new MEnumInput(name, values.split(","));
+ mInput = new MEnumInput(name, sensitive.booleanValue(), values.split(","));
break;
}
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/FormUtils.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/FormUtils.java b/common/src/main/java/org/apache/sqoop/model/FormUtils.java
index e88216d..80b10c8 100644
--- a/common/src/main/java/org/apache/sqoop/model/FormUtils.java
+++ b/common/src/main/java/org/apache/sqoop/model/FormUtils.java
@@ -139,11 +139,11 @@ public class FormUtils {
if(type == String.class) {
input = new MStringInput(inputName, sensitive, maxLen);
} else if (type.isAssignableFrom(Map.class)) {
- input = new MMapInput(inputName);
+ input = new MMapInput(inputName, sensitive);
} else if(type == Integer.class) {
- input = new MIntegerInput(inputName);
+ input = new MIntegerInput(inputName, sensitive);
} else if(type.isEnum()) {
- input = new MEnumInput(inputName, ClassUtils.getEnumStrings(type));
+ input = new MEnumInput(inputName, sensitive, ClassUtils.getEnumStrings(type));
} else {
throw new SqoopException(ModelError.MODEL_004,
"Unsupported type " + type.getName() + " for input " + fieldName);
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/MEnumInput.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/MEnumInput.java b/common/src/main/java/org/apache/sqoop/model/MEnumInput.java
index 77598a8..12705a6 100644
--- a/common/src/main/java/org/apache/sqoop/model/MEnumInput.java
+++ b/common/src/main/java/org/apache/sqoop/model/MEnumInput.java
@@ -32,8 +32,8 @@ public class MEnumInput extends MInput<String> {
*/
String []values;
- public MEnumInput(String name, String[] values) {
- super(name);
+ public MEnumInput(String name, boolean sensitive, String[] values) {
+ super(name, sensitive);
this.values = values;
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/MInput.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/MInput.java b/common/src/main/java/org/apache/sqoop/model/MInput.java
index 96397e8..7d6215f 100644
--- a/common/src/main/java/org/apache/sqoop/model/MInput.java
+++ b/common/src/main/java/org/apache/sqoop/model/MInput.java
@@ -21,12 +21,16 @@ package org.apache.sqoop.model;
* Represents a parameter input used by the connector for creating a connection
* or a job object.
* @param <T> the value type associated with this parameter
+ * @param boolean whether or not the field contains sensitive information
*/
public abstract class MInput<T> extends MValidatedElement {
+ private final boolean sensitive;
+
private T value;
- protected MInput(String name) {
+ protected MInput(String name, boolean sensitive) {
super(name);
+ this.sensitive = sensitive;
}
/**
@@ -44,6 +48,13 @@ public abstract class MInput<T> extends MValidatedElement {
}
/**
+ * @return <tt>true</tt> if this string represents sensitive information
+ */
+ public boolean isSensitive() {
+ return sensitive;
+ }
+
+ /**
* @return a URL-safe string representation of the value
*/
public abstract String getUrlSafeValueString();
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java b/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java
index d281d7e..d23ac31 100644
--- a/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java
+++ b/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java
@@ -24,8 +24,8 @@ package org.apache.sqoop.model;
*/
public class MIntegerInput extends MInput<Integer> {
- public MIntegerInput(String name) {
- super(name);
+ public MIntegerInput(String name, boolean sensitive) {
+ super(name, sensitive);
}
@Override
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/MMapInput.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/MMapInput.java b/common/src/main/java/org/apache/sqoop/model/MMapInput.java
index b458022..704c1f8 100644
--- a/common/src/main/java/org/apache/sqoop/model/MMapInput.java
+++ b/common/src/main/java/org/apache/sqoop/model/MMapInput.java
@@ -24,8 +24,8 @@ import org.apache.sqoop.utils.UrlSafeUtils;
public final class MMapInput extends MInput<Map<String, String>> {
- public MMapInput(String name) {
- super(name);
+ public MMapInput(String name, boolean sensitive) {
+ super(name, sensitive);
}
@Override
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/main/java/org/apache/sqoop/model/MStringInput.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/model/MStringInput.java b/common/src/main/java/org/apache/sqoop/model/MStringInput.java
index e96ec92..a437a25 100644
--- a/common/src/main/java/org/apache/sqoop/model/MStringInput.java
+++ b/common/src/main/java/org/apache/sqoop/model/MStringInput.java
@@ -20,36 +20,26 @@ package org.apache.sqoop.model;
import org.apache.sqoop.utils.UrlSafeUtils;
/**
- * Represents a <tt>String</tt> input. The boolean flag <tt>mask</tt> supplied
+ * Represents a <tt>String</tt> input. The boolean flag <tt>sensitive</tt> supplied
* to its constructor can be used to indicate if the string should be masked
* from user-view. This is helpful for creating input strings that represent
* sensitive information such as passwords.
*/
public final class MStringInput extends MInput<String> {
- private final boolean mask;
private final short maxLength;
/**
* @param name the parameter name
- * @param mask a flag indicating if the string should be masked
+ * @param sensitive a flag indicating if the string should be masked
* @param maxLength the maximum length of the string
*/
- public MStringInput(String name, boolean mask, short maxLength) {
- super(name);
- this.mask = mask;
+ public MStringInput(String name, boolean sensitive, short maxLength) {
+ super(name, sensitive);
this.maxLength = maxLength;
}
/**
- * @return <tt>true</tt> if this string represents sensitive information that
- * should be masked
- */
- public boolean isMasked() {
- return mask;
- }
-
- /**
* @return the maximum length of this string type
*/
public short getMaxLength() {
@@ -78,7 +68,7 @@ public final class MStringInput extends MInput<String> {
@Override
public String getExtraInfoToString() {
- return isMasked() + ":" + getMaxLength();
+ return Short.toString(getMaxLength());
}
@Override
@@ -93,14 +83,14 @@ public final class MStringInput extends MInput<String> {
MStringInput msi = (MStringInput) other;
return getName().equals(msi.getName())
- && (mask == msi.mask)
+ && (isSensitive() == msi.isSensitive())
&& (maxLength == msi.maxLength);
}
@Override
public int hashCode() {
int result = 23 + 31 * getName().hashCode();
- result = 31 * result + (mask ? 1 : 0);
+ result = 31 * result + (isSensitive() ? 1 : 0);
result = 31 * result + maxLength;
return result;
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
index 5553554..dd1d75b 100644
--- a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
+++ b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java
@@ -19,6 +19,7 @@ package org.apache.sqoop.json;
import org.apache.sqoop.model.MConnection;
import org.apache.sqoop.model.MStringInput;
+import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.JSONValue;
@@ -52,6 +53,16 @@ public class TestConnectionBean {
ConnectionBean bean = new ConnectionBean(connection);
JSONObject json = bean.extract(false);
+ // Check for sensitivity
+ JSONArray all = (JSONArray)json.get("all");
+ JSONObject allItem = (JSONObject)all.get(0);
+ JSONArray connectors = (JSONArray)allItem.get("connector");
+ JSONObject connector = (JSONObject)connectors.get(0);
+ JSONArray inputs = (JSONArray)connector.get("inputs");
+ for (Object input1 : inputs) {
+ assertTrue(((JSONObject)input1).containsKey("sensitive"));
+ }
+
// "Move" it across network in text form
String string = json.toJSONString();
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
index 85c65de..08dfa7b 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java
@@ -184,9 +184,9 @@ public class TestFormUtils extends TestCase {
// Form C
inputs = new LinkedList<MInput<?>>();
- inputs.add(new MIntegerInput("cForm.intValue"));
- inputs.add(new MMapInput("cForm.map"));
- inputs.add(new MEnumInput("cForm.enumeration", new String[]{"X", "Y"}));
+ inputs.add(new MIntegerInput("cForm.intValue", false));
+ inputs.add(new MMapInput("cForm.map", false));
+ inputs.add(new MEnumInput("cForm.enumeration", false, new String[]{"X", "Y"}));
ret.add(new MForm("cForm", inputs));
return ret;
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
index 1cde5cf..4ea42b1 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java
@@ -36,7 +36,7 @@ public class TestMAccountableEntity {
@Test
public void testInitialization() {
List<MForm> forms = new ArrayList<MForm>();
- MIntegerInput input = new MIntegerInput("INTEGER-INPUT");
+ MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false);
List<MInput<?>> list = new ArrayList<MInput<?>>();
list.add(input);
MForm form = new MForm("FORMNAME", list);
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMConnection.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMConnection.java b/common/src/test/java/org/apache/sqoop/model/TestMConnection.java
index a99b7dc..c3469ff 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMConnection.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMConnection.java
@@ -49,7 +49,7 @@ public class TestMConnection {
private MConnectionForms connector1() {
List<MForm> forms = new ArrayList<MForm>();
- MIntegerInput input = new MIntegerInput("INTEGER-INPUT");
+ MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false);
List<MInput<?>> list = new ArrayList<MInput<?>>();
list.add(input);
MForm form = new MForm("FORMNAME", list);
@@ -59,7 +59,7 @@ public class TestMConnection {
private MConnectionForms connector2() {
List<MForm> forms = new ArrayList<MForm>();
- MMapInput input = new MMapInput("MAP-INPUT");
+ MMapInput input = new MMapInput("MAP-INPUT", false);
List<MInput<?>> list = new ArrayList<MInput<?>>();
list.add(input);
MForm form = new MForm("form", list);
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMEnumInput.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMEnumInput.java b/common/src/test/java/org/apache/sqoop/model/TestMEnumInput.java
index 1d86c13..a25016a 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMEnumInput.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMEnumInput.java
@@ -33,19 +33,31 @@ public class TestMEnumInput {
@Test
public void testInitialization() {
String[] values = { "value1", "value2" };
- MEnumInput input = new MEnumInput("NAME", values);
+ MEnumInput input = new MEnumInput("NAME", false, values);
assertEquals("NAME", input.getName());
assertArrayEquals(values, input.getValues());
assertEquals(MInputType.ENUM, input.getType());
- MEnumInput input1 = new MEnumInput("NAME", values);
+ MEnumInput input1 = new MEnumInput("NAME", false, values);
assertEquals(input1, input);
String[] testVal = { "val", "test" };
- MEnumInput input2 = new MEnumInput("NAME1", testVal);
+ MEnumInput input2 = new MEnumInput("NAME1", false, testVal);
assertFalse(input1.equals(input2));
- MEnumInput input3 = new MEnumInput("NAME", values);
+ MEnumInput input3 = new MEnumInput("NAME", false, values);
input3.setValue(Enumeration.value1);
assertEquals("value1", input3.getValue());
}
+
+ /**
+ * Test for sensitivity
+ */
+ @Test
+ public void testSensitivity() {
+ String[] values = { "value1", "value2" };
+ MEnumInput input1 = new MEnumInput("NAME", false, values);
+ MEnumInput input2 = new MEnumInput("NAME", true, values);
+ assertFalse(input1.isSensitive());
+ assertTrue(input2.isSensitive());
+ }
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMForm.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMForm.java b/common/src/test/java/org/apache/sqoop/model/TestMForm.java
index b7b1356..0bd55d9 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMForm.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMForm.java
@@ -50,15 +50,15 @@ public class TestMForm {
*/
@Test
public void testEquals() {
- MInput<Integer> input1 = new MIntegerInput("sqoopsqoop1");
- MInput<Integer> input2 = new MIntegerInput("sqoopsqoop2");
+ MInput<Integer> input1 = new MIntegerInput("sqoopsqoop1", false);
+ MInput<Integer> input2 = new MIntegerInput("sqoopsqoop2", false);
List<MInput<?>> list1 = new ArrayList<MInput<?>>();
list1.add(input1);
list1.add(input2);
MForm mform1 = new MForm("form", list1);
- MInput<Integer> input3 = new MIntegerInput("sqoopsqoop1");
- MInput<Integer> input4 = new MIntegerInput("sqoopsqoop2");
+ MInput<Integer> input3 = new MIntegerInput("sqoopsqoop1", false);
+ MInput<Integer> input4 = new MIntegerInput("sqoopsqoop2", false);
List<MInput<?>> list2 = new ArrayList<MInput<?>>();
list2.add(input3);
list2.add(input4);
@@ -68,10 +68,10 @@ public class TestMForm {
@Test
public void testGetInputs() {
- MIntegerInput intInput = new MIntegerInput("Form.A");
- MMapInput mapInput = new MMapInput("Form.B");
+ MIntegerInput intInput = new MIntegerInput("Form.A", false);
+ MMapInput mapInput = new MMapInput("Form.B", false);
MStringInput stringInput = new MStringInput("Form.C", false, (short)3);
- MEnumInput enumInput = new MEnumInput("Form.D", new String[] {"I", "V"});
+ MEnumInput enumInput = new MEnumInput("Form.D", false, new String[] {"I", "V"});
List<MInput<?>> inputs = new ArrayList<MInput<?>>();
inputs.add(intInput);
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMFormList.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMFormList.java b/common/src/test/java/org/apache/sqoop/model/TestMFormList.java
index 5f599eb..bd21fcb 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMFormList.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMFormList.java
@@ -33,8 +33,8 @@ public class TestMFormList {
public void testGetInputs() {
List<MForm> forms = new LinkedList<MForm>();
- MIntegerInput intInput = new MIntegerInput("Form1.A");
- MMapInput mapInput = new MMapInput("Form1.B");
+ MIntegerInput intInput = new MIntegerInput("Form1.A", false);
+ MMapInput mapInput = new MMapInput("Form1.B", false);
List<MInput<?>> inputs = new ArrayList<MInput<?>>();
inputs.add(intInput);
@@ -42,7 +42,7 @@ public class TestMFormList {
forms.add(new MForm("Form1", inputs));
MStringInput stringInput = new MStringInput("Form2.C", false, (short)3);
- MEnumInput enumInput = new MEnumInput("Form2.D", new String[] {"I", "V"});
+ MEnumInput enumInput = new MEnumInput("Form2.D", false, new String[] {"I", "V"});
inputs = new ArrayList<MInput<?>>();
inputs.add(stringInput);
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMIntegerInput.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMIntegerInput.java b/common/src/test/java/org/apache/sqoop/model/TestMIntegerInput.java
index 042158a..1f38e6d 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMIntegerInput.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMIntegerInput.java
@@ -33,7 +33,7 @@ public class TestMIntegerInput {
*/
@Test
public void testInitialization() {
- MIntegerInput input = new MIntegerInput("sqoopsqoop");
+ MIntegerInput input = new MIntegerInput("sqoopsqoop", false);
assertEquals("sqoopsqoop", input.getName());
assertEquals(MInputType.INTEGER, input.getType());
}
@@ -44,13 +44,13 @@ public class TestMIntegerInput {
@Test
public void testEquals() {
// Positive test
- MIntegerInput input1 = new MIntegerInput("sqoopsqoop");
- MIntegerInput input2 = new MIntegerInput("sqoopsqoop");
+ MIntegerInput input1 = new MIntegerInput("sqoopsqoop", false);
+ MIntegerInput input2 = new MIntegerInput("sqoopsqoop", false);
assertTrue(input1.equals(input2));
// Negative test
- MIntegerInput input3 = new MIntegerInput("sqoopsqoop");
- MIntegerInput input4 = new MIntegerInput("sqoopsqoop1");
+ MIntegerInput input3 = new MIntegerInput("sqoopsqoop", false);
+ MIntegerInput input4 = new MIntegerInput("sqoopsqoop1", false);
assertFalse(input3.equals(input4));
}
@@ -59,7 +59,7 @@ public class TestMIntegerInput {
*/
@Test
public void testValue() {
- MIntegerInput input1 = new MIntegerInput("sqoopsqoop");
+ MIntegerInput input1 = new MIntegerInput("sqoopsqoop", false);
input1.setValue(99);
assertEquals(new Integer(99), input1.getValue());
input1.setEmpty();
@@ -71,7 +71,7 @@ public class TestMIntegerInput {
*/
@Test
public void testUrlSafe() {
- MIntegerInput input1 = new MIntegerInput("sqoopsqoop");
+ MIntegerInput input1 = new MIntegerInput("sqoopsqoop", false);
input1.setValue(1001);
// Getting URL safe string
String tmp = input1.getUrlSafeValueString();
@@ -89,4 +89,15 @@ public class TestMIntegerInput {
assertEquals("sqoopsqoop.label", input1.getLabelKey());
assertEquals("sqoopsqoop.help", input1.getHelpKey());
}
+
+ /**
+ * Test for sensitivity
+ */
+ @Test
+ public void testSensitivity() {
+ MIntegerInput input1 = new MIntegerInput("NAME", false);
+ MIntegerInput input2 = new MIntegerInput("NAME", true);
+ assertFalse(input1.isSensitive());
+ assertTrue(input2.isSensitive());
+ }
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMMapInput.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMMapInput.java b/common/src/test/java/org/apache/sqoop/model/TestMMapInput.java
index 772f230..eb877cf 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMMapInput.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMMapInput.java
@@ -36,7 +36,7 @@ public class TestMMapInput {
*/
@Test
public void testInitialization() {
- MMapInput input = new MMapInput("sqoopsqoop");
+ MMapInput input = new MMapInput("sqoopsqoop", false);
assertEquals("sqoopsqoop", input.getName());
assertEquals(MInputType.MAP, input.getType());
}
@@ -47,13 +47,13 @@ public class TestMMapInput {
@Test
public void testEquals() {
// Positive test
- MMapInput input1 = new MMapInput("sqoopsqoop");
- MMapInput input2 = new MMapInput("sqoopsqoop");
+ MMapInput input1 = new MMapInput("sqoopsqoop", false);
+ MMapInput input2 = new MMapInput("sqoopsqoop", false);
assertTrue(input1.equals(input2));
// Negative test
- MMapInput input3 = new MMapInput("sqoopsqoop");
- MMapInput input4 = new MMapInput("sqoopsqoop1");
+ MMapInput input3 = new MMapInput("sqoopsqoop", false);
+ MMapInput input4 = new MMapInput("sqoopsqoop1", false);
assertFalse(input3.equals(input4));
}
@@ -62,7 +62,7 @@ public class TestMMapInput {
*/
@Test
public void testValue() {
- MMapInput input1 = new MMapInput("sqoopsqoop");
+ MMapInput input1 = new MMapInput("sqoopsqoop", false);
Map<String, String> map1 = new HashMap<String, String>();
input1.setValue(map1);
assertEquals(map1, input1.getValue());
@@ -75,7 +75,7 @@ public class TestMMapInput {
*/
@Test
public void testUrlSafe() {
- MMapInput input1 = new MMapInput("sqoopsqoop");
+ MMapInput input1 = new MMapInput("sqoopsqoop", false);
Map<String, String> map1 = new HashMap<String, String>();
input1.setValue(map1);
// Getting URL safe string
@@ -94,4 +94,15 @@ public class TestMMapInput {
assertEquals("sqoopsqoop.label", input1.getLabelKey());
assertEquals("sqoopsqoop.help", input1.getHelpKey());
}
+
+ /**
+ * Test for sensitivity
+ */
+ @Test
+ public void testSensitivity() {
+ MMapInput input1 = new MMapInput("NAME", false);
+ MMapInput input2 = new MMapInput("NAME", true);
+ assertFalse(input1.isSensitive());
+ assertTrue(input2.isSensitive());
+ }
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMNamedElement.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMNamedElement.java b/common/src/test/java/org/apache/sqoop/model/TestMNamedElement.java
index fa6b9ad..f336bab 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMNamedElement.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMNamedElement.java
@@ -31,7 +31,7 @@ public class TestMNamedElement {
*/
@Test
public void testInitialization() {
- MNamedElement named = new MIntegerInput("SQOOP");
+ MNamedElement named = new MIntegerInput("SQOOP", false);
assertEquals("SQOOP", named.getName());
assertEquals("SQOOP.label", named.getLabelKey());
assertEquals("SQOOP.help", named.getHelpKey());
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMStringInput.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMStringInput.java b/common/src/test/java/org/apache/sqoop/model/TestMStringInput.java
index 2ba9709..2fe0335 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMStringInput.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMStringInput.java
@@ -34,7 +34,7 @@ public class TestMStringInput {
short len = 6;
MStringInput input = new MStringInput("sqoopsqoop", true, len);
assertEquals("sqoopsqoop", input.getName());
- assertEquals(true, input.isMasked());
+ assertEquals(true, input.isSensitive());
assertEquals(len, input.getMaxLength());
assertEquals(MInputType.STRING, input.getType());
}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/common/src/test/java/org/apache/sqoop/model/TestMValidatedElement.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/model/TestMValidatedElement.java b/common/src/test/java/org/apache/sqoop/model/TestMValidatedElement.java
index 8d07521..3fd5a95 100644
--- a/common/src/test/java/org/apache/sqoop/model/TestMValidatedElement.java
+++ b/common/src/test/java/org/apache/sqoop/model/TestMValidatedElement.java
@@ -32,7 +32,7 @@ public class TestMValidatedElement {
*/
@Test
public void testInitialization() {
- MValidatedElement input = new MIntegerInput("input");
+ MValidatedElement input = new MIntegerInput("input", false);
assertEquals("input", input.getName());
assertEquals(Status.FINE, input.getValidationStatus());
}
@@ -42,7 +42,7 @@ public class TestMValidatedElement {
*/
@Test
public void testValidationMessageStatus() {
- MValidatedElement input = new MIntegerInput("input");
+ MValidatedElement input = new MIntegerInput("input", false);
// Default status
assertEquals(Status.FINE, input.getValidationStatus());
// Set status and user message
http://git-wip-us.apache.org/repos/asf/sqoop/blob/dd61adf6/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
----------------------------------------------------------------------
diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
index 8af86b7..486635d 100644
--- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
+++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
@@ -1369,13 +1369,12 @@ public class DerbyRepositoryHandler implements JdbcRepositoryHandler {
baseInputStmt.setLong(2, formId);
baseInputStmt.setShort(3, inputIndex++);
baseInputStmt.setString(4, input.getType().name());
+ baseInputStmt.setBoolean(5, input.isSensitive());
// String specific column(s)
if (input.getType().equals(MInputType.STRING)) {
MStringInput strInput = (MStringInput) input;
- baseInputStmt.setBoolean(5, strInput.isMasked());
baseInputStmt.setShort(6, strInput.getMaxLength());
} else {
- baseInputStmt.setNull(5, Types.BOOLEAN);
baseInputStmt.setNull(6, Types.INTEGER);
}
// Enum specific column(s)
@@ -1494,7 +1493,7 @@ public class DerbyRepositoryHandler implements JdbcRepositoryHandler {
long inputForm = rsetInput.getLong(3);
short inputIndex = rsetInput.getShort(4);
String inputType = rsetInput.getString(5);
- boolean inputStrMask = rsetInput.getBoolean(6);
+ boolean inputSensitivity = rsetInput.getBoolean(6);
short inputStrLength = rsetInput.getShort(7);
String inputEnumValues = rsetInput.getString(8);
String value = rsetInput.getString(9);
@@ -1504,16 +1503,16 @@ public class DerbyRepositoryHandler implements JdbcRepositoryHandler {
MInput input = null;
switch (mit) {
case STRING:
- input = new MStringInput(inputName, inputStrMask, inputStrLength);
+ input = new MStringInput(inputName, inputSensitivity, inputStrLength);
break;
case MAP:
- input = new MMapInput(inputName);
+ input = new MMapInput(inputName, inputSensitivity);
break;
case INTEGER:
- input = new MIntegerInput(inputName);
+ input = new MIntegerInput(inputName, inputSensitivity);
break;
case ENUM:
- input = new MEnumInput(inputName, inputEnumValues.split(","));
+ input = new MEnumInput(inputName, inputSensitivity, inputEnumValues.split(","));
break;
default:
throw new SqoopException(DerbyRepoError.DERBYREPO_0006,