Author: hthomann Date: Tue Aug 9 13:30:29 2011 New Revision: 1155358 URL: http://svn.apache.org/viewvc?rev=1155358&view=rev Log: OPENJPA-1376: Added property for forward compatibility, documented property and migration considerations.
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/localizer.properties openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=1155358&r1=1155357&r2=1155358&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Tue Aug 9 13:30:29 2011 @@ -351,6 +351,26 @@ public class DBDictionary public String sequenceNameSQL = null; // most native sequences can be run inside the business transaction public int nativeSequenceType= Seq.TYPE_CONTIGUOUS; + + /** + * This variable was used in 2.1.x and prior releases to indicate that + * OpenJPA should not use the CACHE clause when getting a native + * sequence; instead the INCREMENT BY clause gets its value equal to the + * allocationSize property. Post 2.1.x, code was added to allow + * said functionality by default (see OPENJPA-1376). For forward + * compatibility, this variable should not be removed. + */ + @Deprecated + public boolean useNativeSequenceCache = true; + + /** + * If a user sets the previous variable (useNativeSequenceCache) to false, we should log a + * warning indicating that the variable no longer has an effect due to the code changes + * of OPENJPA-1376. We only want to log the warning once per instance, thus this + * variable will be used to indicate if the warning should be printed or not. + */ + @Deprecated + private boolean logNativeSequenceCacheWarning = true; protected JDBCConfiguration conf = null; protected Log log = null; @@ -3388,6 +3408,19 @@ public class DBDictionary public String[] getCreateSequenceSQL(Sequence seq) { if (nextSequenceQuery == null) return null; + + //We need a place to detect if the user is setting the 'useNativeSequenceCache' property. + //While in previous releases this property had meaning, it is no longer useful + //given the code added via OPENJPA-1327. As such, we need to warn user's the + //property no longer has meaning. While it would be nice to have a better way + //to detect if the useNativeSequenceCache property has been set, the best we can do + //is detect the variable in this code path as this is the path a user's code + //would go down if they are still executing code which actually made use of + //the support provided via setting useNativeSequenceCache. + if (!useNativeSequenceCache && logNativeSequenceCacheWarning){ + log.warn(_loc.get("sequence-cache-warning")); + logNativeSequenceCacheWarning=false; + } StringBuilder buf = new StringBuilder(); buf.append("CREATE SEQUENCE "); Modified: openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/localizer.properties URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/localizer.properties?rev=1155358&r1=1155357&r2=1155358&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/localizer.properties (original) +++ openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/localizer.properties Tue Aug 9 13:30:29 2011 @@ -224,3 +224,7 @@ invalid-locking-mode: Invalid locking mo oracle-set-clob-warning: Setting the supportsSetClob property on the OracleDictionary no longer has an \ effect. Code has been added to allow, by default, the functionality provided in previous releases \ via the supportsSetClob property. +sequence-cache-warning: Setting the useNativeSequenceCache property on the DBDictionary no longer has an \ + effect. Code has been added to allow, by default, the functionality provided in previous releases \ + via the useNativeSequenceCache property. + Modified: openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml?rev=1155358&r1=1155357&r2=1155358&view=diff ============================================================================== --- openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml (original) +++ openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml Tue Aug 9 13:30:29 2011 @@ -444,6 +444,20 @@ has no effect in 2.1.x and later releases and any occurrence of it should be removed. </para> </section> + <section id="UseNativeSequenceCache"> + <title> + useNativeSequenceCache property. + </title> + <!-- See OPENJPA-1376 for details. --> + <para> + In the OpenJPA 2.2.x release, code was added which changed the way sequences were generated, please see + <xref linkend="jpa_2.2_allocationSize"/> for details. This functionality was eventually back ported + to previous releases, and enabeld by the useNativeSequenceCache property on the DBDictionary. Setting this property + has no effect in 2.2.x and later releases and any occurrence of it should be removed. If previous behavior is + desired (i.e. useNativeSequenceCache=true), please see the details described in section + <xref linkend="jpa_2.2_allocationSize"/>. + </para> + </section> </section> </section> </appendix> Modified: openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml?rev=1155358&r1=1155357&r2=1155358&view=diff ============================================================================== --- openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml (original) +++ openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml Tue Aug 9 13:30:29 2011 @@ -3419,6 +3419,27 @@ ResultSet.getString</methodname> will be UseSchemaName </secondary> </indexterm> +<literal>UseNativeSequenceCache</literal>: This property was used in +2.1.x and prior releases to indicate (when set to false) that OpenJPA +should not use the CACHE clause when getting a native sequence; instead +the INCREMENT BY clause gets its value equal to the allocationSize +property. Post 2.1.x, code was added to allow said functionality by +default (see OPENJPA-1376). +For forward compatibility, this property still remains, however it has +been deprecated and will eventually be removed. Setting this property +has no effect and any occurrence of it should be removed. + </para> + </listitem> + <listitem id="DBDictionary.UseNativeSequenceCache"> + <para> + <indexterm> + <primary> + Sequence + </primary> + <secondary> + UseNativeSequenceCache + </secondary> + </indexterm> <literal>UseSchemaName</literal>: If <literal>false</literal>, then avoid including the schema name in table name references. Defaults to <literal>true </literal>.