Index: src/main/java/org/apache/jackrabbit/core/state/db/SimpleDbPersistenceManager.java
===================================================================
--- src/main/java/org/apache/jackrabbit/core/state/db/SimpleDbPersistenceManager.java	(revision 378101)
+++ src/main/java/org/apache/jackrabbit/core/state/db/SimpleDbPersistenceManager.java	(working copy)
@@ -40,6 +40,9 @@
 
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -155,6 +158,7 @@
 
     protected boolean initialized;
 
+    protected String dataSourceLocation;
     protected String driver;
     protected String url;
     protected String user;
@@ -221,6 +225,14 @@
     }
 
     //----------------------------------------------------< setters & getters >
+    public String getDataSourceLocation() {
+        return dataSourceLocation;
+    }
+
+    public void setDataSourceLocation(String dataSourceLocation) {
+        this.dataSourceLocation = dataSourceLocation;
+    }
+
     public String getUrl() {
         return url;
     }
@@ -292,8 +304,14 @@
         }
 
         // setup jdbc connection
-        Class.forName(driver);
-        con = DriverManager.getConnection(url, user, password);
+        if (dataSourceLocation != null) {
+        	InitialContext ic = new InitialContext();
+        	DataSource dataSource = (DataSource) ic.lookup(dataSourceLocation);
+        	con = dataSource.getConnection(user, password);
+        } else {
+        	Class.forName(driver);
+        	con = DriverManager.getConnection(url, user, password);
+        }
         con.setAutoCommit(false);
 
         // make sure schemaObjectPrefix consists of legal name characters only
