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);