diff --git a/pom.xml b/pom.xml
index b2259cf3..3449a6f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -257,6 +257,11 @@ limitations under the License.
sqoop-common
${project.version}
+
+ org.apache.sqoop
+ sqoop-common-test
+ ${project.version}
+
org.apache.sqoop
sqoop-core
@@ -470,6 +475,7 @@ limitations under the License.
common
+ common-test
spi
core
repository
diff --git a/test/pom.xml b/test/pom.xml
index 7a807106..956aeb72 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -35,6 +35,11 @@ limitations under the License.
junit
+
+ org.apache.sqoop
+ sqoop-common-test
+
+
org.apache.sqoop
sqoop-core
diff --git a/test/src/main/java/org/apache/sqoop/test/asserts/ProviderAsserts.java b/test/src/main/java/org/apache/sqoop/test/asserts/ProviderAsserts.java
deleted file mode 100644
index 364f86d2..00000000
--- a/test/src/main/java/org/apache/sqoop/test/asserts/ProviderAsserts.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.asserts;
-
-import org.apache.sqoop.test.db.DatabaseProvider;
-import org.apache.log4j.Logger;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-/**
- * Database provider related asserts.
- */
-public class ProviderAsserts {
-
- private static final Logger LOG = Logger.getLogger(ProviderAsserts.class);
-
- /**
- * Assert row in the table.
- *
- * @param provider Provider that should be used to query the database
- * @param tableName Table name
- * @param conditions Conditions for identifying the row
- * @param values Values that should be present in the table
- */
- public static void assertRow(DatabaseProvider provider, String tableName, Object []conditions, Object ...values) {
- ResultSet rs = null;
- try {
- rs = provider.getRows(tableName, conditions);
-
- if(! rs.next()) {
- fail("No rows found.");
- }
-
- int i = 1;
- for(Object expectedValue : values) {
- Object actualValue = rs.getObject(i);
- assertEquals("Columns do not match on position: " + i, expectedValue, actualValue);
- i++;
- }
-
- if(rs.next()) {
- fail("Found more than one row.");
- }
- } catch (SQLException e) {
- LOG.error("Unexpected SQLException", e);
- fail("Unexpected SQLException: " + e);
- } finally {
- provider.closeResultSetWithStatement(rs);
- }
- }
-
- private ProviderAsserts() {
- // Instantiation is prohibited
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/data/Cities.java b/test/src/main/java/org/apache/sqoop/test/data/Cities.java
index fb9be13f..1e90c59d 100644
--- a/test/src/main/java/org/apache/sqoop/test/data/Cities.java
+++ b/test/src/main/java/org/apache/sqoop/test/data/Cities.java
@@ -17,7 +17,7 @@
*/
package org.apache.sqoop.test.data;
-import org.apache.sqoop.test.db.DatabaseProvider;
+import org.apache.sqoop.common.test.db.DatabaseProvider;
/**
* Simple listing of few world's cities to do basic sanity tests.
diff --git a/test/src/main/java/org/apache/sqoop/test/data/DataSet.java b/test/src/main/java/org/apache/sqoop/test/data/DataSet.java
index 69994084..06f386e6 100644
--- a/test/src/main/java/org/apache/sqoop/test/data/DataSet.java
+++ b/test/src/main/java/org/apache/sqoop/test/data/DataSet.java
@@ -17,7 +17,7 @@
*/
package org.apache.sqoop.test.data;
-import org.apache.sqoop.test.db.DatabaseProvider;
+import org.apache.sqoop.common.test.db.DatabaseProvider;
/**
* Abstract class for basic testing data sets.
diff --git a/test/src/main/java/org/apache/sqoop/test/data/UbuntuReleases.java b/test/src/main/java/org/apache/sqoop/test/data/UbuntuReleases.java
index a4730c23..79796860 100644
--- a/test/src/main/java/org/apache/sqoop/test/data/UbuntuReleases.java
+++ b/test/src/main/java/org/apache/sqoop/test/data/UbuntuReleases.java
@@ -17,7 +17,7 @@
*/
package org.apache.sqoop.test.data;
-import org.apache.sqoop.test.db.DatabaseProvider;
+import org.apache.sqoop.common.test.db.DatabaseProvider;
/**
* Releases of Ubuntu Linux.
diff --git a/test/src/main/java/org/apache/sqoop/test/db/DatabaseProvider.java b/test/src/main/java/org/apache/sqoop/test/db/DatabaseProvider.java
deleted file mode 100644
index 3ebdd5ed..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/DatabaseProvider.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Database provider for testing purpose.
- *
- * Provider contains all methods needed to bootstrap and run the tests on remote
- * databases. This is abstract implementation that is database agnostic. Each
- * supported database server have it's own concrete implementation that fills
- * the gaps in database differences.
- */
-abstract public class DatabaseProvider {
-
- private static final Logger LOG = Logger.getLogger(DatabaseProvider.class);
-
- /**
- * Internal connection to the database.
- */
- private Connection databaseConnection;
-
- /**
- * JDBC Url to the remote database system.
- *
- * This will be passed to the Sqoop2 server during tests.
- *
- * @return String
- */
- abstract public String getConnectionUrl();
-
- /**
- * Connection username.
- *
- * This will be passed to the Sqoop2 server during tests.
- *
- * @return String
- */
- abstract public String getConnectionUsername();
-
- /**
- * Connection password.
- *
- * This will be passed to the Sqoop2 server during tests.
- *
- * @return String
- */
- abstract public String getConnectionPassword();
-
- /**
- * Escape column name based on specific database requirements.
- *
- * @param columnName Column name
- * @return Escaped column name
- */
- abstract public String escapeColumnName(String columnName);
-
- /**
- * Escape table name based on specific database requirements.
- *
- * @param tableName Table name
- * @return Escaped table name
- */
- abstract public String escapeTableName(String tableName);
-
- /**
- * Escape string value that can be safely used in the queries.
- *
- * @param value String value
- * @return Escaped string value
- */
- abstract public String escapeValueString(String value);
-
- /**
- * String constant that can be used to denote null (unknown) value.
- *
- * @return String encoding null value
- */
- public String nullConstant() {
- return "NULL";
- }
-
- /**
- * True if the underlying database supports custom schemes (namespaces).
- *
- * @return
- */
- public boolean isSupportingScheme() {
- return false;
- }
-
- public String getJdbcDriver() {
- return null;
- }
-
- /**
- * Start the handler.
- */
- public void start() {
- if(getJdbcDriver() != null) {
- loadClass(getJdbcDriver());
- }
-
- // Create connection to the database server
- try {
- setConnection(DriverManager.getConnection(getConnectionUrl(), getConnectionUsername(), getConnectionPassword()));
- } catch (SQLException e) {
- LOG.error("Can't create connection", e);
- throw new RuntimeException("Can't create connection", e);
- }
- }
-
- /**
- * Stop the handler.
- */
- public void stop() {
- // Close connection to the database server
- if(databaseConnection != null) {
- try {
- databaseConnection.close();
- } catch (SQLException e) {
- LOG.info("Ignored exception on closing connection", e);
- }
- }
- }
-
- /**
- * Return connection to the database.
- *
- * @return
- */
- public Connection getConnection() {
- return databaseConnection;
- }
-
- /**
- * Set connection to a new object.
- *
- * @param connection New connection object
- */
- protected void setConnection(Connection connection) {
- databaseConnection = connection;
- }
-
- /**
- * Execute DDL or DML query.
- *
- * This method will throw RuntimeException on failure.
- *
- * @param query DDL or DML query.
- */
- public void executeUpdate(String query) {
- LOG.info("Executing query: " + query);
- Statement stmt = null;
-
- try {
- stmt = databaseConnection.createStatement();
- stmt.executeUpdate(query);
- } catch (SQLException e) {
- LOG.error("Error in executing query", e);
- throw new RuntimeException("Error in executing query", e);
- } finally {
- try {
- if(stmt != null) {
- stmt.close();
- }
- } catch (SQLException e) {
- LOG.info("Cant' close statement", e);
- }
- }
- }
-
- /**
- * Execute given query in a new statement object and return corresponding
- * result set. Caller is responsible for closing both ResultSet and Statement
- * object!
- *
- * @param query Query to execute
- * @return Generated ResultSet
- */
- public ResultSet executeQuery(String query) {
- LOG.info("Executing query: " + query);
- Statement stmt = null;
-
- try {
- stmt = databaseConnection.createStatement();
- return stmt.executeQuery(query);
- } catch (SQLException e) {
- LOG.error("Error in executing query", e);
- throw new RuntimeException("Error in executing query", e);
- }
- }
-
- /**
- * Create new table.
- *
- * @param name Table name
- * @param primaryKey Primary key column(0) or null if table should not have any
- * @param columns List of double values column name and value for example ... "id", "varchar(50)"...
- */
- public void createTable(String name, String primaryKey, String ...columns) {
- // Columns are in form of two strings - name and type
- if(columns.length == 0 || columns.length % 2 != 0) {
- throw new RuntimeException("Incorrect number of parameters.");
- }
-
- // Drop the table in case that it already exists
- dropTable(name);
-
- StringBuilder sb = new StringBuilder("CREATE TABLE ");
- sb.append(escapeTableName(name)).append("(");
-
- // Column list
- List columnList = new LinkedList();
- for(int i = 0; i < columns.length; i += 2) {
- String column = escapeColumnName(columns[i]) + " " + columns[i + 1];
- columnList.add(column);
- }
- sb.append(StringUtils.join(columnList, ", "));
-
- if(primaryKey != null) {
- sb.append(", PRIMARY KEY(").append(escapeColumnName(primaryKey)).append(")");
- }
-
- sb.append(")");
-
- executeUpdate(sb.toString());
- }
-
- /**
- * Insert new row into the table.
- *
- * @param tableName Table name
- * @param values List of objects that should be inserted
- */
- public void insertRow(String tableName, Object ...values) {
- StringBuilder sb = new StringBuilder("INSERT INTO ");
- sb.append(escapeTableName(tableName));
- sb.append(" VALUES (");
-
- List valueList = new LinkedList();
- for(Object value : values) {
- valueList.add(convertObjectToQueryString(value));
- }
-
- sb.append(StringUtils.join(valueList, ", "));
- sb.append(")");
-
- executeUpdate(sb.toString());
- }
-
- /**
- * Return rows that match given conditions.
- *
- * @param tableName Table name
- * @param conditions Conditions in form of double values - column name and value, for example: "id", 1 or "last_update_date", null
- * @return ResultSet with given criteria
- */
- public ResultSet getRows(String tableName, Object []conditions) {
- // Columns are in form of two strings - name and value
- if(conditions.length % 2 != 0) {
- throw new RuntimeException("Incorrect number of parameters.");
- }
-
- StringBuilder sb = new StringBuilder("SELECT * FROM ");
- sb.append(escapeTableName(tableName));
-
- List conditionList = new LinkedList();
- for(int i = 0; i < conditions.length; i += 2) {
- Object columnName = conditions[i];
- Object value = conditions[i + 1];
-
- if( !(columnName instanceof String)) {
- throw new RuntimeException("Each odd item should be a string with column name.");
- }
-
- if(value == null) {
- conditionList.add(escapeColumnName((String) columnName) + " IS NULL");
- } else {
- conditionList.add(escapeColumnName((String) columnName) + " = " + convertObjectToQueryString(value));
- }
- }
-
- if(conditionList.size() != 0) {
- sb.append(" WHERE ").append(StringUtils.join(conditionList, " AND "));
- }
-
- return executeQuery(sb.toString());
- }
-
- /**
- * Convert given object to it's representation that can be safely used inside
- * query.
- *
- * @param value Value to convert
- * @return Query safe string representation
- */
- public String convertObjectToQueryString(Object value) {
- if(value == null) {
- return nullConstant();
- } else if(value.getClass() == String.class) {
- return escapeValueString((String)value);
- } else {
- return value.toString();
- }
- }
-
- /**
- * Drop table.
- *
- * Any exceptions will be ignored.
- *
- * @param tableName
- */
- public void dropTable(String tableName) {
- StringBuilder sb = new StringBuilder("DROP TABLE ");
- sb.append(escapeTableName(tableName));
-
- try {
- executeUpdate(sb.toString());
- } catch(RuntimeException e) {
- LOG.info("Ignoring exception: " + e);
- }
- }
-
- /**
- * Return number of rows from given table.
- *
- * @param tableName Table name
- * @return Number of rows
- */
- public long rowCount(String tableName) {
- StringBuilder sb = new StringBuilder("SELECT COUNT(*) FROM ");
- sb.append(escapeTableName(tableName));
-
- ResultSet rs = null;
- try {
- rs = executeQuery(sb.toString());
- if(!rs.next()) {
- throw new RuntimeException("Row count query did not returned any rows.");
- }
-
- return rs.getLong(1);
- } catch (SQLException e) {
- LOG.error("Can't get number of rows: ", e);
- throw new RuntimeException("Can't get number of rows: ", e);
- } finally {
- closeResultSetWithStatement(rs);
- }
- }
-
- /**
- * Close given result set (if not null) and associated statement.
- *
- * @param rs ResultSet to close.
- */
- public void closeResultSetWithStatement(ResultSet rs) {
- if(rs != null) {
- try {
- Statement stmt = rs.getStatement();
- rs.close();
- stmt.close();
- } catch (SQLException e) {
- LOG.info("Ignoring exception: ", e);
- }
- }
- }
-
- /**
- * Load class.
- *
- * @param className Class name
- */
- public void loadClass(String className) {
- try {
- Class.forName(className);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException("Class not found: " + className, e);
- }
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/DatabaseProviderFactory.java b/test/src/main/java/org/apache/sqoop/test/db/DatabaseProviderFactory.java
deleted file mode 100644
index 330863a6..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/DatabaseProviderFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-import java.util.Properties;
-
-/**
- * Create database provider.
- */
-public class DatabaseProviderFactory {
-
- public static final String PROVIDER_PROPERTY = "sqoop.provider.class";
-
- public static DatabaseProvider getProvider(Properties properties) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
- String className = properties.getProperty(PROVIDER_PROPERTY);
- if(className == null) {
- return new DerbyProvider();
- }
-
- Class> klass = Class.forName(className);
- return (DatabaseProvider)klass.newInstance();
- }
-
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/DerbyProvider.java b/test/src/main/java/org/apache/sqoop/test/db/DerbyProvider.java
deleted file mode 100644
index 98e83ce4..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/DerbyProvider.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-import org.apache.log4j.Logger;
-import org.apache.derby.drda.NetworkServerControl;
-
-import java.net.InetAddress;
-
-/**
- * Implementation of database provider that is based on embedded derby server.
- *
- * This provider will work out of the box without any extra configuration.
- */
-public class DerbyProvider extends DatabaseProvider {
-
- private static final Logger LOG = Logger.getLogger(DerbyProvider.class);
-
- public static final String DRIVER = "org.apache.derby.jdbc.ClientDriver";
-
- NetworkServerControl server = null;
-
- @Override
- public void start() {
- // Start embedded server
- try {
- server = new NetworkServerControl(InetAddress.getByName("localhost"), 1527);
- server.start(null);
- } catch (Exception e) {
- LOG.error("Can't start Derby network server", e);
- throw new RuntimeException("Can't derby server", e);
- }
-
- super.start();
- }
-
- @Override
- public void stop() {
- super.stop();
-
- // Shutdown embedded server
- try {
- server.shutdown();
- } catch (Exception e) {
- LOG.info("Can't shut down embedded server", e);
- }
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escape(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escape(tableName);
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public boolean isSupportingScheme() {
- return true;
- }
-
- public String escape(String entity) {
- return "\"" + entity + "\"";
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-
- @Override
- public String getConnectionUrl() {
- return "jdbc:derby://localhost:1527/memory:sqoop;create=true";
- }
-
- @Override
- public String getConnectionUsername() {
- return null;
- }
-
- @Override
- public String getConnectionPassword() {
- return null;
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/MySQLProvider.java b/test/src/main/java/org/apache/sqoop/test/db/MySQLProvider.java
deleted file mode 100644
index 4f21935a..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/MySQLProvider.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * MySQL Provider that will connect to remote MySQL server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class MySQLProvider extends DatabaseProvider {
-
- public static final String DRIVER = "com.mysql.jdbc.Driver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.mysql.jdbc",
- "jdbc:mysql://localhost/test"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.mysql.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.mysql.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escape(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escape(tableName);
- }
-
- @Override
- public String escapeValueString(String value) {
- return "\"" + value + "\"";
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-
- public String escape(String entity) {
- return "`" + entity + "`";
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/NetezzaProvider.java b/test/src/main/java/org/apache/sqoop/test/db/NetezzaProvider.java
deleted file mode 100644
index 4e5bb0d3..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/NetezzaProvider.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * Netezza Provider that will connect to remote Netezza server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class NetezzaProvider extends DatabaseProvider {
-
- public static final String DRIVER = "org.netezza.Driver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.netezza.jdbc",
- "jdbc:netezza://localhost/test"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.netezza.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.netezza.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escapeObjectName(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escapeObjectName(tableName);
- }
-
- public String escapeObjectName(String name) {
- return '"' + name + '"';
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/OracleProvider.java b/test/src/main/java/org/apache/sqoop/test/db/OracleProvider.java
deleted file mode 100644
index 5a55c851..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/OracleProvider.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * Oracle Provider that will connect to remote Oracle server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class OracleProvider extends DatabaseProvider {
-
- public static final String DRIVER = "oracle.jdbc.OracleDriver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.oracle.jdbc",
- "jdbc:oracle:thin:@//localhost/xe"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.oracle.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.oracle.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escape(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escape(tableName);
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-
- public String escape(String entity) {
- return "\"" + entity + "\"";
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/PostgreSQLProvider.java b/test/src/main/java/org/apache/sqoop/test/db/PostgreSQLProvider.java
deleted file mode 100644
index 06156c43..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/PostgreSQLProvider.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * PostgreSQL Provider that will connect to remote PostgreSQL server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class PostgreSQLProvider extends DatabaseProvider {
-
- public static final String DRIVER = "org.postgresql.Driver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.postgresql.jdbc",
- "jdbc:postgresql://localhost/test"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.postgresql.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.postgresql.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escape(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escape(tableName);
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public boolean isSupportingScheme() {
- return true;
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-
- public String escape(String entity) {
- return "\"" + entity + "\"";
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/SqlServerProvider.java b/test/src/main/java/org/apache/sqoop/test/db/SqlServerProvider.java
deleted file mode 100644
index 327c05ef..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/SqlServerProvider.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * Oracle Provider that will connect to remote Oracle server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class SqlServerProvider extends DatabaseProvider {
-
- public static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.sqlserver.jdbc",
- "jdbc:sqlserver://localhost"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.sqlserver.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.sqlserver.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return escape(columnName);
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return escape(tableName);
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public boolean isSupportingScheme() {
- return true;
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-
- public String escape(String entity) {
- return "[" + entity + "]";
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/db/TeradataProvider.java b/test/src/main/java/org/apache/sqoop/test/db/TeradataProvider.java
deleted file mode 100644
index a66823e7..00000000
--- a/test/src/main/java/org/apache/sqoop/test/db/TeradataProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sqoop.test.db;
-
-/**
- * Teradata Provider that will connect to remote Teradata server.
- *
- * JDBC can be configured via system properties. Default value is server running
- * on the same box (localhost) that is access via sqoop/sqoop credentials.
- */
-public class TeradataProvider extends DatabaseProvider {
-
- public static final String DRIVER = "com.teradata.jdbc.TeraDriver";
-
- private static final String CONNECTION = System.getProperties().getProperty(
- "sqoop.provider.teradata.jdbc",
- "jdbc:teradata://localhost/test"
- );
-
- private static final String USERNAME = System.getProperties().getProperty(
- "sqoop.provider.teradata.username",
- "sqoop"
- );
-
- private static final String PASSWORD = System.getProperties().getProperty(
- "sqoop.provider.teradata.password",
- "sqoop"
- );
-
- @Override
- public String getConnectionUrl() {
- return CONNECTION;
- }
-
- @Override
- public String getConnectionUsername() {
- return USERNAME;
- }
-
- @Override
- public String getConnectionPassword() {
- return PASSWORD;
- }
-
- @Override
- public String escapeColumnName(String columnName) {
- return columnName;
- }
-
- @Override
- public String escapeTableName(String tableName) {
- return tableName;
- }
-
- @Override
- public String escapeValueString(String value) {
- return "'" + value + "'";
- }
-
- @Override
- public String getJdbcDriver() {
- return DRIVER;
- }
-}
diff --git a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
index af31769e..06462a33 100644
--- a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
+++ b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
@@ -25,17 +25,17 @@
import org.apache.log4j.Logger;
import org.apache.sqoop.client.SubmissionCallback;
import org.apache.sqoop.common.Direction;
+import org.apache.sqoop.common.test.asserts.ProviderAsserts;
+import org.apache.sqoop.common.test.db.DatabaseProvider;
+import org.apache.sqoop.common.test.db.DatabaseProviderFactory;
import org.apache.sqoop.connector.hdfs.configuration.ToFormat;
import org.apache.sqoop.model.MConfigList;
import org.apache.sqoop.model.MJob;
import org.apache.sqoop.model.MLink;
import org.apache.sqoop.model.MPersistableEntity;
import org.apache.sqoop.model.MSubmission;
-import org.apache.sqoop.test.asserts.ProviderAsserts;
import org.apache.sqoop.test.data.Cities;
import org.apache.sqoop.test.data.UbuntuReleases;
-import org.apache.sqoop.test.db.DatabaseProvider;
-import org.apache.sqoop.test.db.DatabaseProviderFactory;
import org.apache.sqoop.test.hadoop.HadoopMiniClusterRunner;
import org.apache.sqoop.test.hadoop.HadoopRunnerFactory;
import org.apache.sqoop.validation.Status;