Author: reschke
Date: Mon Mar 17 15:08:55 2014
New Revision: 1578423

URL: http://svn.apache.org/r1578423
Log:
OAK-1533 - add dbcp BasicDataSource (WIP)

Added:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
   (with props)
Modified:
    jackrabbit/oak/trunk/oak-core/pom.xml
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java

Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1578423&r1=1578422&r2=1578423&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Mon Mar 17 15:08:55 2014
@@ -276,6 +276,11 @@
       <version>1.3.158</version>
       <optional>true</optional>
     </dependency>
+    <dependency>
+      <groupId>commons-dbcp</groupId>
+      <artifactId>commons-dbcp</artifactId>
+      <version>1.4</version>
+    </dependency>
 
     <!-- Logging -->
     <dependency>

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1578423&r1=1578422&r2=1578423&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
 Mon Mar 17 15:08:55 2014
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugin
 import java.io.Closeable;
 import java.io.IOException;
 import java.sql.Connection;
-import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -29,14 +28,14 @@ import java.util.Iterator;
 
 import javax.sql.DataSource;
 
-import com.google.common.collect.AbstractIterator;
-
 import org.apache.jackrabbit.mk.api.MicroKernelException;
-import org.apache.jackrabbit.oak.plugins.blob.CachingBlobStore;
 import org.apache.jackrabbit.oak.commons.StringUtils;
+import org.apache.jackrabbit.oak.plugins.blob.CachingBlobStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.collect.AbstractIterator;
+
 public class RDBBlobStore extends CachingBlobStore implements Closeable {
     /**
      * Creates a {@linkplain RDBBlobStore} instance using an embedded H2
@@ -45,8 +44,8 @@ public class RDBBlobStore extends Cachin
     public RDBBlobStore() {
         try {
             String jdbcurl = "jdbc:h2:mem:oaknodes";
-            Connection connection = DriverManager.getConnection(jdbcurl, "sa", 
"");
-            initialize(connection);
+            DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcurl, "sa", "");
+            initialize(ds.getConnection());
         } catch (Exception ex) {
             throw new MicroKernelException("initializing RDB blob store", ex);
         }
@@ -58,8 +57,8 @@ public class RDBBlobStore extends Cachin
      */
     public RDBBlobStore(String jdbcurl, String username, String password) {
         try {
-            Connection connection = DriverManager.getConnection(jdbcurl, 
username, password);
-            initialize(connection);
+            DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcurl, username, 
password);
+            initialize(ds.getConnection());
         } catch (Exception ex) {
             throw new MicroKernelException("initializing RDB blob store", ex);
         }

Added: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java?rev=1578423&view=auto
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
 (added)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
 Mon Mar 17 15:08:55 2014
@@ -0,0 +1,38 @@
+/*
+ * 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.jackrabbit.oak.plugins.document.rdb;
+
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+import org.apache.commons.dbcp.BasicDataSource;
+
+public class RDBDataSourceFactory extends RDBMeta {
+
+    public static DataSource forJdbcUrl(String url, String username, String 
passwd) throws SQLException {
+        BasicDataSource bds = new BasicDataSource();
+        Driver d = DriverManager.getDriver(url);
+        bds.setDriverClassName(d.getClass().getName());
+        bds.setUsername(username);
+        bds.setPassword(passwd);
+        bds.setUrl(url);
+        return bds;
+    }
+}

Propchange: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1578423&r1=1578422&r2=1578423&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
 Mon Mar 17 15:08:55 2014
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.oak.plugins.document.rdb;
 
 import java.sql.Connection;
-import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -69,8 +68,8 @@ public class RDBDocumentStore implements
     public RDBDocumentStore(DocumentMK.Builder builder) {
         try {
             String jdbcurl = "jdbc:h2:mem:oaknodes";
-            Connection connection = DriverManager.getConnection(jdbcurl, "sa", 
"");
-            initialize(connection, builder);
+            DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcurl, "sa", "");
+            initialize(ds.getConnection(), builder);
         } catch (Exception ex) {
             throw new MicroKernelException("initializing RDB document store", 
ex);
         }
@@ -94,8 +93,8 @@ public class RDBDocumentStore implements
      */
     public RDBDocumentStore(String jdbcurl, String username, String password, 
DocumentMK.Builder builder) {
         try {
-            Connection connection = DriverManager.getConnection(jdbcurl, 
username, password);
-            initialize(connection, builder);
+            DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcurl, "sa", "");
+            initialize(ds.getConnection(), builder);
         } catch (Exception ex) {
             throw new MicroKernelException("initializing RDB document store", 
ex);
         }


Reply via email to