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