You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2008/08/06 03:28:27 UTC
svn commit: r683075 - in /openjpa:
branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
Author: fancy
Date: Tue Aug 5 18:28:26 2008
New Revision: 683075
URL: http://svn.apache.org/viewvc?rev=683075&view=rev
Log:
OPENJPA-674 javaagent enhancer (PCEnhancerAgent) ignores persistence units after the first in persistence.xml
committing PCEnhancerAgent.patch provided by Dinkar Rao
Modified:
openjpa/branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
Modified: openjpa/branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java?rev=683075&r1=683074&r2=683075&view=diff
==============================================================================
--- openjpa/branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java (original)
+++ openjpa/branches/1.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java Tue Aug 5 18:28:26 2008
@@ -20,6 +20,8 @@
import java.lang.instrument.Instrumentation;
import java.security.AccessController;
+import java.util.Iterator;
+import java.util.List;
import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
@@ -90,30 +92,39 @@
private static void registerClassLoadEnhancer(Instrumentation inst,
Options opts) {
- OpenJPAConfiguration conf = new OpenJPAConfigurationImpl();
- Configurations.populateConfiguration(conf, opts);
- // don't allow connections
- conf.setConnectionUserName(null);
- conf.setConnectionPassword(null);
- conf.setConnectionURL(null);
- conf.setConnectionDriverName(null);
- conf.setConnectionFactoryName(null);
- // set single class resolver
- final ClassLoader tmpLoader = (ClassLoader) AccessController
- .doPrivileged(J2DoPrivHelper
- .newTemporaryClassLoaderAction((ClassLoader) AccessController
- .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction())
- ));
- conf.setClassResolver(new ClassResolver() {
- public ClassLoader getClassLoader(Class context, ClassLoader env) {
- return tmpLoader;
- }
- });
- conf.setReadOnly(Configuration.INIT_STATE_FREEZING);
- conf.instantiateAll(); // avoid threading issues
-
- PCClassFileTransformer transformer = new PCClassFileTransformer
- (conf.newMetaDataRepositoryInstance(), opts, tmpLoader);
- inst.addTransformer(transformer);
+ List<String> anchors = Configurations.
+ getFullyQualifiedAnchorsInPropertiesLocation(opts);
+ for (String a : anchors) {
+ Options clonedOptions = (Options) opts.clone();
+ clonedOptions.setProperty("properties", a);
+ OpenJPAConfiguration conf = new OpenJPAConfigurationImpl();
+ Configurations.populateConfiguration(conf, clonedOptions);
+ // don't allow connections
+ conf.setConnectionUserName(null);
+ conf.setConnectionPassword(null);
+ conf.setConnectionURL(null);
+ conf.setConnectionDriverName(null);
+ conf.setConnectionFactoryName(null);
+ // set single class resolver
+ final ClassLoader tmpLoader = (ClassLoader) AccessController
+ .doPrivileged(J2DoPrivHelper
+ .newTemporaryClassLoaderAction((ClassLoader) AccessController
+ .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction())
+ ));
+ conf.setClassResolver(new ClassResolver() {
+ public ClassLoader getClassLoader(Class context,
+ ClassLoader env) {
+ return tmpLoader;
+ }
+ });
+ conf.setReadOnly(Configuration.INIT_STATE_FREEZING);
+ conf.instantiateAll(); // avoid threading issues
+
+ PCClassFileTransformer transformer = new PCClassFileTransformer
+ (conf.newMetaDataRepositoryInstance(), clonedOptions,
+ tmpLoader);
+ inst.addTransformer(transformer);
+ conf.close();
+ }
}
}
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java?rev=683075&r1=683074&r2=683075&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancerAgent.java Tue Aug 5 18:28:26 2008
@@ -20,6 +20,8 @@
import java.lang.instrument.Instrumentation;
import java.security.AccessController;
+import java.util.Iterator;
+import java.util.List;
import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
@@ -90,30 +92,39 @@
private static void registerClassLoadEnhancer(Instrumentation inst,
Options opts) {
- OpenJPAConfiguration conf = new OpenJPAConfigurationImpl();
- Configurations.populateConfiguration(conf, opts);
- // don't allow connections
- conf.setConnectionUserName(null);
- conf.setConnectionPassword(null);
- conf.setConnectionURL(null);
- conf.setConnectionDriverName(null);
- conf.setConnectionFactoryName(null);
- // set single class resolver
- final ClassLoader tmpLoader = (ClassLoader) AccessController
- .doPrivileged(J2DoPrivHelper
- .newTemporaryClassLoaderAction((ClassLoader) AccessController
- .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction())
- ));
- conf.setClassResolver(new ClassResolver() {
- public ClassLoader getClassLoader(Class context, ClassLoader env) {
- return tmpLoader;
- }
- });
- conf.setReadOnly(Configuration.INIT_STATE_FREEZING);
- conf.instantiateAll(); // avoid threading issues
-
- PCClassFileTransformer transformer = new PCClassFileTransformer
- (conf.newMetaDataRepositoryInstance(), opts, tmpLoader);
- inst.addTransformer(transformer);
+ List<String> anchors = Configurations.
+ getFullyQualifiedAnchorsInPropertiesLocation(opts);
+ for (String a : anchors) {
+ Options clonedOptions = (Options) opts.clone();
+ clonedOptions.setProperty("properties", a);
+ OpenJPAConfiguration conf = new OpenJPAConfigurationImpl();
+ Configurations.populateConfiguration(conf, clonedOptions);
+ // don't allow connections
+ conf.setConnectionUserName(null);
+ conf.setConnectionPassword(null);
+ conf.setConnectionURL(null);
+ conf.setConnectionDriverName(null);
+ conf.setConnectionFactoryName(null);
+ // set single class resolver
+ final ClassLoader tmpLoader = (ClassLoader) AccessController
+ .doPrivileged(J2DoPrivHelper
+ .newTemporaryClassLoaderAction((ClassLoader) AccessController
+ .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction())
+ ));
+ conf.setClassResolver(new ClassResolver() {
+ public ClassLoader getClassLoader(Class context,
+ ClassLoader env) {
+ return tmpLoader;
+ }
+ });
+ conf.setReadOnly(Configuration.INIT_STATE_FREEZING);
+ conf.instantiateAll(); // avoid threading issues
+
+ PCClassFileTransformer transformer = new PCClassFileTransformer
+ (conf.newMetaDataRepositoryInstance(), clonedOptions,
+ tmpLoader);
+ inst.addTransformer(transformer);
+ conf.close();
+ }
}
}