sqoop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jar...@apache.org
Subject svn commit: r1375401 - /sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java
Date Tue, 21 Aug 2012 07:06:48 GMT
Author: jarcec
Date: Tue Aug 21 07:06:47 2012
New Revision: 1375401

URL: http://svn.apache.org/viewvc?rev=1375401&view=rev
Log:
SQOOP-579. Simple refactoring of org.apache.sqoop.manager.DefaultManagerFactory - extract
methods for reuse.

(Seetharam Venkatesh via Jarek Jarcec Cecho)

Modified:
    sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java

Modified: sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java
URL: http://svn.apache.org/viewvc/sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java?rev=1375401&r1=1375400&r2=1375401&view=diff
==============================================================================
--- sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java (original)
+++ sqoop/trunk/src/java/org/apache/sqoop/manager/DefaultManagerFactory.java Tue Aug 21 07:06:47
2012
@@ -37,33 +37,8 @@ public class DefaultManagerFactory
 
   public ConnManager accept(JobData data) {
     SqoopOptions options = data.getSqoopOptions();
-    String connectStr = options.getConnectString();
-
-    // java.net.URL follows RFC-2396 literally, which does not allow a ':'
-    // character in the scheme component (section 3.1). JDBC connect strings,
-    // however, commonly have a multi-scheme addressing system. e.g.,
-    // jdbc:mysql://...; so we cannot parse the scheme component via URL
-    // objects. Instead, attempt to pull out the scheme as best as we can.
-
-    // First, see if this is of the form [scheme://hostname-and-etc..]
-    int schemeStopIdx = connectStr.indexOf("//");
-    if (-1 == schemeStopIdx) {
-      // If no hostname start marker ("//"), then look for the right-most ':'
-      // character.
-      schemeStopIdx = connectStr.lastIndexOf(':');
-      if (-1 == schemeStopIdx) {
-        // Warn that this is nonstandard. But we should be as permissive
-        // as possible here and let the ConnectionManagers themselves throw
-        // out the connect string if it doesn't make sense to them.
-        LOG.warn("Could not determine scheme component of connect string");
-
-        // Use the whole string.
-        schemeStopIdx = connectStr.length();
-      }
-    }
-
-    String scheme = connectStr.substring(0, schemeStopIdx);
 
+    String scheme = extractScheme(options);
     if (null == scheme) {
       // We don't know if this is a mysql://, hsql://, etc.
       // Can't do anything with this.
@@ -97,5 +72,34 @@ public class DefaultManagerFactory
       return null;
     }
   }
+
+  protected String extractScheme(SqoopOptions options) {
+    String connectStr = options.getConnectString();
+
+    // java.net.URL follows RFC-2396 literally, which does not allow a ':'
+    // character in the scheme component (section 3.1). JDBC connect strings,
+    // however, commonly have a multi-scheme addressing system. e.g.,
+    // jdbc:mysql://...; so we cannot parse the scheme component via URL
+    // objects. Instead, attempt to pull out the scheme as best as we can.
+
+    // First, see if this is of the form [scheme://hostname-and-etc..]
+    int schemeStopIdx = connectStr.indexOf("//");
+    if (-1 == schemeStopIdx) {
+      // If no hostname start marker ("//"), then look for the right-most ':'
+      // character.
+      schemeStopIdx = connectStr.lastIndexOf(':');
+      if (-1 == schemeStopIdx) {
+        // Warn that this is nonstandard. But we should be as permissive
+        // as possible here and let the ConnectionManagers themselves throw
+        // out the connect string if it doesn't make sense to them.
+        LOG.warn("Could not determine scheme component of connect string");
+
+        // Use the whole string.
+        schemeStopIdx = connectStr.length();
+      }
+    }
+
+    return connectStr.substring(0, schemeStopIdx);
+  }
 }
 



Mime
View raw message