You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2016/09/13 17:29:02 UTC

svn commit: r1760580 [1/5] - in /openjpa/branches/fb-3.0-asm: openjpa-examples/openbooks/ openjpa-kernel/src/main/java/org/apache/openjpa/ant/ openjpa-kernel/src/main/java/org/apache/openjpa/conf/ openjpa-kernel/src/main/java/org/apache/openjpa/enhance...

Author: struberg
Date: Tue Sep 13 17:29:01 2016
New Revision: 1760580

URL: http://svn.apache.org/viewvc?rev=1760580&view=rev
Log:
OPENJPA-2662 extract API for PCEnhancer

The old PCEnhancer code is now mostly in PCEnhancerSerp 

Added:
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerImplSerp.java   (with props)
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerSerp.java   (with props)
Modified:
    openjpa/branches/fb-3.0-asm/openjpa-examples/openbooks/build.xml
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AttributeTranslator.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ReflectingPersistenceCapable.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
    openjpa/branches/fb-3.0-asm/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestPCSubclassNameConversion.java
    openjpa/branches/fb-3.0-asm/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
    openjpa/branches/fb-3.0-asm/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ProductDerivation.java
    openjpa/branches/fb-3.0-asm/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ProductDerivations.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/AbstractUnenhancedClassTest.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestPCEnhancerEnhancementContractVersion.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestPCEnhancerFindField.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/DummyPersistenceCapeable.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/enhance/TestNoNoArgs.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestDetachedStateManager.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/query/QueryDefinitionImpl.java
    openjpa/branches/fb-3.0-asm/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/util/ReservedWords.java
    openjpa/branches/fb-3.0-asm/openjpa-project/src/doc/manual/jpa_tutorials.xml
    openjpa/branches/fb-3.0-asm/openjpa-project/src/doc/manual/ref_guide_integration.xml
    openjpa/branches/fb-3.0-asm/openjpa-project/src/doc/manual/ref_guide_pc.xml
    openjpa/branches/fb-3.0-asm/openjpa-project/src/doc/manual/samples_guide.xml
    openjpa/branches/fb-3.0-asm/openjpa-tools/openjpa-fetch-statistics/src/main/java/org/apache/openjpa/enhance/stats/FetchStatisticsAuxEnhancer.java
    openjpa/branches/fb-3.0-asm/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaEnhancerMojo.java

Modified: openjpa/branches/fb-3.0-asm/openjpa-examples/openbooks/build.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-examples/openbooks/build.xml?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-examples/openbooks/build.xml (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-examples/openbooks/build.xml Tue Sep 13 17:29:01 2016
@@ -173,7 +173,7 @@
 	
 	<target name="enhance" depends="check-env"
 		description="Enhance persistent domain classes.">
-		<java classname="org.apache.openjpa.enhance.PCEnhancer" fork="true">
+		<java classname="org.apache.openjpa.enhance.PCEnhancerSerp" fork="true">
 			<arg value="-properties" />
 			<arg value="${jpa.properties}" />
 			<classpath refid="compile.classpath" />

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java Tue Sep 13 17:29:01 2016
@@ -26,7 +26,6 @@ import org.apache.openjpa.enhance.PCEnha
 import org.apache.openjpa.lib.ant.AbstractTask;
 import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.util.Files;
-import org.apache.openjpa.meta.MetaDataRepository;
 
 /**
  * Executes the enhancer on the specified files. This task can take
@@ -80,12 +79,14 @@ public class PCEnhancerTask
         return new OpenJPAConfigurationImpl();
     }
 
-    protected void executeOn(String[] files)
-        throws IOException {
-        flags.directory = (dirName == null) ? null
-            : Files.getFile(dirName, getClassLoader());
+    protected void executeOn(String[] files) throws IOException {
+        flags.directory = (dirName == null) ? null : Files.getFile(dirName, getClassLoader());
         OpenJPAConfiguration conf = (OpenJPAConfiguration) getConfiguration();
-        MetaDataRepository repos = conf.newMetaDataRepositoryInstance();
-        PCEnhancer.run(conf, files, flags, repos, null, getClassLoader ());
-	}
+
+        //X MetaDataRepository repos = conf.newMetaDataRepositoryInstance();
+        //X PCEnhancerSerp.run(conf, files, flags, repos, null, getClassLoader ());
+        //X TODO what about repos?
+
+        conf.getPCEnhancerInstance().enhanceFiles(files, flags, getClassLoader());
+    }
 }

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java Tue Sep 13 17:29:01 2016
@@ -27,6 +27,7 @@ import org.apache.openjpa.datacache.Data
 import org.apache.openjpa.datacache.DataCacheManager;
 import org.apache.openjpa.datacache.DataCacheMode;
 import org.apache.openjpa.ee.ManagedRuntime;
+import org.apache.openjpa.enhance.PCEnhancer;
 import org.apache.openjpa.enhance.RuntimeUnenhancedClassesModes;
 import org.apache.openjpa.event.BrokerFactoryEventManager;
 import org.apache.openjpa.event.LifecycleEventManager;
@@ -296,6 +297,23 @@ public interface OpenJPAConfiguration
     public ClassResolver getClassResolverInstance();
 
     /**
+     * The plugin string for the {@link PCEnhancer} to use for custom
+     * class loading.
+     */
+    public String getPCEnhancer();
+
+    /**
+     * The plugin string for the {@link PCEnhancer} to use for custom
+     * class loading.
+     */
+    public void setPCEnhancer(String pcEnhancer);
+
+    /**
+     * The {@link PCEnhancer} to use.
+     */
+    public PCEnhancer getPCEnhancerInstance();
+
+    /**
      * The {@link ClassResolver} to use.
      */
     public void setClassResolver(ClassResolver classResolver);
@@ -1846,7 +1864,7 @@ public interface OpenJPAConfiguration
      * Sets the plug-in string that describes the policy to distribute cached instances
      * across named partitions of L2 data cache.
      * 
-     * @param a plug-in string for {@link CacheDistributionPolicy}.
+     * @param policyPlugin a plug-in string for {@link CacheDistributionPolicy}.
      * @since 2.0.0
      */
     public void setCacheDistributionPolicy(String policyPlugin);

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java Tue Sep 13 17:29:01 2016
@@ -22,6 +22,8 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Map;
 
+import org.apache.openjpa.enhance.PCEnhancer;
+import org.apache.openjpa.enhance.PCEnhancerImplSerp;
 import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.audit.AuditLogger;
 import org.apache.openjpa.audit.Auditor;
@@ -189,6 +191,10 @@ public class OpenJPAConfigurationImpl
     private BrokerFactoryEventManager _brokerFactoryEventManager = new BrokerFactoryEventManager(this);
     private Map<String, Object> _peMap; //contains persistence environment-specific info    
     private boolean _allowSetLifeCycleEventManager = true;
+
+    //X TODO we later have to think about making it a PluginValue probably?
+    private PCEnhancer pcEnhancerInstance = new PCEnhancerImplSerp(this);
+
     /**
      * Default constructor. Attempts to load global properties.
      */
@@ -685,6 +691,21 @@ public class OpenJPAConfigurationImpl
         return (ClassResolver) classResolverPlugin.get();
     }
 
