retrography
3/22/2017 - 1:49 AM

Little mod in RJDBC to allow OrientDB connections

Little mod in RJDBC to allow OrientDB connections

--- RJDBC0.2-6/R/class.R	2017-02-07 21:38:59.000000000 +0100
+++ RJDBC0.2-6mod/R/class.R	2017-03-22 02:39:42.000000000 +0100
@@ -37,18 +37,12 @@
 setMethod("dbUnloadDriver", "JDBCDriver", def=function(drv, ...) FALSE)
 
 setMethod("dbConnect", "JDBCDriver", def=function(drv, url, user='', password='', ...) {
-  jc <- .jcall("java/sql/DriverManager","Ljava/sql/Connection;","getConnection", as.character(url)[1], as.character(user)[1], as.character(password)[1], check=FALSE)
-  if (is.jnull(jc) && !is.jnull(drv@jdrv)) {
-    # ok one reason for this to fail is its interaction with rJava's
-    # class loader. In that case we try to load the driver directly.
-    oex <- .jgetEx(TRUE)
-    p <- .jnew("java/util/Properties")
-    if (length(user)==1 && nchar(user)) .jcall(p,"Ljava/lang/Object;","setProperty","user",user)
-    if (length(password)==1 && nchar(password)) .jcall(p,"Ljava/lang/Object;","setProperty","password",password)
-    l <- list(...)
-    if (length(names(l))) for (n in names(l)) .jcall(p, "Ljava/lang/Object;", "setProperty", n, as.character(l[[n]]))
-    jc <- .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], p)
-  }
+  p <- .jnew("java/util/Properties")
+  if (length(user)==1 && nchar(user)) .jcall(p,"Ljava/lang/Object;","setProperty","user",user)
+  if (length(password)==1 && nchar(password)) .jcall(p,"Ljava/lang/Object;","setProperty","password",password)
+  l <- list(...)
+  if (length(names(l))) for (n in names(l)) .jcall(p, "Ljava/lang/Object;", "setProperty", n, as.character(l[[n]]))
+  jc <- .jcall("java/sql/DriverManager","Ljava/sql/Connection;","getConnection", as.character(url)[1], p)
   .verify.JDBC.result(jc, "Unable to connect JDBC to ",url)
   new("JDBCConnection", jc=jc, identifier.quote=drv@identifier.quote)},
           valueClass="JDBCConnection")