You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ka...@apache.org on 2013/03/24 00:31:26 UTC
git commit: SQOOP-909: Sqoop2 integration: Create Oracle and
Microsoft SQL Server database providers (Jarek Jarcec Cecho via Kathleen
Ting)
Updated Branches:
refs/heads/sqoop2 b49b71235 -> 2237d94e6
SQOOP-909: Sqoop2 integration: Create Oracle and Microsoft SQL Server database providers
(Jarek Jarcec Cecho via Kathleen Ting)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/2237d94e
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/2237d94e
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/2237d94e
Branch: refs/heads/sqoop2
Commit: 2237d94e6669e76dc619378e189034d583f8ead5
Parents: b49b712
Author: Kate <ka...@apache.org>
Authored: Sat Mar 23 19:25:37 2013 -0400
Committer: Kate <ka...@apache.org>
Committed: Sat Mar 23 19:30:45 2013 -0400
----------------------------------------------------------------------
pom.xml | 12 ++
test/pom.xml | 47 ++++++++
.../org/apache/sqoop/test/db/OracleProvider.java | 83 +++++++++++++++
.../apache/sqoop/test/db/SqlServerProvider.java | 83 +++++++++++++++
.../test/minicluster/TomcatSqoopMiniCluster.java | 2 +
5 files changed, 227 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/2237d94e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0620d08..25dfba6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,6 +108,8 @@ limitations under the License.
<tomcat.version>${tomcat.major.version}.${tomcat.minor.version}</tomcat.version>
<jdbc.mysql.version>5.1.23</jdbc.mysql.version>
<jdbc.postgresql.version>9.1-901.jdbc4</jdbc.postgresql.version>
+ <jdbc.oracle.version>11.2.0.3</jdbc.oracle.version>
+ <jdbc.sqlserver.version>4.0</jdbc.sqlserver.version>
</properties>
<dependencies>
@@ -362,6 +364,16 @@ limitations under the License.
<artifactId>postgresql</artifactId>
<version>${jdbc.postgresql.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc14</artifactId>
+ <version>${jdbc.oracle.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.microsoft</groupId>
+ <artifactId>sqljdbc4</artifactId>
+ <version>${jdbc.sqlserver.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
http://git-wip-us.apache.org/repos/asf/sqoop/blob/2237d94e/test/pom.xml
----------------------------------------------------------------------
diff --git a/test/pom.xml b/test/pom.xml
index 26aa556..58f1c49 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -228,6 +228,53 @@ limitations under the License.
</dependencies>
</profile>
+
+ <!-- Special JDBC Drivers -->
+
+ <!--
+ Oracle JDBC Driver
+ Install: mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=/path/to/the/jar/ojdbc6.jar
+ Usage: mvn integration-test -Djdbc.oracle
+ -->
+ <profile>
+ <id>jdbc-oracle</id>
+
+ <activation>
+ <property>
+ <name>jdbc.oracle</name>
+ </property>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc14</artifactId>
+ </dependency>
+ </dependencies>
+ </profile>
+
+ <!--
+ Microsoft SQL Server JDBC Driver
+ Install: mvn install:install-file -DgroupId=com.microsoft -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar -Dfile=/path/to/the/jar/sqljdbc4.jar
+ Usage: mvn integration-test -Djdbc.sqlserver
+ -->
+ <profile>
+ <id>jdbc-sqlserver</id>
+
+ <activation>
+ <property>
+ <name>jdbc.sqlserver</name>
+ </property>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.microsoft</groupId>
+ <artifactId>sqljdbc4</artifactId>
+ </dependency>
+ </dependencies>
+ </profile>
+
</profiles>
</project>
http://git-wip-us.apache.org/repos/asf/sqoop/blob/2237d94e/test/src/main/java/org/apache/sqoop/test/db/OracleProvider.java
----------------------------------------------------------------------
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
new file mode 100644
index 0000000..5a55c85
--- /dev/null
+++ b/test/src/main/java/org/apache/sqoop/test/db/OracleProvider.java
@@ -0,0 +1,83 @@
+/**
+ * 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 + "\"";
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/2237d94e/test/src/main/java/org/apache/sqoop/test/db/SqlServerProvider.java
----------------------------------------------------------------------
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
new file mode 100644
index 0000000..35b6ef3
--- /dev/null
+++ b/test/src/main/java/org/apache/sqoop/test/db/SqlServerProvider.java
@@ -0,0 +1,83 @@
+/**
+ * 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 String getJdbcDriver() {
+ return DRIVER;
+ }
+
+ public String escape(String entity) {
+ return "[" + entity + "]";
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/2237d94e/test/src/main/java/org/apache/sqoop/test/minicluster/TomcatSqoopMiniCluster.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/sqoop/test/minicluster/TomcatSqoopMiniCluster.java b/test/src/main/java/org/apache/sqoop/test/minicluster/TomcatSqoopMiniCluster.java
index 567ddbc..c7998a1 100644
--- a/test/src/main/java/org/apache/sqoop/test/minicluster/TomcatSqoopMiniCluster.java
+++ b/test/src/main/java/org/apache/sqoop/test/minicluster/TomcatSqoopMiniCluster.java
@@ -95,6 +95,8 @@ public class TomcatSqoopMiniCluster extends SqoopMiniCluster {
jar.contains("avro-") || // Avro
jar.contains("mysql") || // MySQL JDBC driver
jar.contains("postgre") || // PostgreSQL JDBC driver
+ jar.contains("oracle") || // Oracle driver
+ jar.contains("sqljdbc") || // Microsoft SQL Server driver
jar.contains("google") // Google libraries (guava, ...)
) {
extraClassPath.add(jar);