+    @Override
+    public String getPCEnhancer() {
+        return null;
+    }
+
+    @Override
+    public void setPCEnhancer(String pcEnhancer) {
+
+    }
+
+    @Override
+    public PCEnhancer getPCEnhancerInstance() {
+        return pcEnhancerInstance;
+    }
+
     public void setBrokerFactory(String factory) {
         brokerFactoryPlugin.setString(factory);
     }

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AttributeTranslator.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AttributeTranslator.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AttributeTranslator.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AttributeTranslator.java Tue Sep 13 17:29:01 2016
@@ -20,12 +20,12 @@ package org.apache.openjpa.enhance;
 
 /**
  * Instances of this interface can convert a positional index for a
- * {@link FieldMetaData} that uses property access into the underlying
+ * {@link org.apache.openjpa.meta.FieldMetaData} that uses property access into the underlying
  * field name. Instances of {@link DynamicPersistenceCapable} for types
  * that use property access will implement this interface.
  *
  * @since 1.0.0
  */
 public interface AttributeTranslator {
-    public String pcAttributeIndexToFieldName(int i);
+    String pcAttributeIndexToFieldName(int i);
 }

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java Tue Sep 13 17:29:01 2016
@@ -130,7 +130,7 @@ public class ManagedClassSubclasser {
         Set<Class<?>> unspecified = null;
         for (Class<?> cls : classes) {
             final Class<?> c = cls;
-            final PCEnhancer enhancer = new PCEnhancer(conf, cls); 
+            final PCEnhancerSerp enhancer = new PCEnhancerSerp(conf, cls);
 
             enhancer.setBytecodeWriter(new BytecodeWriter() {
                 public void write(BCClass bc) throws IOException {
@@ -264,7 +264,7 @@ public class ManagedClassSubclasser {
         }
     }
 
-    private static void write(BCClass bc, PCEnhancer enhancer,
+    private static void write(BCClass bc, PCEnhancerSerp enhancer,
         Map<Class<?>, byte[]> map, Class<?> cls, List<Class<?>> subs, List<Class<?>> ints)
         throws IOException {
 

Modified: openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
URL: http://svn.apache.org/viewvc/openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java?rev=1760580&r1=1760579&r2=1760580&view=diff
==============================================================================
--- openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java (original)
+++ openjpa/branches/fb-3.0-asm/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java Tue Sep 13 17:29:01 2016
@@ -94,7 +94,7 @@ public class PCClassFileTransformer
      * if none are configured
      */
     public PCClassFileTransformer(MetaDataRepository repos,
-        PCEnhancer.Flags flags, ClassLoader tmpLoader, boolean devscan) {
+                                  PCEnhancer.Flags flags, ClassLoader tmpLoader, boolean devscan) {
         _repos = repos;
         _tmpLoader = tmpLoader;
 
@@ -148,9 +148,9 @@ public class PCClassFileTransformer
             ClassLoader oldLoader = AccessController.doPrivileged(J2DoPrivHelper.getContextClassLoaderAction());
             AccessController.doPrivileged(J2DoPrivHelper.setContextClassLoaderAction(_tmpLoader));
             try {
-                PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(),
-                        new Project().loadClass(new ByteArrayInputStream(bytes),
-                                _tmpLoader), _repos);
+                PCEnhancerSerp enhancer = new PCEnhancerSerp(_repos.getConfiguration(),
+                        new Project().loadClass(new ByteArrayInputStream(bytes), _tmpLoader),
+                        _repos);
                 enhancer.setAddDefaultConstructor(_flags.addDefaultConstructor);
                 enhancer.setEnforcePropertyRestrictions
                         (_flags.enforcePropertyRestrictions);