Author: aadamchik
Date: Wed Feb 22 11:55:12 2012
New Revision: 1292249

URL: http://svn.apache.org/viewvc?rev=1292249&view=rev
Log:
CAY-1669 RuntimeProperties use of System properties becomes a contention point 
when creating query translators

Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DefaultRuntimeProperties.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Wed Feb 22 
11:55:12 2012
@@ -39,6 +39,7 @@ CAY-1662 @Auditable and @AuditableChild 
 CAY-1663 @CacheGroups annotation should allow an empty list of cache groups
 CAY-1666 Fix problem with tests on ingres db
 CAY-1667 Expression parser performance optimization
+CAY-1669 RuntimeProperties use of System properties becomes a contention point 
when creating query translators 
 
 Bug Fixes Since 3.1M3:
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DefaultRuntimeProperties.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DefaultRuntimeProperties.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DefaultRuntimeProperties.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DefaultRuntimeProperties.java
 Wed Feb 22 11:55:12 2012
@@ -45,6 +45,8 @@ public class DefaultRuntimeProperties im
 
     public String get(String key) {
 
+        // TODO: note that System.getProperty uses a synchronized hashtable 
internally as
+        // of Java 1.6. So this method suddenly becomes a synchronization 
bottleneck.
         String property = System.getProperty(key);
 
         if (property != null) {

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -82,7 +82,7 @@ public class JdbcAdapter implements DbAd
     protected String identifiersEndQuote;
     
     protected ResourceLocator resourceLocator;
-    protected RuntimeProperties runtimeProperties;
+    protected boolean caseInsensitiveCollations;
 
     /**
      * @since 3.1
@@ -118,7 +118,7 @@ public class JdbcAdapter implements DbAd
         // init defaults
         this.setSupportsBatchUpdates(false);
         this.setSupportsUniqueConstraints(true);
-        this.runtimeProperties = runtimeProperties;
+        this.caseInsensitiveCollations = 
runtimeProperties.getBoolean(CI_PROPERTY, false);
 
         // TODO: andrus 05.02.2010 - ideally this should be injected
         this.resourceLocator = new ClassLoaderResourceLocator();
@@ -227,8 +227,7 @@ public class JdbcAdapter implements DbAd
     protected EJBQLTranslatorFactory createEJBQLTranslatorFactory() {
         JdbcEJBQLTranslatorFactory translatorFactory = 
                 new JdbcEJBQLTranslatorFactory();
-        translatorFactory.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translatorFactory.setCaseInsensitive(caseInsensitiveCollations);
         return translatorFactory;
     }
 
@@ -518,7 +517,7 @@ public class JdbcAdapter implements DbAd
      */
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
QualifierTranslator(queryAssembler);
-        
translator.setCaseInsensitive(runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
 Wed Feb 22 11:55:12 2012
@@ -204,8 +204,7 @@ public class DB2Adapter extends JdbcAdap
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
DB2QualifierTranslator(queryAssembler, "RTRIM");
-        translator.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -195,7 +195,7 @@ public class DerbyAdapter extends JdbcAd
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
DerbyQualifierTranslator(queryAssembler, "RTRIM");
-        
translator.setCaseInsensitive(runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
     

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -110,7 +110,7 @@ public class MySQLAdapter extends JdbcAd
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
MySQLQualifierTranslator(queryAssembler);
-        
translator.setCaseInsensitive(runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 
@@ -232,8 +232,7 @@ public class MySQLAdapter extends JdbcAd
     protected EJBQLTranslatorFactory createEJBQLTranslatorFactory() {
         JdbcEJBQLTranslatorFactory translatorFactory = 
                 new MySQLEJBQLTranslatorFactory();
-        translatorFactory.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translatorFactory.setCaseInsensitive(caseInsensitiveCollations);
         return translatorFactory;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
 Wed Feb 22 11:55:12 2012
@@ -99,8 +99,7 @@ public class Oracle8Adapter extends Orac
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
Oracle8QualifierTranslator(queryAssembler);
-        translator.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -296,8 +296,7 @@ public class OracleAdapter extends JdbcA
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
Oracle8QualifierTranslator(queryAssembler);
-        translator.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -265,8 +265,7 @@ public class PostgresAdapter extends Jdb
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         QualifierTranslator translator = new 
PostgresQualifierTranslator(queryAssembler);
-        translator.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java?rev=1292249&r1=1292248&r2=1292249&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
 Wed Feb 22 11:55:12 2012
@@ -116,8 +116,7 @@ public class SQLServerAdapter extends Sy
         QualifierTranslator translator = new 
SQLServerTrimmingQualifierTranslator(
                 queryAssembler,
                 SQLServerAdapter.TRIM_FUNCTION);
-        translator.setCaseInsensitive(
-                runtimeProperties.getBoolean(CI_PROPERTY, false));
+        translator.setCaseInsensitive(caseInsensitiveCollations);
         return translator;
     }
 


Reply via email to