Author: allee8285
Date: Fri Feb 15 12:47:09 2008
New Revision: 628168

URL: http://svn.apache.org/viewvc?rev=628168&view=rev
Log:
Enable PersisentProviderImpl subclass to override the configuration impl used 
by class transformer. The current OpenJPAConfigurationImpl does not recognize 
options defined in its sub-class and posted an invalid warning message.

Modified:
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=628168&r1=628167&r2=628168&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
 Fri Feb 15 12:47:09 2008
@@ -124,7 +124,7 @@
                 (CLASS_TRANSFORMER_OPTIONS, pui.getProperties());
             try {
                 pui.addTransformer(new ClassTransformerImpl(cp, ctOpts,
-                    pui.getNewTempClassLoader()));
+                    pui.getNewTempClassLoader(), newConfigurationImpl()));
             } catch (Exception e) {
                 // fail gracefully
                 transformerException = e;
@@ -168,6 +168,16 @@
         return BrokerValue.NON_FINALIZING_ALIAS;
     }
     
+    /*
+     * Return a new instance of Configuration subclass used by entity
+     * enhancement in ClassTransformerImpl. If OpenJPAConfigurationImpl
+     * instance is used, configuration options declared in configuration
+     * sub-class will not be recognized and a warning is posted in the log.
+     */
+    protected OpenJPAConfiguration newConfigurationImpl() {
+        return new OpenJPAConfigurationImpl();
+    }
+    
     /**
      * Java EE 5 class transformer.
      */
@@ -177,9 +187,7 @@
         private final ClassFileTransformer _trans;
 
         private ClassTransformerImpl(ConfigurationProvider cp, String props, 
-            final ClassLoader tmpLoader) {
-            // create an independent conf for enhancement
-            OpenJPAConfiguration conf = new OpenJPAConfigurationImpl();
+            final ClassLoader tmpLoader, OpenJPAConfiguration conf) {
             cp.setInto(conf);
             // don't allow connections
             conf.setConnectionUserName(null);


Reply via email to