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);