You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ma...@apache.org on 2009/08/11 20:48:02 UTC
svn commit: r803244 - in
/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle:
./ util/
Author: martijnh
Date: Tue Aug 11 18:48:02 2009
New Revision: 803244
URL: http://svn.apache.org/viewvc?rev=803244&view=rev
Log:
JCR-1456 Database connection pooling
* Moved the checkSchema code to a configurable CheckSchemaOperation class.
* The BundleDbPersistenceManager and subtypes are factories for CheckSchemaOperation instances.
Added:
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java (with props)
Modified:
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/MSSqlPersistenceManager.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionHelper.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/Oracle10R1ConnectionHelper.java
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/OracleConnectionHelper.java
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java Tue Aug 11 18:48:02 2009
@@ -30,19 +30,22 @@
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.jcr.RepositoryException;
import javax.sql.DataSource;
import org.apache.commons.io.IOUtils;
-import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.fs.FileSystem;
import org.apache.jackrabbit.core.fs.FileSystemResource;
import org.apache.jackrabbit.core.fs.local.LocalFileSystem;
+import org.apache.jackrabbit.core.id.NodeId;
+import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.persistence.PMContext;
import org.apache.jackrabbit.core.persistence.bundle.util.BundleBinding;
+import org.apache.jackrabbit.core.persistence.bundle.util.CheckSchemaOperation;
import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionFactory;
import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionHelper;
import org.apache.jackrabbit.core.persistence.bundle.util.DbNameIndex;
@@ -58,7 +61,6 @@
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
import org.apache.jackrabbit.core.util.StringIndex;
-import org.apache.jackrabbit.util.Text;
import org.apache.jackrabbit.uuid.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -88,10 +90,6 @@
/** the default logger */
private static Logger log = LoggerFactory.getLogger(BundleDbPersistenceManager.class);
- /** the variable for the schema prefix */
- public static final String SCHEMA_OBJECT_PREFIX_VARIABLE =
- "${schemaObjectPrefix}";
-
/** storage model modifier: binary keys */
public static final int SM_BINARY_KEYS = 1;
@@ -116,6 +114,7 @@
/** the database type */
protected String databaseType;
+ /** the {@link ConnectionHelper} set in the {@link #init(PMContext)} method */
protected ConnectionHelper conHelper;
/** the prefix for the database objects */
@@ -424,17 +423,6 @@
}
/**
- * Creates an SQL statement for schema creation by variable substitution.
- *
- * @param sql a SQL string which may contain variables to substitute
- * @return a valid SQL string
- */
- public String createSchemaSQL(String sql) {
- // replace prefix variable
- return Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix).trim();
- }
-
- /**
* {@inheritDoc}
*
* Basically wraps a JDBC transaction around super.store().
@@ -479,8 +467,7 @@
schemaObjectPrefix = conHelper.prepareDbIdentifier(schemaObjectPrefix);
// check if schema objects exist and create them if necessary
- conHelper.checkSchema(BundleDbPersistenceManager.class.getResourceAsStream(databaseType + ".ddl"),
- schemaObjectPrefix + "BUNDLE", this);
+ createCheckSchemaOperation().run();
// create correct blob store
blobStore = createBlobStore();
@@ -502,8 +489,8 @@
/**
* This method is called from the {@link #init(PMContext)} method of this class and returns a
- * {@link ConnectionHelper} instance. Subclasses may override it to return a specialized
- * connection helper.
+ * {@link ConnectionHelper} instance which is assigned to the {@code conHelper} field. Subclasses may
+ * override it to return a specialized connection helper.
*
* @param dataSrc the {@link DataSource} of this persistence manager
* @return a {@link ConnectionHelper}
@@ -514,14 +501,16 @@
}
/**
- * Indicates if the user name should be included when retrieving the tables during
- * {@link #checkTablesExist()}. <p/> Please note that this currently only needs to be changed for oracle
- * based persistence managers.
+ * This method is called from {@link #init(PMContext)} after the
+ * {@link #createConnectionHelper(DataSource)} method, and returns a default {@link CheckSchemaOperation}.
+ * Subclasses can overrride this implementation to get a customized implementation.
*
- * @return <code>false</code>
+ * @return a new {@link CheckSchemaOperation} instance
*/
- public boolean checkTablesWithUser() {
- return false;
+ protected CheckSchemaOperation createCheckSchemaOperation() {
+ InputStream in = BundleDbPersistenceManager.class.getResourceAsStream(databaseType + ".ddl");
+ return new CheckSchemaOperation(conHelper, in, schemaObjectPrefix + "BUNDLE").addVariableReplacement(
+ CheckSchemaOperation.SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix);
}
/**
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/MSSqlPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/MSSqlPersistenceManager.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/MSSqlPersistenceManager.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/MSSqlPersistenceManager.java Tue Aug 11 18:48:02 2009
@@ -16,17 +16,16 @@
*/
package org.apache.jackrabbit.core.persistence.bundle;
-import org.apache.jackrabbit.util.Text;
+import org.apache.jackrabbit.core.persistence.bundle.util.CheckSchemaOperation;
/**
- * Extends the {@link BundleDbPersistenceManager} by MS-SQL specific code.
- * <p/>
- * Configuration:<br>
+ * Extends the {@link BundleDbPersistenceManager} by MS-SQL specific code. <p/> Configuration:<br>
* <ul>
* <li><param name="{@link #setBundleCacheSize(String) bundleCacheSize}" value="8"/>
* <li><param name="{@link #setConsistencyCheck(String) consistencyCheck}" value="false"/>
* <li><param name="{@link #setMinBlobSize(String) minBlobSize}" value="16384"/>
- * <li><param name="{@link #setDriver(String) driver}" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
+ * <li><param name="{@link #setDriver(String) driver}
+ * " value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
* <li><param name="{@link #setUrl(String) url}" value=""/>
* <li><param name="{@link #setUser(String) user}" value=""/>
* <li><param name="{@link #setPassword(String) password}" value=""/>
@@ -50,13 +49,14 @@
* {@inheritDoc}
*/
@Override
- public String createSchemaSQL(String sql) {
- return Text.replace(super.createSchemaSQL(sql), "${tableSpace}", tableSpace);
+ protected CheckSchemaOperation createCheckSchemaOperation() {
+ return super.createCheckSchemaOperation().addVariableReplacement(
+ CheckSchemaOperation.TABLE_SPACE_VARIABLE, tableSpace);
}
/**
* Returns the configured MS SQL table space.
- *
+ *
* @return the configured MS SQL table space.
*/
public String getTableSpace() {
@@ -65,11 +65,11 @@
/**
* Sets the MS SQL table space.
- *
+ *
* @param tableSpace the MS SQL table space.
*/
public void setTableSpace(String tableSpace) {
- if (tableSpace != null && tableSpace.length() > 0) {
+ if (tableSpace != null && tableSpace.trim().length() > 0) {
this.tableSpace = "on " + tableSpace.trim();
} else {
this.tableSpace = "";
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java Tue Aug 11 18:48:02 2009
@@ -44,7 +44,7 @@
*/
@Override
protected ConnectionHelper createConnectionHelper(DataSource dataSrc) throws Exception {
- Oracle10R1ConnectionHelper helper = new Oracle10R1ConnectionHelper(dataSrc);
+ Oracle10R1ConnectionHelper helper = new Oracle10R1ConnectionHelper(dataSrc, user);
helper.init();
return helper;
}
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/OraclePersistenceManager.java Tue Aug 11 18:48:02 2009
@@ -21,16 +21,14 @@
import javax.sql.DataSource;
import org.apache.jackrabbit.core.persistence.PMContext;
+import org.apache.jackrabbit.core.persistence.bundle.util.CheckSchemaOperation;
import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionHelper;
import org.apache.jackrabbit.core.persistence.bundle.util.DbNameIndex;
import org.apache.jackrabbit.core.persistence.bundle.util.NGKDbNameIndex;
import org.apache.jackrabbit.core.persistence.bundle.util.OracleConnectionHelper;
-import org.apache.jackrabbit.util.Text;
/**
- * Extends the {@link BundleDbPersistenceManager} by Oracle specific code.
- * <p/>
- * Configuration:<br>
+ * Extends the {@link BundleDbPersistenceManager} by Oracle specific code. <p/> Configuration:<br>
* <ul>
* <li><param name="{@link #setExternalBLOBs(String)} externalBLOBs}" value="false"/>
* <li><param name="{@link #setBundleCacheSize(String) bundleCacheSize}" value="8"/>
@@ -48,10 +46,6 @@
*/
public class OraclePersistenceManager extends BundleDbPersistenceManager {
- /** the variable for the Oracle table space */
- public static final String TABLE_SPACE_VARIABLE =
- "${tableSpace}";
-
/** the Oracle table space to use */
protected String tableSpace;
@@ -65,6 +59,7 @@
/**
* Returns the configured Oracle table space.
+ *
* @return the configured Oracle table space.
*/
public String getTableSpace() {
@@ -73,13 +68,14 @@
/**
* Sets the Oracle table space.
+ *
* @param tableSpace the Oracle table space.
*/
public void setTableSpace(String tableSpace) {
- if (tableSpace != null) {
- this.tableSpace = tableSpace.trim();
+ if (tableSpace != null && tableSpace.trim().length() > 0) {
+ this.tableSpace = "tablespace " + tableSpace.trim();
} else {
- this.tableSpace = null;
+ this.tableSpace = "";
}
}
@@ -102,6 +98,7 @@
/**
* Returns a new instance of a NGKDbNameIndex.
+ *
* @return a new instance of a NGKDbNameIndex.
* @throws SQLException if an SQL error occurs.
*/
@@ -111,36 +108,20 @@
/**
* {@inheritDoc}
- *
- * @return <code>true</code>
- */
- @Override
- public boolean checkTablesWithUser() {
- return true;
- }
-
- /**
- * {@inheritDoc}
*/
@Override
- public String createSchemaSQL(String sql) {
- // set the tablespace if it is defined
- String tspace;
- if (tableSpace == null || "".equals(tableSpace)) {
- tspace = "";
- } else {
- tspace = "tablespace " + tableSpace;
- }
- return Text.replace(super.createSchemaSQL(sql), TABLE_SPACE_VARIABLE, tspace).trim();
+ protected ConnectionHelper createConnectionHelper(DataSource dataSrc) throws Exception {
+ OracleConnectionHelper helper = new OracleConnectionHelper(dataSrc, user);
+ helper.init();
+ return helper;
}
/**
* {@inheritDoc}
*/
@Override
- protected ConnectionHelper createConnectionHelper(DataSource dataSrc) throws Exception {
- OracleConnectionHelper helper = new OracleConnectionHelper(dataSrc);
- helper.init();
- return helper;
+ protected CheckSchemaOperation createCheckSchemaOperation() {
+ return super.createCheckSchemaOperation().addVariableReplacement(
+ CheckSchemaOperation.TABLE_SPACE_VARIABLE, tableSpace);
}
}
Added: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java?rev=803244&view=auto
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java (added)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java Tue Aug 11 18:48:02 2009
@@ -0,0 +1,112 @@
+/*
+ * 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.core.persistence.bundle.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.util.Text;
+
+/**
+ * An operation which synchronously checks the DB schema in the {@link #run()} method. The
+ * {@link #addVariableReplacement(String, String)} method return the instance to enable method chaining.
+ */
+public class CheckSchemaOperation {
+
+ public static final String SCHEMA_OBJECT_PREFIX_VARIABLE = "${schemaObjectPrefix}";
+
+ public static final String TABLE_SPACE_VARIABLE = "${tableSpace}";
+
+ private final ConnectionHelper conHelper;
+
+ private final InputStream ddl;
+
+ private final String table;
+
+ private final Map<String, String> varReplacement = new HashMap<String, String>();
+
+ /**
+ * @param connectionhelper the connection helper
+ * @param ddlStream the stream of the DDL to use to create the schema if necessary (closed by this method)
+ * @param tableName the name of the table to use for the schema-existence-check
+ */
+ public CheckSchemaOperation(ConnectionHelper connectionhelper, InputStream ddlStream, String tableName) {
+ conHelper = connectionhelper;
+ ddl = ddlStream;
+ table = tableName;
+ }
+
+ /**
+ * Adds a variable replacement mapping.
+ *
+ * @param var the variable
+ * @param replacement the replacement value
+ * @return this
+ */
+ public CheckSchemaOperation addVariableReplacement(String var, String replacement) {
+ varReplacement.put(var, replacement);
+ return this;
+ }
+
+ /**
+ * Checks if the required schema objects exist and creates them if they don't exist yet.
+ *
+ * @throws SQLException if an error occurs
+ * @throws IOException if an error occurs
+ */
+ public void run() throws SQLException, IOException {
+ if (!conHelper.tableExists(table)) {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(ddl));
+ try {
+ String sql = reader.readLine();
+ while (sql != null) {
+ // Skip comments and empty lines
+ if (!sql.startsWith("#") && sql.length() > 0) {
+ // replace prefix variable
+ sql = replace(sql);
+ // execute sql stmt
+ conHelper.exec(sql);
+ }
+ // read next sql stmt
+ sql = reader.readLine();
+ }
+ } finally {
+ IOUtils.closeQuietly(ddl);
+ }
+ }
+ }
+
+ /**
+ * Applies the variable replacement to the given string.
+ *
+ * @param sql the string in which to replace variables
+ * @return the new string
+ */
+ private String replace(String sql) {
+ String result = sql;
+ for (Map.Entry<String, String> entry : varReplacement.entrySet()) {
+ result = Text.replace(result, entry.getKey(), entry.getValue()).trim();
+ }
+ return result;
+ }
+}
Propchange: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/CheckSchemaOperation.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionHelper.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionHelper.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionHelper.java Tue Aug 11 18:48:02 2009
@@ -16,10 +16,6 @@
*/
package org.apache.jackrabbit.core.persistence.bundle.util;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
@@ -29,9 +25,6 @@
import javax.sql.DataSource;
-import org.apache.commons.io.IOUtils;
-import org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager;
-
/**
* This class provides convenience methods to execute SQL statements.
*
@@ -57,6 +50,8 @@
*/
public class ConnectionHelper {
+ private final String userName;
+
protected final DataSource dataSource;
private boolean inBatchMode = false;
@@ -70,9 +65,21 @@
*/
public ConnectionHelper(DataSource dataSrc) {
dataSource = dataSrc;
+ userName = null;
}
/**
+ * Constructor, typically used for Oracle subtypes.
+ *
+ * @param dataSrc the {@link DataSource} on which this instance acts
+ * @param user the username which is to be used for the {@link #tableExists(String)} method
+ */
+ protected ConnectionHelper(DataSource dataSrc, String user) {
+ dataSource = dataSrc;
+ userName = user;
+ }
+
+ /**
* A utility method that makes sure that <code>identifier</code> does only consist of characters that are
* allowed in names on the target database. Illegal characters will be escaped as necessary.
*
@@ -131,48 +138,13 @@
}
/**
- * Checks if the required schema objects exist and creates them if they don't exist yet.
- *
- * @param ddlStream the stream of the DDL to use to create the schema if necessary (closed by this method)
- * @param tableName the name of the table to use for the schema-existence-check
- * @param pm the associated {@link BundleDbPersistenceManager}
- * @throws SQLException if an error occurs
- * @throws IOException if an error occurs
- */
- public final void checkSchema(InputStream ddlStream, String tableName, BundleDbPersistenceManager pm)
- throws SQLException, IOException {
- String userName = pm.checkTablesWithUser() ? pm.getUser() : null;
- if (!tableExists(userName, tableName)) {
- BufferedReader reader = new BufferedReader(new InputStreamReader(ddlStream));
- try {
- String sql = reader.readLine();
- while (sql != null) {
- // Skip comments and empty lines
- if (!sql.startsWith("#") && sql.length() > 0) {
- // replace prefix variable
- sql = pm.createSchemaSQL(sql);
- // execute sql stmt
- exec(sql);
- }
- // read next sql stmt
- sql = reader.readLine();
- }
- } finally {
- IOUtils.closeQuietly(ddlStream);
- }
- }
- }
-
- /**
- * Checks whether the given table exists in the database. The {@code schemaPattern} is used at least on
- * Oracle databases and should then be equal to the user who owns the table.
+ * Checks whether the given table exists in the database.
*
- * @param schemaPattern the schema pattern, may be null
* @param tableName the name of the table
* @return whether the given table exists
* @throws SQLException on error
*/
- private boolean tableExists(String schemaPattern, String tableName) throws SQLException {
+ public final boolean tableExists(String tableName) throws SQLException {
Connection con = dataSource.getConnection();
ResultSet rs = null;
boolean schemaExists = false;
@@ -184,7 +156,7 @@
} else if (metaData.storesUpperCaseIdentifiers()) {
name = tableName.toUpperCase();
}
- rs = metaData.getTables(null, schemaPattern, name, null);
+ rs = metaData.getTables(null, userName, name, null);
schemaExists = rs.next();
} finally {
DbUtility.close(con, null, rs);
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/Oracle10R1ConnectionHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/Oracle10R1ConnectionHelper.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/Oracle10R1ConnectionHelper.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/Oracle10R1ConnectionHelper.java Tue Aug 11 18:48:02 2009
@@ -51,9 +51,10 @@
/**
* @param dataSrc
+ * @param userName
*/
- public Oracle10R1ConnectionHelper(DataSource dataSrc) {
- super(dataSrc);
+ public Oracle10R1ConnectionHelper(DataSource dataSrc, String userName) {
+ super(dataSrc, userName);
}
/**
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/OracleConnectionHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/OracleConnectionHelper.java?rev=803244&r1=803243&r2=803244&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/OracleConnectionHelper.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/OracleConnectionHelper.java Tue Aug 11 18:48:02 2009
@@ -37,9 +37,10 @@
/**
* @param dataSrc
+ * @param userName
*/
- public OracleConnectionHelper(DataSource dataSrc) {
- super(dataSrc);
+ public OracleConnectionHelper(DataSource dataSrc, String userName) {
+ super(dataSrc, userName);
}
public void init() throws Exception {