Author: arminw Date: Fri Dec 22 16:22:05 2006 New Revision: 489807 URL: http://svn.apache.org/viewvc?view=rev&rev=489807 Log: change constructor of Platform implementation classes, associate JdbcConnectionDescriptor with Platform
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/Platform.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDb2Impl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDerbyImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFactory.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFirebirdImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformInformixImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMaxDBImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsSQLServerImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformPostgreSQLImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSapdbImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASAImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASEImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformWLOracle9iImpl.java Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/Platform.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/Platform.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/Platform.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/Platform.java Fri Dec 22 16:22:05 2006 @@ -80,10 +80,18 @@ * Called immediately after a JDBC connection has been created by a * ConnectionFactory implementation (not used for DataSource connections). * @param conn the Connection to be initialized + * @deprecated replaced by [EMAIL PROTECTED] #initializeJdbcConnection(java.sql.Connection)} */ void initializeJdbcConnection(JdbcConnectionDescriptor jcd, Connection conn) throws PlatformException; /** + * Called immediately after a JDBC connection has been created by a + * ConnectionFactory implementation (not used for DataSource connections). + * @param conn the Connection to be initialized + */ + void initializeJdbcConnection(Connection conn) throws PlatformException; + + /** * Used to do a temporary change of the m_connection autoCommit state. * When using this method ensure to reset the original state before * m_connection was returned to pool or closed. @@ -91,18 +99,29 @@ * [EMAIL PROTECTED] org.apache.ojb.broker.metadata.JdbcConnectionDescriptor#getUseAutoCommit()} was set to * [EMAIL PROTECTED] org.apache.ojb.broker.metadata.JdbcConnectionDescriptor#AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE} * the change of the autoCommit state take effect. + * @deprecated replaced by [EMAIL PROTECTED] #changeAutoCommitState(java.sql.Connection, boolean)} */ void changeAutoCommitState(JdbcConnectionDescriptor jcd, Connection con, boolean newState); /** + * Used to do a temporary change of the m_connection autoCommit state. + * When using this method ensure to reset the original state before + * m_connection was returned to pool or closed. + * Only when + * [EMAIL PROTECTED] org.apache.ojb.broker.metadata.JdbcConnectionDescriptor#getUseAutoCommit()} was set to + * [EMAIL PROTECTED] org.apache.ojb.broker.metadata.JdbcConnectionDescriptor#AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE} + * the change of the autoCommit state take effect. + */ + void changeAutoCommitState(Connection con, boolean newState); + + /** * Called to let the Platform implementation perform any JDBC type-specific operations * needed by the driver when binding positional parameters for a PreparedStatement. * <br/> * When read in result set columns, the counterpart of this method is * [EMAIL PROTECTED] #postPrepareReadInValue(org.apache.ojb.broker.metadata.FieldDescriptor, Object)}. */ - void setObjectForStatement(PreparedStatement ps, int index, Object value, int sqlType) - throws SQLException; + void setObjectForStatement(PreparedStatement ps, int index, Object value, int sqlType) throws SQLException; /** * Called to let the Platform implementation perform any JDBC type-specific operations @@ -111,8 +130,7 @@ * When read in result set columns, the counterpart of this method is * [EMAIL PROTECTED] #postPrepareReadInValue(org.apache.ojb.broker.metadata.FieldDescriptor, Object)}. */ - void setNullForStatement(PreparedStatement ps, int index, int sqlType) - throws SQLException; + void setNullForStatement(PreparedStatement ps, int index, int sqlType) throws SQLException; /** * Called to let the Platform implementation perform any JDBC type-specific operations @@ -127,8 +145,7 @@ * @param index The column index. * @param value The value to insert - none null or NULL allowed. */ - void setObjectForStatement(PreparedStatement ps, int index, Object value) - throws SQLException; + void setObjectForStatement(PreparedStatement ps, int index, Object value) throws SQLException; /** * Get join syntax type for this RDBMS - one of the constants from JoinSyntaxTypes interface. @@ -167,7 +184,7 @@ * * @param sequenceName The name of the sequence to create. * @return a sql string to create a sequence - * @deprecated use [EMAIL PROTECTED] #createSequenceQuery(String)} instead. + * @deprecated use [EMAIL PROTECTED] #createSequenceQuery(String, java.util.Properties)} instead. */ String createSequenceQuery(String sequenceName); @@ -273,8 +290,7 @@ * @param stmt the statement * @param position argument position */ - void registerOutResultSet(CallableStatement stmt, int position) - throws SQLException; + void registerOutResultSet(CallableStatement stmt, int position) throws SQLException; /** * Answer the quoted name ie. "table" or [table] etc. Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDb2Impl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDb2Impl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDb2Impl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDb2Impl.java Fri Dec 22 16:22:05 2006 @@ -21,6 +21,7 @@ import java.util.Properties; import org.apache.ojb.broker.util.sequence.SequenceManagerHelper; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; /** * This class extends <code>PlatformDefaultImpl</code> and defines specific @@ -122,11 +123,15 @@ * </tr> * </table> * - * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Mahler<a> * @version $Id$ */ public class PlatformDb2Impl extends PlatformDefaultImpl { + public PlatformDb2Impl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * Patch provided by Avril Kotzen ([EMAIL PROTECTED]) * DB2 handles TINYINT (for mapping a byte). Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDefaultImpl.java Fri Dec 22 16:22:05 2006 @@ -45,7 +45,6 @@ * platform specific implementations. * * @version $Id$ - * @author Thomas Mahler */ public class PlatformDefaultImpl implements Platform, JoinSyntaxTypes { @@ -56,6 +55,12 @@ protected boolean m_batchUpdatesChecked = false; protected boolean m_supportsBatchUpdates = false; protected Boolean locatorsUpdateCopy; + protected JdbcConnectionDescriptor jcd; + + public PlatformDefaultImpl(JdbcConnectionDescriptor jcd) + { + this.jcd = jcd; + } public boolean supportsBatchOperations() { @@ -71,7 +76,7 @@ */ protected void checkForBatchSupport(Connection conn) { - if (!m_batchUpdatesChecked) + if(!m_batchUpdatesChecked) { DatabaseMetaData meta; try @@ -79,7 +84,7 @@ meta = conn.getMetaData(); m_supportsBatchUpdates = meta.supportsBatchUpdates(); } - catch (Throwable th) + catch(Throwable th) { log.info("Batch support check failed", th); m_supportsBatchUpdates = false; @@ -98,13 +103,13 @@ public void beforeStatementClose(Statement stmt, ResultSet rs) throws PlatformException { - if (rs != null) + if(rs != null) { try { rs.close(); } - catch (SQLException e) + catch(SQLException e) { throw new PlatformException("Resultset closing failed", e); } @@ -127,7 +132,7 @@ { stmt.addBatch(); } - catch (SQLException e) + catch(SQLException e) { throw new PlatformException("Failure while calling 'addBatch' on given Statement object", e); } @@ -139,7 +144,7 @@ { return stmt.executeBatch(); } - catch (SQLException e) + catch(SQLException e) { throw new PlatformException("Failure while calling 'executeBatch' on given Statement object", e); } @@ -151,9 +156,14 @@ */ public void initializeJdbcConnection(JdbcConnectionDescriptor jcd, Connection conn) throws PlatformException { - if (jcd.getBatchMode()) checkForBatchSupport(conn); + initializeJdbcConnection(conn); + } + + public void initializeJdbcConnection(Connection conn) throws PlatformException + { + if(jcd.getBatchMode()) checkForBatchSupport(conn); - switch (jcd.getUseAutoCommit()) + switch(jcd.getUseAutoCommit()) { case JdbcConnectionDescriptor.AUTO_COMMIT_IGNORE_STATE: // nothing to do @@ -167,15 +177,15 @@ state of a connection at initializing by the ConnectionFactory. The autocommit state should only be changed by the ConnectionManager. We have to separate this stuff. */ - if (!jcd.getAttribute(INITIALIZATION_CHECK_AUTOCOMMIT, FALSE_STR).equalsIgnoreCase(FALSE_STR) + if(!jcd.getAttribute(INITIALIZATION_CHECK_AUTOCOMMIT, FALSE_STR).equalsIgnoreCase(FALSE_STR) && !conn.getAutoCommit()) { conn.setAutoCommit(true); } } - catch (SQLException e) + catch(SQLException e) { - if (!jcd.isIgnoreAutoCommitExceptions()) + if(!jcd.isIgnoreAutoCommitExceptions()) { throw new PlatformException("Connection initializing: setAutoCommit(true) failed", e); } @@ -188,11 +198,11 @@ case JdbcConnectionDescriptor.AUTO_COMMIT_SET_FALSE: try { - if (conn.getAutoCommit()) conn.setAutoCommit(false); + if(conn.getAutoCommit()) conn.setAutoCommit(false); } - catch (SQLException e) + catch(SQLException e) { - if (!jcd.isIgnoreAutoCommitExceptions()) + if(!jcd.isIgnoreAutoCommitExceptions()) { throw new PlatformException("Connection initializing: setAutoCommit(false) failed", e); } @@ -207,20 +217,25 @@ public void changeAutoCommitState(JdbcConnectionDescriptor jcd, Connection con, boolean newState) { - if (con == null) + changeAutoCommitState(con, newState); + } + + public void changeAutoCommitState(Connection con, boolean newState) + { + if(con == null) { log.error("Given m_connection was null, cannot prepare autoCommit state"); return; } - if (JdbcConnectionDescriptor.AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE == jcd.getUseAutoCommit()) + if(JdbcConnectionDescriptor.AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE == jcd.getUseAutoCommit()) { try { con.setAutoCommit(newState); } - catch (SQLException e) + catch(SQLException e) { - if (jcd.isIgnoreAutoCommitExceptions()) + if(jcd.isIgnoreAutoCommitExceptions()) { log.info("Set autoCommit(" + newState + ") failed: " + e.getMessage()); } @@ -259,16 +274,16 @@ // { // ps.setObject(index, value); // } - if ((sqlType == Types.LONGVARCHAR) && (value instanceof String)) + if((sqlType == Types.LONGVARCHAR) && (value instanceof String)) { String s = (String) value; ps.setCharacterStream(index, new StringReader(s), s.length()); } - else if (sqlType == Types.BLOB) + else if(sqlType == Types.BLOB) { defaultSetBlob(ps, index, value, sqlType); } - else if (sqlType == Types.CLOB) + else if(sqlType == Types.CLOB) { defaultSetClob(ps, index, value, sqlType); } @@ -288,7 +303,7 @@ public void setObjectForStatement(PreparedStatement ps, int index, Object value) throws SQLException { - if (value != null) + if(value != null) { ps.setObject(index, value); } @@ -544,7 +559,7 @@ */ public String concatenate(String[] theColumns) { - if (theColumns.length == 1) + if(theColumns.length == 1) { return theColumns[0]; } @@ -552,9 +567,9 @@ StringBuffer buf = new StringBuffer(); String concatChar = getConcatenationCharacter(); - for (int i = 0; i < theColumns.length; i++) + for(int i = 0; i < theColumns.length; i++) { - if (i > 0) + if(i > 0) { buf.append(" ").append(concatChar).append(" "); } @@ -572,7 +587,7 @@ String value = (String) aCriteria.getValue(); char escapeChar = LikeCriteria.getEscapeCharacter(); - if (value.indexOf(escapeChar) >= 0) + if(value.indexOf(escapeChar) >= 0) { return " ESCAPE '" + escapeChar + "'"; } @@ -590,28 +605,28 @@ { stmt.registerOutParameter(position, Types.OTHER); } - + /** * @see org.apache.ojb.broker.platforms.Platform#quoteName(java.lang.String) */ public String quoteName(String aString) { String result = SqlHelper.stripOjbQuotes(aString); - - if (aString.length() > result.length()) + + if(aString.length() > result.length()) { - result = getQuotedName(result); + result = getQuotedName(result); } - - return result; + + return result; } - + /** * @return a quoted name. ie "name" or [name] */ protected String getQuotedName(String aString) { - return '"' + aString + '"'; + return '"' + aString + '"'; } /** @@ -660,7 +675,7 @@ } catch(SQLException e) { - log.error("Can't detect LOB locators support type, use default setting" , e); + log.error("Can't detect LOB locators support type, use default setting", e); locatorsUpdateCopy = Boolean.TRUE; } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDerbyImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDerbyImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDerbyImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformDerbyImpl.java Fri Dec 22 16:22:05 2006 @@ -19,11 +19,18 @@ import java.sql.SQLException; import java.sql.Types; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /** * This class defines specific behavior for the Derby platform. */ public class PlatformDerbyImpl extends PlatformDefaultImpl { + public PlatformDerbyImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * [EMAIL PROTECTED] */ @@ -69,7 +76,7 @@ { // [EMAIL PROTECTED] // the function is used by the org.apache.ojb.broker.util.sequence.SequenceManagerNativeImpl - // this call must be made before commit the insert command, so you + // this call must be made before commit the insert command, so you // must turn off autocommit by seting the useAutoCommit="2" // or use useAutoCommit="1" or use a connection with autoCommit set false // by default (e.g. in managed environments) Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFactory.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFactory.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFactory.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFactory.java Fri Dec 22 16:22:05 2006 @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.Map; +import java.lang.reflect.InvocationTargetException; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.SystemUtils; @@ -35,9 +36,7 @@ public class PlatformFactory { private static Logger log = LoggerFactory.getLogger(PlatformFactory.class); - private static Map names = new HashMap(); - private static HashMap platforms = new HashMap(); static { @@ -82,42 +81,45 @@ { throw new NullPointerException("The Platform is not specified. " + jcd); } - Platform result = (Platform) platforms.get(dbms); - if(result == null) + Platform result = resolvePlatform(jcd, dbms); + if(log.isEnabledFor(Logger.INFO)) { - result = resolvePlatform(dbms); - if(log.isEnabledFor(Logger.INFO)) - { - log.info("Resolve platform class for name '" + dbms + "', Platform instance: " + result); - } - platforms.put(dbms, result); // cache the Platform + log.info("Resolve platform class for name '" + dbms + "', Platform instance: " + result); } return result; } - private static Platform resolvePlatform(final String platformName) + private static Platform resolvePlatform(JdbcConnectionDescriptor jcd, final String platformName) { Platform result = null; String name = null; try { name = createClassName(platformName); - result = instantiatePlatform(name); + result = instantiatePlatform(jcd, name); } catch(ClassNotFoundException e) { // ignore } + catch(NoClassDefFoundError e) + { + // ignore + } if(result == null) { try { - result = instantiatePlatform(platformName); + result = instantiatePlatform(jcd, platformName); } catch(ClassNotFoundException e) { // ignore } + catch(NoClassDefFoundError e) + { + // ignore + } } if(result == null) { @@ -127,7 +129,7 @@ if(str != null) { String resolvedName = createClassName(str); - result = instantiatePlatform(resolvedName); + result = instantiatePlatform(jcd, resolvedName); log.info("The correct Platform token is '" + str + "' instead of the specified '" + platformName + "'"); } @@ -149,12 +151,12 @@ return result; } - private static Platform instantiatePlatform(String name) throws ClassNotFoundException + private static Platform instantiatePlatform(JdbcConnectionDescriptor jcd, String name) throws ClassNotFoundException { Platform result; try { - result = (Platform) ClassHelper.newInstance(name); + result = (Platform) ClassHelper.newInstance(name, JdbcConnectionDescriptor.class, jcd); } catch(InstantiationException e) { @@ -163,6 +165,14 @@ catch(IllegalAccessException e) { throw new OJBRuntimeException("Platform class " + name + " exists, but access isn't allowed", e); + } + catch(InvocationTargetException e) + { + throw new OJBRuntimeException("Platform class " + name + " exists, but constructor seems to cause problem", e); + } + catch(NoSuchMethodException e) + { + throw new OJBRuntimeException("Platform class " + name + " exists, but something fail", e); } return result; } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFirebirdImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFirebirdImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFirebirdImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformFirebirdImpl.java Fri Dec 22 16:22:05 2006 @@ -1,5 +1,7 @@ package org.apache.ojb.broker.platforms; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /* Copyright 2003-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,12 +22,15 @@ * This class extends <code>PlatformDefaultImpl</code> and defines specific * behavior for the Firebird platform. Copied from the PostgreSQL Platform * - * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Mahler<a> - * @author <a href="mailto:[EMAIL PROTECTED]">David Warnock<a> * @version $Id$ */ public class PlatformFirebirdImpl extends PlatformDefaultImpl { + public PlatformFirebirdImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + public String createSequenceQuery(String sequenceName) { return "create generator " + sequenceName; Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java Fri Dec 22 16:22:05 2006 @@ -18,6 +18,7 @@ import java.util.Properties; import org.apache.ojb.broker.util.sequence.SequenceManagerHelper; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; /** * This class extends <code>PlatformDefaultImpl</code> and defines specific @@ -66,6 +67,11 @@ { private static final String LAST_INSERT = "CALL IDENTITY()"; + public PlatformHsqldbImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * Get join syntax type for this RDBMS - one on of the constants from JoinSyntaxType interface */ @@ -81,10 +87,10 @@ { return LAST_INSERT; } - + /* (non-Javadoc) - * @see org.apache.ojb.broker.platforms.Platform#addPagingSql(java.lang.StringBuffer) - */ + * @see org.apache.ojb.broker.platforms.Platform#addPagingSql(java.lang.StringBuffer) + */ public void addPagingSql(StringBuffer anSqlString) { anSqlString.insert(6, " LIMIT ? ? "); Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformInformixImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformInformixImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformInformixImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformInformixImpl.java Fri Dec 22 16:22:05 2006 @@ -26,17 +26,18 @@ /** * This class extends <code>PlatformDefaultImpl</code> and defines specific * behavior for the Informix platform. - * - * @version 1.0 - * @author Thomas Mahler */ public class PlatformInformixImpl extends PlatformDefaultImpl { + public PlatformInformixImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } /** @see Platform#initializeJdbcConnection */ - public void initializeJdbcConnection(JdbcConnectionDescriptor jcd, Connection conn) throws PlatformException + public void initializeJdbcConnection(Connection conn) throws PlatformException { - super.initializeJdbcConnection(jcd, conn); + super.initializeJdbcConnection(conn); Statement stmt = null; try { Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMaxDBImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMaxDBImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMaxDBImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMaxDBImpl.java Fri Dec 22 16:22:05 2006 @@ -1,5 +1,7 @@ package org.apache.ojb.broker.platforms; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /* Copyright 2004-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,5 +18,8 @@ */ public class PlatformMaxDBImpl extends PlatformSapdbImpl { - + public PlatformMaxDBImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java Fri Dec 22 16:22:05 2006 @@ -25,13 +25,18 @@ import org.apache.ojb.broker.query.LikeCriteria; import org.apache.ojb.broker.util.logging.LoggerFactory; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; /** - * @author <a href="mailto:[EMAIL PROTECTED]">Jakob Braeuchi</a> * @version $Id$ */ public class PlatformMsAccessImpl extends PlatformDefaultImpl { + public PlatformMsAccessImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * @see Platform#setObjectForStatement(PreparedStatement, int, Object, int) */ @@ -65,7 +70,7 @@ // ps.setCharacterStream(index, new StringReader(s), s.length()); // for MSACCESS : byte[] bytes = s.getBytes(); - ByteArrayInputStream bais = new ByteArrayInputStream(bytes); + ByteArrayInputStream bais = new ByteArrayInputStream(bytes); ps.setAsciiStream(index, bais, bytes.length); } else @@ -85,9 +90,9 @@ } else { - super.setObjectForStatement(ps, index, value, sqlType); + super.setObjectForStatement(ps, index, value, sqlType); } - } + } /** * @see Platform#beforeStatementClose(Statement stmt, ResultSet rs) @@ -107,29 +112,29 @@ } } } - + /** * Answer the Character for Concatenation */ protected String getConcatenationCharacter() { return "&"; - } - + } + /** * @see org.apache.ojb.broker.platforms.Platform#getEscapeClause(org.apache.ojb.broker.query.LikeCriteria) */ public String getEscapeClause(LikeCriteria aCriteria) { // TODO: implement ms-access escaping - return ""; + return ""; } - + /** * @see org.apache.ojb.broker.platforms.PlatformDefaultImpl#getQuotedName(java.lang.String) */ protected String getQuotedName(String aString) { - return '[' + aString + ']'; + return '[' + aString + ']'; } } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsSQLServerImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsSQLServerImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsSQLServerImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMsSQLServerImpl.java Fri Dec 22 16:22:05 2006 @@ -20,6 +20,8 @@ import java.sql.Types; import java.sql.SQLException; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /** * This class extends <code>PlatformDefaultImpl</code> and defines specific behavior for the * Microsoft SQL Server platform. @@ -28,6 +30,11 @@ */ public class PlatformMsSQLServerImpl extends PlatformDefaultImpl { + public PlatformMsSQLServerImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * Get join syntax type for this RDBMS - one on of the constants from JoinSyntaxType interface * MBAIRD: MS SQL Server 2000 actually supports both types, but due to a problem with the sql @@ -39,7 +46,7 @@ } public CallableStatement prepareNextValProcedureStatement(Connection con, String procedureName, - String sequenceName) throws PlatformException + String sequenceName) throws PlatformException { try { @@ -85,6 +92,6 @@ */ protected String getQuotedName(String aString) { - return '[' + aString + ']'; + return '[' + aString + ']'; } } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformMySQLImpl.java Fri Dec 22 16:22:05 2006 @@ -27,17 +27,21 @@ import org.apache.ojb.broker.query.LikeCriteria; import org.apache.ojb.broker.metadata.FieldDescriptor; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; import org.apache.commons.lang.SerializationUtils; /** - * @version 1.0 - * @author jakob bräuchi * @version $Id$ */ public class PlatformMySQLImpl extends PlatformDefaultImpl { private static final String LAST_INSERT = "SELECT LAST_INSERT_ID() FROM "; private static final String LIMIT = " LIMIT 1"; + + public PlatformMySQLImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } /* * @see Platform#setObjectForStatement(PreparedStatement, int, Object, int) Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformPostgreSQLImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformPostgreSQLImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformPostgreSQLImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformPostgreSQLImpl.java Fri Dec 22 16:22:05 2006 @@ -22,6 +22,7 @@ import org.apache.ojb.broker.query.LikeCriteria; import org.apache.ojb.broker.util.sequence.SequenceManagerHelper; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; /** * This class extends <code>PlatformDefaultImpl</code> and defines specific @@ -115,12 +116,16 @@ * </tr> * </table> * - * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Mahler<a> * @version $Id$ */ public class PlatformPostgreSQLImpl extends PlatformDefaultImpl { + public PlatformPostgreSQLImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + public void setObjectForStatement(PreparedStatement ps, int index, Object value, int sqlType) throws SQLException { if ((value instanceof byte[]) && (sqlType == Types.LONGVARBINARY)) Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSapdbImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSapdbImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSapdbImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSapdbImpl.java Fri Dec 22 16:22:05 2006 @@ -23,6 +23,7 @@ import org.apache.ojb.broker.util.sequence.SequenceManagerHelper; import org.apache.ojb.broker.metadata.FieldDescriptor; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; import org.apache.commons.lang.SerializationUtils; /** @@ -41,87 +42,90 @@ * * <table cellspacing="2" cellpadding="2" border="3" frame="box"> * <tr> - * <td><strong>Property Key</strong></td> - * <td><strong>Property Values</strong></td> + * <td><strong>Property Key</strong></td> + * <td><strong>Property Values</strong></td> * </tr> * <tr> - * <td>sequenceStart</td> - * <td> - * DEPRECATED. Database sequence specific property.<br/> - * Specifies the first sequence number to be - * generated. Allowed: <em>1</em> or greater. - * </td> - * </tr> - * <tr> - * <td>seq.start</td> - * <td> - * Database sequence specific property.<br/> - * Specifies the first sequence number to be - * generated. Allowed: <em>1</em> or greater. - * </td> - * </tr> - * <tr> - * <td>seq.incrementBy</td> - * <td> - * Database sequence specific property.<br/> - * Specifies the interval between sequence numbers. - * This value can be any positive or negative - * integer, but it cannot be 0. - * </td> - * </tr> - * <tr> - * <td>seq.maxValue</td> - * <td> - * Database sequence specific property.<br/> - * Set max value for sequence numbers. - * </td> - * </tr> - * <tr> - * <td>seq.minValue</td> - * <td> - * Database sequence specific property.<br/> - * Set min value for sequence numbers. - * </td> - * </tr> - * <tr> - * <td>seq.cycle</td> - * <td> - * Database sequence specific property.<br/> - * If <em>true</em>, specifies that the sequence continues to generate - * values after reaching either its maximum or minimum value. - * <br/> - * If <em>false</em>, specifies that the sequence cannot generate more values after - * reaching its maximum or minimum value. - * </td> - * </tr> - * <tr> - * <td>seq.cache</td> - * <td> - * Database sequence specific property.<br/> - * Specifies how many values of the sequence Oracle - * preallocates and keeps in memory for faster access. - * Allowed values: <em>2</em> or greater. If set <em>0</em>, - * an explicite <em>nocache</em> expression will be set. - * </td> - * </tr> - * <tr> - * <td>seq.order</td> - * <td> - * Database sequence specific property.<br/> - * If set <em>true</em>, guarantees that sequence numbers - * are generated in order of request. - * <br/> - * If <em>false</em>, a <em>no order</em> expression will be set. - * </td> + * <td>sequenceStart</td> + * <td> + * DEPRECATED. Database sequence specific property.<br/> + * Specifies the first sequence number to be + * generated. Allowed: <em>1</em> or greater. + * </td> + * </tr> + * <tr> + * <td>seq.start</td> + * <td> + * Database sequence specific property.<br/> + * Specifies the first sequence number to be + * generated. Allowed: <em>1</em> or greater. + * </td> + * </tr> + * <tr> + * <td>seq.incrementBy</td> + * <td> + * Database sequence specific property.<br/> + * Specifies the interval between sequence numbers. + * This value can be any positive or negative + * integer, but it cannot be 0. + * </td> + * </tr> + * <tr> + * <td>seq.maxValue</td> + * <td> + * Database sequence specific property.<br/> + * Set max value for sequence numbers. + * </td> + * </tr> + * <tr> + * <td>seq.minValue</td> + * <td> + * Database sequence specific property.<br/> + * Set min value for sequence numbers. + * </td> + * </tr> + * <tr> + * <td>seq.cycle</td> + * <td> + * Database sequence specific property.<br/> + * If <em>true</em>, specifies that the sequence continues to generate + * values after reaching either its maximum or minimum value. + * <br/> + * If <em>false</em>, specifies that the sequence cannot generate more values after + * reaching its maximum or minimum value. + * </td> + * </tr> + * <tr> + * <td>seq.cache</td> + * <td> + * Database sequence specific property.<br/> + * Specifies how many values of the sequence Oracle + * preallocates and keeps in memory for faster access. + * Allowed values: <em>2</em> or greater. If set <em>0</em>, + * an explicite <em>nocache</em> expression will be set. + * </td> + * </tr> + * <tr> + * <td>seq.order</td> + * <td> + * Database sequence specific property.<br/> + * If set <em>true</em>, guarantees that sequence numbers + * are generated in order of request. + * <br/> + * If <em>false</em>, a <em>no order</em> expression will be set. + * </td> * </tr> * </table> * - * @author Justin A. Stanczak - * @author Matthew Baird (mattb * @version $Id$ */ public class PlatformSapdbImpl extends PlatformDefaultImpl { + public PlatformSapdbImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + public void setObjectForStatement( PreparedStatement ps, int index, @@ -129,7 +133,7 @@ int sqlType) throws SQLException { - switch (sqlType) + switch(sqlType) { case Types.VARBINARY: case Types.LONGVARBINARY: @@ -270,7 +274,7 @@ public String getLastInsertIdentityQuery(String tableName) { // support for MaxDB/SapDB SERIAL columns - return "select " + tableName +".currval from DUAL"; + return "select " + tableName + ".currval from DUAL"; } /* (non-Javadoc) Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASAImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASAImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASAImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASAImpl.java Fri Dec 22 16:22:05 2006 @@ -30,11 +30,15 @@ * * <br/>NOTE: Different than the Sybase ASE platform * <br/> Modified by Nicus for Sybase ASA - * @author <a href="mailto:[EMAIL PROTECTED]">Matthew Baird<a> * @version $Id$ */ public class PlatformSybaseASAImpl extends PlatformSybaseImpl { + public PlatformSybaseASAImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * Sybase Adaptive Server Enterprise (ASE) support timestamp to a precision of 1/300th of second. * Adaptive Server Anywhere (ASA) support timestamp to a precision of 1/1000000tho of second. @@ -44,10 +48,10 @@ * <br/> * author Lorenzo Nicora */ - public void initializeJdbcConnection(JdbcConnectionDescriptor jcd, Connection conn) throws PlatformException + public void initializeJdbcConnection(Connection conn) throws PlatformException { // Do origial init - super.initializeJdbcConnection(jcd, conn); + super.initializeJdbcConnection(conn); // Execute a statement setting the tempory option try { Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASEImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASEImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASEImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseASEImpl.java Fri Dec 22 16:22:05 2006 @@ -1,5 +1,7 @@ package org.apache.ojb.broker.platforms; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /* Copyright 2002-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,11 +24,15 @@ * * NOTE: Different than the Sybase ASA platform * - * @author <a href="mailto:[EMAIL PROTECTED]">Matthew Baird<a> * @version $Id$ */ public class PlatformSybaseASEImpl extends PlatformSybaseImpl { + public PlatformSybaseASEImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + public String getLastInsertIdentityQuery(String tableName) { // the function is used by the Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformSybaseImpl.java Fri Dec 22 16:22:05 2006 @@ -1,5 +1,7 @@ package org.apache.ojb.broker.platforms; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; + /* Copyright 2002-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,11 +24,15 @@ * to use one of the specific Sybase platform classes like [EMAIL PROTECTED] PlatformSybaseASEImpl} * or [EMAIL PROTECTED] PlatformSybaseASAImpl}. * - [EMAIL PROTECTED] Oleg Nitz [EMAIL PROTECTED] $Id$ */ public class PlatformSybaseImpl extends PlatformDefaultImpl { + public PlatformSybaseImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } + /** * Get join syntax type for this RDBMS - one on of the constants from JoinSyntaxType interface */ Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformWLOracle9iImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformWLOracle9iImpl.java?view=diff&rev=489807&r1=489806&r2=489807 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformWLOracle9iImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/platforms/PlatformWLOracle9iImpl.java Fri Dec 22 16:22:05 2006 @@ -21,11 +21,13 @@ import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Types; +import java.sql.Statement; import java.util.Collections; import java.util.Map; import java.util.WeakHashMap; import org.apache.ojb.broker.util.ClassHelper; +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor; /** * This class is a concrete implementation of <code>Platform</code>. Provides @@ -76,6 +78,10 @@ protected static final Object[] PARAM_STATEMENT_BATCH_SIZE = new Object[]{new Integer(STATEMENTS_PER_BATCH)}; protected static final Object[] PARAM_BOOLEAN_TRUE = new Object[]{Boolean.TRUE}; + public PlatformWLOracle9iImpl(JdbcConnectionDescriptor jcd) + { + super(jcd); + } /** * Enables Oracle row prefetching if supported. @@ -85,7 +91,7 @@ * @param stmt the statement just created * @throws PlatformException upon JDBC failure */ - public void afterStatementCreate(java.sql.Statement stmt) throws PlatformException + public void afterStatementCreate(Statement stmt) throws PlatformException { super.afterStatementCreate(stmt); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]