Repository: sqoop Updated Branches: refs/heads/sqoop2 1d4d70ac2 -> d69bd34e0
http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/core/src/test/java/org/apache/sqoop/driver/TestDriverConfigUpgrader.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/sqoop/driver/TestDriverConfigUpgrader.java b/core/src/test/java/org/apache/sqoop/driver/TestDriverConfigUpgrader.java index 84020d6..ddafd19 100644 --- a/core/src/test/java/org/apache/sqoop/driver/TestDriverConfigUpgrader.java +++ b/core/src/test/java/org/apache/sqoop/driver/TestDriverConfigUpgrader.java @@ -21,6 +21,7 @@ package org.apache.sqoop.driver; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; +import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -32,6 +33,7 @@ import org.apache.sqoop.model.MDriverConfig; import org.apache.sqoop.model.MInput; import org.apache.sqoop.model.MIntegerInput; import org.apache.sqoop.model.MStringInput; +import org.apache.sqoop.model.MValidator; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -106,56 +108,73 @@ public class TestDriverConfigUpgrader { } MDriverConfig job() { - return new MDriverConfig(configs1()); + return new MDriverConfig(configs1(), validators1()); } MDriverConfig job1() { - return new MDriverConfig(configs1()); + return new MDriverConfig(configs1(), validators1()); } MDriverConfig job2() { - return new MDriverConfig(configs2()); + return new MDriverConfig(configs2(), validators2()); } MDriverConfig job3() { - return new MDriverConfig(configs3()); + return new MDriverConfig(configs3(), validators3()); } List<MConfig> configs1() { - List<MConfig> list = new LinkedList<MConfig>(); - list.add(new MConfig("f1", inputs1("f1"))); + List<MConfig> list = new LinkedList<>(); + list.add(new MConfig("f1", inputs1("f1"), Collections.EMPTY_LIST)); + return list; + } + + List<MValidator> validators1() { + List<MValidator> list = new LinkedList<>(); + list.add(new MValidator("testClass", "")); return list; } List<MInput<?>> inputs1(String formName) { List<MInput<?>> list = new LinkedList<MInput<?>>(); list.add(new MStringInput(formName + ".s1", false, InputEditable.ANY, StringUtils.EMPTY, - (short) 30)); + (short) 30, Collections.EMPTY_LIST)); list.add(new MStringInput(formName + ".s2", false, InputEditable.ANY, StringUtils.EMPTY, - (short) 30)); - list.add(new MIntegerInput(formName + ".i", false, InputEditable.ANY, StringUtils.EMPTY)); + (short) 30, Collections.EMPTY_LIST)); + list.add(new MIntegerInput(formName + ".i", false, InputEditable.ANY, StringUtils.EMPTY, Collections.EMPTY_LIST)); return list; } List<MConfig> configs2() { List<MConfig> list = new LinkedList<MConfig>(); - list.add(new MConfig("f1", inputs2("f1"))); + list.add(new MConfig("f1", inputs2("f1"), Collections.EMPTY_LIST)); + return list; + } + + List<MValidator> validators2() { + List<MValidator> list = new LinkedList<>(); + list.add(new MValidator("testClass2", "2")); return list; } List<MInput<?>> inputs2(String formName) { List<MInput<?>> list = new LinkedList<MInput<?>>(); list.add(new MStringInput(formName + ".s1", false, InputEditable.ANY, StringUtils.EMPTY, - (short) 30)); + (short) 30, Collections.EMPTY_LIST)); list.add(new MStringInput(formName + ".s2_", false, InputEditable.ANY, StringUtils.EMPTY, - (short) 30)); - list.add(new MIntegerInput(formName + ".i", false, InputEditable.ANY, StringUtils.EMPTY)); + (short) 30, Collections.EMPTY_LIST)); + list.add(new MIntegerInput(formName + ".i", false, InputEditable.ANY, StringUtils.EMPTY, Collections.EMPTY_LIST)); return list; } List<MConfig> configs3() { List<MConfig> list = new LinkedList<MConfig>(); - list.add(new MConfig("f2", inputs1("f2"))); + list.add(new MConfig("f2", inputs1("f2"), Collections.EMPTY_LIST)); + return list; + } + + List<MValidator> validators3() { + List<MValidator> list = new LinkedList<>(); return list; } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/core/src/test/java/org/apache/sqoop/repository/TestJdbcRepository.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/sqoop/repository/TestJdbcRepository.java b/core/src/test/java/org/apache/sqoop/repository/TestJdbcRepository.java index 1d630a9..78728f6 100644 --- a/core/src/test/java/org/apache/sqoop/repository/TestJdbcRepository.java +++ b/core/src/test/java/org/apache/sqoop/repository/TestJdbcRepository.java @@ -59,6 +59,7 @@ import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MLink; import org.apache.sqoop.model.MLinkConfig; import org.apache.sqoop.model.MToConfig; +import org.apache.sqoop.model.MValidator; import org.apache.sqoop.model.Validator; import org.apache.sqoop.validation.Status; import org.apache.sqoop.validation.validators.AbstractValidator; @@ -743,9 +744,9 @@ public class TestJdbcRepository { private MConnector connector(long connectorId, String version) { MConnector connector = new MConnector("A" + connectorId, "A" + connectorId, version + connectorId, - new MLinkConfig(new LinkedList<MConfig>()), - new MFromConfig(ConfigUtils.toConfigs(ValidConfiguration.class)), - new MToConfig(ConfigUtils.toConfigs(ValidConfiguration.class))); + new MLinkConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), + new MFromConfig(ConfigUtils.toConfigs(ValidConfiguration.class), ConfigUtils.getMValidatorsFromConfigurationClass(ValidConfiguration.class)), + new MToConfig(ConfigUtils.toConfigs(ValidConfiguration.class), ConfigUtils.getMValidatorsFromConfigurationClass(ValidConfiguration.class))); connector.setPersistenceId(connectorId); return connector; } @@ -755,7 +756,7 @@ public class TestJdbcRepository { } private MDriver driver() { - MDriver driver = new MDriver(new MDriverConfig(new LinkedList<MConfig>()), + MDriver driver = new MDriver(new MDriverConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), DriverBean.CURRENT_DRIVER_VERSION); driver.setPersistenceId(1); return driver; @@ -768,7 +769,7 @@ public class TestJdbcRepository { } private MLink link(long linkId, String linkName, long connectorId) { - MLink link = new MLink(connectorId, new MLinkConfig(new LinkedList<MConfig>())); + MLink link = new MLink(connectorId, new MLinkConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>())); link.setPersistenceId(linkId); link.setName(linkName); return link; @@ -776,9 +777,9 @@ public class TestJdbcRepository { private MJob job(long id, String jobName, long fromConnectorId, long toConnectorId, long fromLinkId, long toLinkId) { MJob job = new MJob(fromConnectorId, toConnectorId, fromLinkId, toLinkId, - new MFromConfig(new LinkedList<MConfig>()), - new MToConfig(new LinkedList<MConfig>()), - new MDriverConfig(new LinkedList<MConfig>())); + new MFromConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), + new MToConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), + new MDriverConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>())); job.setPersistenceId(id); job.setName(jobName); return job; http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java ---------------------------------------------------------------------- diff --git a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java index 79b9e99..d1ee320 100644 --- a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java +++ b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java @@ -25,6 +25,7 @@ import java.sql.Statement; import java.sql.Timestamp; import java.sql.Types; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; @@ -341,7 +342,7 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { List<MConfig> driverConfigs = new ArrayList<MConfig>(); loadDriverConfigs(driverConfigs, driverConfigFetchStmt, driverConfigInputFetchStmt, 1, conn); - mDriver = new MDriver(new MDriverConfig(driverConfigs), driverVersion); + mDriver = new MDriver(new MDriverConfig(driverConfigs, Collections.EMPTY_LIST), driverVersion); mDriver.setPersistenceId(driverId); } } catch (SQLException ex) { @@ -1491,13 +1492,13 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { MFromConfig fromJobConfig = null; MToConfig toJobConfig = null; if (supportedDirections.isDirectionSupported(Direction.FROM)) { - fromJobConfig = new MFromConfig(fromConfig); + fromJobConfig = new MFromConfig(fromConfig, Collections.EMPTY_LIST); } if (supportedDirections.isDirectionSupported(Direction.TO)) { - toJobConfig = new MToConfig(toConfig); + toJobConfig = new MToConfig(toConfig, Collections.EMPTY_LIST); } MConnector mc = new MConnector(connectorName, connectorClassName, connectorVersion, - new MLinkConfig(linkConfig), fromJobConfig, toJobConfig); + new MLinkConfig(linkConfig, Collections.EMPTY_LIST), fromJobConfig, toJobConfig); mc.setPersistenceId(connectorId); connectors.add(mc); @@ -1534,7 +1535,7 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { loadConnectorConfigs(connectorLinkConfig, fromConfig, toConfig, connectorConfigFetchStatement, connectorConfigInputStatement, 2, conn); - MLink link = new MLink(connectorId, new MLinkConfig(connectorLinkConfig)); + MLink link = new MLink(connectorId, new MLinkConfig(connectorLinkConfig, Collections.EMPTY_LIST)); link.setPersistenceId(id); link.setName(name); @@ -1649,9 +1650,9 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { MJob job = new MJob( fromConnectorId, toConnectorId, fromLinkId, toLinkId, - new MFromConfig(fromConnectorFromJobConfig), - new MToConfig(toConnectorToJobConfig), - new MDriverConfig(driverConfig)); + new MFromConfig(fromConnectorFromJobConfig, Collections.EMPTY_LIST), + new MToConfig(toConnectorToJobConfig, Collections.EMPTY_LIST), + new MDriverConfig(driverConfig, Collections.EMPTY_LIST)); job.setPersistenceId(id); job.setName(name); @@ -1724,9 +1725,9 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { MJob job = new MJob( fromConnectorId, toConnectorId, fromLinkId, toLinkId, - new MFromConfig(mFromConfig.getConfigs()), - new MToConfig(mToConfig.getConfigs()), - new MDriverConfig(driverConfig)); + new MFromConfig(mFromConfig.getConfigs(), Collections.EMPTY_LIST), + new MToConfig(mToConfig.getConfigs(), Collections.EMPTY_LIST), + new MDriverConfig(driverConfig, Collections.EMPTY_LIST)); job.setPersistenceId(id); job.setName(name); @@ -1969,7 +1970,7 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { int configIndex = rsetConfig.getInt(5); List<MInput<?>> configInputs = new ArrayList<MInput<?>>(); - MConfig mDriverConfig = new MConfig(configName, configInputs); + MConfig mDriverConfig = new MConfig(configName, configInputs, Collections.EMPTY_LIST); mDriverConfig.setPersistenceId(configId); inputFetchStmt.setLong(configPosition, configId); @@ -1995,28 +1996,28 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { MInput input = null; switch (mit) { case STRING: - input = new MStringInput(inputName, inputSensitivity, editableEnum, overrides, inputStrLength); + input = new MStringInput(inputName, inputSensitivity, editableEnum, overrides, inputStrLength, Collections.EMPTY_LIST); break; case MAP: - input = new MMapInput(inputName, inputSensitivity, editableEnum, overrides, StringUtils.EMPTY); + input = new MMapInput(inputName, inputSensitivity, editableEnum, overrides, StringUtils.EMPTY, Collections.EMPTY_LIST); break; case BOOLEAN: - input = new MBooleanInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MBooleanInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case INTEGER: - input = new MIntegerInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MIntegerInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case LONG: - input = new MLongInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MLongInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case ENUM: - input = new MEnumInput(inputName, inputSensitivity, editableEnum, overrides, inputEnumValues.split(",")); + input = new MEnumInput(inputName, inputSensitivity, editableEnum, overrides, inputEnumValues.split(","), Collections.EMPTY_LIST); break; case LIST: - input = new MListInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MListInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case DATETIME: - input = new MDateTimeInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MDateTimeInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; default: throw new SqoopException(CommonRepositoryError.COMMON_0003, @@ -2145,7 +2146,7 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { int configIndex = rsetConfig.getInt(5); List<MInput<?>> configInputs = new ArrayList<MInput<?>>(); - MConfig config = new MConfig(configName, configInputs); + MConfig config = new MConfig(configName, configInputs, Collections.EMPTY_LIST); config.setPersistenceId(configId); inputFetchStmt.setLong(configPosition, configId); @@ -2173,29 +2174,29 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler { switch (mit) { case STRING: input = new MStringInput(inputName, inputSensitivity, editableEnum, overrides, - inputStrLength); + inputStrLength, Collections.EMPTY_LIST); break; case MAP: - input = new MMapInput(inputName, inputSensitivity, editableEnum, overrides, StringUtils.EMPTY); + input = new MMapInput(inputName, inputSensitivity, editableEnum, overrides, StringUtils.EMPTY, Collections.EMPTY_LIST); break; case BOOLEAN: - input = new MBooleanInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MBooleanInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case INTEGER: - input = new MIntegerInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MIntegerInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case LONG: - input = new MLongInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MLongInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case ENUM: input = new MEnumInput(inputName, inputSensitivity, editableEnum, overrides, - inputEnumValues.split(",")); + inputEnumValues.split(","), Collections.EMPTY_LIST); break; case LIST: - input = new MListInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MListInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; case DATETIME: - input = new MDateTimeInput(inputName, inputSensitivity, editableEnum, overrides); + input = new MDateTimeInput(inputName, inputSensitivity, editableEnum, overrides, Collections.EMPTY_LIST); break; default: throw new SqoopException(CommonRepositoryError.COMMON_0003, "input-" + inputName + ":" http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java index ed176fe..e7b4322 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java @@ -31,6 +31,7 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import java.sql.*; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Properties; @@ -984,65 +985,65 @@ abstract public class DerbyTestCase { } protected MLinkConfig getLinkConfig() { - return new MLinkConfig(getConfigs("LINK1", "LINK2")); + return new MLinkConfig(getConfigs("LINK1", "LINK2"), Collections.EMPTY_LIST); } protected MFromConfig getFromConfig() { - return new MFromConfig(getConfigs("JOB3", "JOB4")); + return new MFromConfig(getConfigs("JOB3", "JOB4"), Collections.EMPTY_LIST); } protected MFromConfig getBadFromConfig() { - return new MFromConfig(getBadConfigs("FROM1", "FROM2")); + return new MFromConfig(getBadConfigs("FROM1", "FROM2"), Collections.EMPTY_LIST); } protected MFromConfig getMultipleOverridesFromConfig() { - return new MFromConfig(getMultipleOverrideConfigs("FROM1", "FROM2")); + return new MFromConfig(getMultipleOverrideConfigs("FROM1", "FROM2"), Collections.EMPTY_LIST); } protected MFromConfig getNonExistentOverridesFromConfig() { - return new MFromConfig(getBadConfigsWithNonExistingInputOverrides("FROM1", "FROM2")); + return new MFromConfig(getBadConfigsWithNonExistingInputOverrides("FROM1", "FROM2"), Collections.EMPTY_LIST); } protected MToConfig getToConfig() { - return new MToConfig(getConfigs("JOB5", "JOB6")); + return new MToConfig(getConfigs("JOB5", "JOB6"), Collections.EMPTY_LIST); } protected MDriverConfig getDriverConfig() { - return new MDriverConfig(getConfigs("DRIVER1", "DRIVER2")); + return new MDriverConfig(getConfigs("DRIVER1", "DRIVER2"), Collections.EMPTY_LIST); } protected MDriverConfig getBadDriverConfig() { - return new MDriverConfig(getBadConfigsWithSelfOverrides("DRIVER1", "DRIVER2")); + return new MDriverConfig(getBadConfigsWithSelfOverrides("DRIVER1", "DRIVER2"), Collections.EMPTY_LIST); } protected List<MConfig> getConfigs(String configName1, String configName2) { List<MConfig> configs = new LinkedList<MConfig>(); List<MInput<?>> inputs = new LinkedList<MInput<?>>(); - MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30); + MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1"); + input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30); + input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1"); + input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } @@ -1052,30 +1053,30 @@ abstract public class DerbyTestCase { List<MInput<?>> inputs = new LinkedList<MInput<?>>(); // I1 overrides another user_only attribute, hence a bad config - MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I4", (short) 30); + MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I4", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1"); + input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30); + input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1"); + input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } @@ -1085,30 +1086,30 @@ abstract public class DerbyTestCase { List<MInput<?>> inputs = new LinkedList<MInput<?>>(); // I1 overrides another user_only attribute, hence a bad config - MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I4", (short) 30); + MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I4", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1"); + input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, configName1 + ".I4"); + input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, configName1 + ".I4", Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30); + input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1"); + input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } @@ -1117,30 +1118,30 @@ abstract public class DerbyTestCase { List<MConfig> configs = new LinkedList<MConfig>(); List<MInput<?>> inputs = new LinkedList<MInput<?>>(); - MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30); + MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I1," + configName1 + ".I3", StringUtils.EMPTY); + input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".I1," + configName1 + ".I3", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1"); + input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30); + input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1"); + input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } @@ -1151,30 +1152,30 @@ abstract public class DerbyTestCase { List<MInput<?>> inputs = new LinkedList<MInput<?>>(); // I2 overrides a nonexistant input - MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30); + MInput input = new MStringInput(configName1 + ".I1", false, InputEditable.USER_ONLY, configName1 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".FOO", StringUtils.EMPTY); + input = new MMapInput(configName1 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName1 + ".FOO", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1"); + input = new MIntegerInput(configName1 + ".I3", false, InputEditable.ANY, configName1 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName1 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName1 + ".I5", false, InputEditable.ANY, configName1 + ".I4," + configName1 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30); + input = new MStringInput(configName2 + ".I1", false, InputEditable.USER_ONLY, configName2 + ".I2", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY); + input = new MMapInput(configName2 + ".I2", false, InputEditable.CONNECTOR_ONLY, configName2 + ".I5", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1"); + input = new MIntegerInput(configName2 + ".I3", false, InputEditable.ANY, configName2 + ".I1", Collections.EMPTY_LIST); inputs.add(input); - input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY); + input = new MBooleanInput(configName2 + ".I4", false, InputEditable.USER_ONLY, StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}); + input = new MEnumInput(configName2 + ".I5", false, InputEditable.ANY, configName2 + ".I4," + configName2 + ".I3", new String[] {"YES", "NO"}, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/repository/repository-mysql/src/test/java/org/apache/sqoop/integration/repository/mysql/MySqlTestCase.java ---------------------------------------------------------------------- diff --git a/repository/repository-mysql/src/test/java/org/apache/sqoop/integration/repository/mysql/MySqlTestCase.java b/repository/repository-mysql/src/test/java/org/apache/sqoop/integration/repository/mysql/MySqlTestCase.java index 44f968a..fcd4b71 100644 --- a/repository/repository-mysql/src/test/java/org/apache/sqoop/integration/repository/mysql/MySqlTestCase.java +++ b/repository/repository-mysql/src/test/java/org/apache/sqoop/integration/repository/mysql/MySqlTestCase.java @@ -17,6 +17,7 @@ */ package org.apache.sqoop.integration.repository.mysql; +import java.util.Collections; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -148,19 +149,19 @@ abstract public class MySqlTestCase extends TestCase { } protected MLinkConfig getLinkConfig() { - return new MLinkConfig(getConfigs("l1", "l2")); + return new MLinkConfig(getConfigs("l1", "l2"), Collections.EMPTY_LIST); } protected MFromConfig getFromConfig() { - return new MFromConfig(getConfigs("from1", "from2")); + return new MFromConfig(getConfigs("from1", "from2"), Collections.EMPTY_LIST); } protected MToConfig getToConfig() { - return new MToConfig(getConfigs("to1", "to2")); + return new MToConfig(getConfigs("to1", "to2"), Collections.EMPTY_LIST); } protected MDriverConfig getDriverConfig() { - return new MDriverConfig(getConfigs("d1", "d2")); + return new MDriverConfig(getConfigs("d1", "d2"), Collections.EMPTY_LIST); } protected List<MConfig> getConfigs(String configName1, String configName2) { @@ -168,18 +169,18 @@ abstract public class MySqlTestCase extends TestCase { List<MInput<?>> inputs = new LinkedList<MInput<?>>(); MInput<?> input = new MStringInput("I1", false, InputEditable.ANY, - StringUtils.EMPTY, (short) 30); + StringUtils.EMPTY, (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput("I2", false, InputEditable.ANY, "I1", StringUtils.EMPTY); + input = new MMapInput("I2", false, InputEditable.ANY, "I1", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput("I3", false, InputEditable.ANY, "I4", (short) 30); + input = new MStringInput("I3", false, InputEditable.ANY, "I4", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput("I4", false, InputEditable.ANY, "I3", StringUtils.EMPTY); + input = new MMapInput("I4", false, InputEditable.ANY, "I3", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/repository/repository-postgresql/src/test/java/org/apache/sqoop/integration/repository/postgresql/PostgresqlTestCase.java ---------------------------------------------------------------------- diff --git a/repository/repository-postgresql/src/test/java/org/apache/sqoop/integration/repository/postgresql/PostgresqlTestCase.java b/repository/repository-postgresql/src/test/java/org/apache/sqoop/integration/repository/postgresql/PostgresqlTestCase.java index faa0399..fbaf5dd 100644 --- a/repository/repository-postgresql/src/test/java/org/apache/sqoop/integration/repository/postgresql/PostgresqlTestCase.java +++ b/repository/repository-postgresql/src/test/java/org/apache/sqoop/integration/repository/postgresql/PostgresqlTestCase.java @@ -31,6 +31,7 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; +import java.util.Collections; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -130,37 +131,37 @@ abstract public class PostgresqlTestCase { } protected MLinkConfig getLinkConfig() { - return new MLinkConfig(getConfigs("l1", "l2")); + return new MLinkConfig(getConfigs("l1", "l2"), Collections.EMPTY_LIST); } protected MFromConfig getFromConfig() { - return new MFromConfig(getConfigs("from1", "from2")); + return new MFromConfig(getConfigs("from1", "from2"), Collections.EMPTY_LIST); } protected MToConfig getToConfig() { - return new MToConfig(getConfigs("to1", "to2")); + return new MToConfig(getConfigs("to1", "to2"), Collections.EMPTY_LIST); } protected MDriverConfig getDriverConfig() { - return new MDriverConfig(getConfigs("d1", "d2")); + return new MDriverConfig(getConfigs("d1", "d2"), Collections.EMPTY_LIST); } protected List<MConfig> getConfigs(String configName1, String configName2) { List<MConfig> configs = new LinkedList<MConfig>(); List<MInput<?>> inputs = new LinkedList<MInput<?>>(); - MInput<?> input = new MStringInput("I1", false, InputEditable.ANY, StringUtils.EMPTY, (short) 30); + MInput<?> input = new MStringInput("I1", false, InputEditable.ANY, StringUtils.EMPTY, (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput("I2", false, InputEditable.ANY, "I1", StringUtils.EMPTY); + input = new MMapInput("I2", false, InputEditable.ANY, "I1", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName1, inputs)); + configs.add(new MConfig(configName1, inputs, Collections.EMPTY_LIST)); inputs = new LinkedList<MInput<?>>(); - input = new MStringInput("I3", false, InputEditable.ANY, "I4", (short) 30); + input = new MStringInput("I3", false, InputEditable.ANY, "I4", (short) 30, Collections.EMPTY_LIST); inputs.add(input); - input = new MMapInput("I4", false, InputEditable.ANY, "I3", StringUtils.EMPTY); + input = new MMapInput("I4", false, InputEditable.ANY, "I3", StringUtils.EMPTY, Collections.EMPTY_LIST); inputs.add(input); - configs.add(new MConfig(configName2, inputs)); + configs.add(new MConfig(configName2, inputs, Collections.EMPTY_LIST)); return configs; } http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/shell/src/main/java/org/apache/sqoop/shell/utils/ConfigFiller.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/utils/ConfigFiller.java b/shell/src/main/java/org/apache/sqoop/shell/utils/ConfigFiller.java index 2dbde97..852330e 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/utils/ConfigFiller.java +++ b/shell/src/main/java/org/apache/sqoop/shell/utils/ConfigFiller.java @@ -42,6 +42,7 @@ import org.apache.sqoop.validation.Status; import org.joda.time.DateTime; import java.io.IOException; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -59,7 +60,7 @@ public final class ConfigFiller { * Internal input that will be reused for loading names for link and * job objects. */ - private static MStringInput nameInput = new MStringInput("object-name", false, InputEditable.ANY, StringUtils.EMPTY, (short)25); + private static MStringInput nameInput = new MStringInput("object-name", false, InputEditable.ANY, StringUtils.EMPTY, (short)25, Collections.EMPTY_LIST); /** * Fill job object based on CLI options. http://git-wip-us.apache.org/repos/asf/sqoop/blob/d69bd34e/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java ---------------------------------------------------------------------- diff --git a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java index 244683d..2ac8ce8 100644 --- a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java +++ b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java @@ -59,6 +59,7 @@ import org.apache.sqoop.model.MLinkConfig; import org.apache.sqoop.model.MPersistableEntity; import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.model.MToConfig; +import org.apache.sqoop.model.MValidator; import org.apache.sqoop.repository.Repository; import org.apache.sqoop.repository.RepositoryManager; import org.apache.sqoop.tools.ConfiguredTool; @@ -273,7 +274,8 @@ public class RepositoryLoadTool extends ConfiguredTool { ConnectorConfigurableUpgrader connectorConfigUpgrader = ConnectorManager.getInstance().getSqoopConnector(mConnector.getUniqueName()).getConfigurableUpgrader(); List<MConfig> connectorConfigs = mConnector.getLinkConfig().clone(false).getConfigs(); - MLinkConfig newLinkConfigs = new MLinkConfig(connectorConfigs); + List<MValidator> connectorValidators = mConnector.getLinkConfig().getCloneOfValidators(); + MLinkConfig newLinkConfigs = new MLinkConfig(connectorConfigs, connectorValidators); // upgrading the configs to make sure they match the current repository connectorConfigUpgrader.upgradeLinkConfig(link.getConnectorLinkConfig(), newLinkConfigs);
