You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2011/11/05 18:17:33 UTC
svn commit: r1197994 [10/10] - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-jdbc/src/main/java/org...
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Sat Nov 5 17:17:26 2011
@@ -116,7 +116,8 @@ public class XMLPersistenceMetaDataParse
SEQUENCE_GEN_SCHEMA
}
- private static final Map<String, Object> _elems = new HashMap<String, Object>();
+ private static final Map<String, Object> _elems =
+ new HashMap<String, Object>();
// Map for storing deferred metadata which needs to be populated
// after embeddables are loaded.
@@ -184,12 +185,13 @@ public class XMLPersistenceMetaDataParse
_elems.put("map-key-class", MAP_KEY_CLASS);
}
- private static final Localizer _loc = Localizer.forPackage(XMLPersistenceMetaDataParser.class);
+ private static final Localizer _loc = Localizer.forPackage
+ (XMLPersistenceMetaDataParser.class);
private final OpenJPAConfiguration _conf;
private MetaDataRepository _repos = null;
private AnnotationPersistenceMetaDataParser _parser = null;
-// private ClassLoader _envLoader = null;
+ private ClassLoader _envLoader = null;
private int _mode = MODE_NONE;
private boolean _override = false;
@@ -222,7 +224,6 @@ public class XMLPersistenceMetaDataParse
* Constructor; supply configuration.
*/
public XMLPersistenceMetaDataParser(OpenJPAConfiguration conf) {
- super(conf.getClassLoader());
_conf = conf;
setValidating(true);
setLog(conf.getLog(OpenJPAConfiguration.LOG_METADATA));
@@ -279,23 +280,31 @@ public class XMLPersistenceMetaDataParse
if (repos != null
&& (repos.getValidate() & MetaDataRepository.VALIDATE_RUNTIME) != 0)
setParseComments(false);
+
+ if (repos != null) {
+ // Determine if the Thread Context Classloader needs to be temporally overridden to the Classloader
+ // that loaded the OpenJPA classes, to avoid a potential deadlock issue with the way Xerces
+ // handles parsers and classloaders.
+ this.setOverrideContextClassloader(repos.getConfiguration().getCompatibilityInstance().
+ getOverrideContextClassloader());
+ }
}
/**
* Return the environmental class loader to pass on to parsed
* metadata instances.
*/
-// public ClassLoader getEnvClassLoader() {
-// return _envLoader;
-// }
+ public ClassLoader getEnvClassLoader() {
+ return _envLoader;
+ }
/**
* Set the environmental class loader to pass on to parsed
* metadata instances.
*/
-// public void setEnvClassLoader(ClassLoader loader) {
-// _envLoader = loader;
-// }
+ public void setEnvClassLoader(ClassLoader loader) {
+ _envLoader = loader;
+ }
/**
* Whether to allow later parses of mapping information to override
@@ -374,7 +383,8 @@ public class XMLPersistenceMetaDataParse
} catch (Throwable t) {
Log log = getLog();
if (log.isInfoEnabled())
- log.trace(_loc.get("version-check-error", file.toString()));
+ log.trace(_loc.get("version-check-error",
+ file.toString()));
}
super.parse(file);
}
@@ -872,7 +882,7 @@ public class XMLPersistenceMetaDataParse
&& ((isMetaDataMode() && (meta.getSourceMode() & MODE_META) != 0)
|| (isMappingMode() && (meta.getSourceMode() & MODE_MAPPING) != 0)))
{
- if (isDuplicateClass(meta)) {
+ if(isDuplicateClass(meta)) {
if (log.isWarnEnabled()) {
log.warn(_loc.get("dup-metadata", _cls, getSourceName()));
}
@@ -901,6 +911,7 @@ public class XMLPersistenceMetaDataParse
fmds[i].setExplicit(true);
}
}
+ meta.setEnvClassLoader(_envLoader);
meta.setSourceMode(MODE_NONE);
// parse annotations first so XML overrides them
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java Sat Nov 5 17:17:26 2011
@@ -960,7 +960,7 @@ public class XMLPersistenceMetaDataSeria
ClassMetaData meta = fmd.getEmbeddedMetaData();
ClassMetaData owner = getConfiguration().
getMetaDataRepositoryInstance().getMetaData
- (meta.getDescribedType(), true);
+ (meta.getDescribedType(), meta.getEnvClassLoader(), true);
FieldMetaData eorig;
for (FieldMetaData efmd : meta.getFields()) {
eorig = owner.getField(efmd.getName());
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaExpressionBuilder.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaExpressionBuilder.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaExpressionBuilder.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaExpressionBuilder.java Sat Nov 5 17:17:26 2011
@@ -92,7 +92,7 @@ class CriteriaExpressionBuilder {
for (Join<?,?> join : root.getJoins()) {
Class<?> cls = join.getAttribute().getJavaType();
if (join.getAttribute().isAssociation()) {
- ClassMetaData meta = metamodel.getRepository().getMetaData(cls, true);
+ ClassMetaData meta = metamodel.getRepository().getMetaData(cls, null, true);
PersistenceType type = MetamodelImpl.getPersistenceType(meta);
if (type == PersistenceType.ENTITY || type == PersistenceType.EMBEDDABLE)
metas.add(meta);
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java Sat Nov 5 17:17:26 2011
@@ -1056,7 +1056,7 @@ class Expressions {
ClassMetaData can = ((Types.Entity<X>)q.getRoot().getModel()).meta;
Class<?> candidate = can.getDescribedType();
if (candidate.isAssignableFrom((Class)value)) {
- lit.setMetaData(q.getMetamodel().getRepository().getMetaData((Class<?>)value, true));
+ lit.setMetaData(q.getMetamodel().getRepository().getMetaData((Class<?>)value, null, true));
} else {
lit.setMetaData(can);
}
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java Sat Nov 5 17:17:26 2011
@@ -82,9 +82,9 @@ public class MetamodelImpl implements Me
*/
public MetamodelImpl(MetaDataRepository repos) {
this.repos = repos;
- Collection<Class<?>> classes = repos.loadPersistentTypes(true);
+ Collection<Class<?>> classes = repos.loadPersistentTypes(true, null);
for (Class<?> cls : classes) {
- ClassMetaData meta = repos.getMetaData(cls, true);
+ ClassMetaData meta = repos.getMetaData(cls, null, true);
PersistenceType type = getPersistenceType(meta);
switch (type) {
case ENTITY:
@@ -221,7 +221,7 @@ public class MetamodelImpl implements Me
PersistenceType expected) {
if (container.containsKey(cls))
return container.get(cls);
- ClassMetaData meta = repos.getMetaData(cls, false);
+ ClassMetaData meta = repos.getMetaData(cls, null, false);
if (meta != null) {
instantiate(cls, meta, container, expected);
}
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleDelegatingClassLoader.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleDelegatingClassLoader.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleDelegatingClassLoader.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleDelegatingClassLoader.java Sat Nov 5 17:17:26 2011
@@ -28,6 +28,7 @@ import org.osgi.framework.Bundle;
* This is a simple ClassLoader that delegates to the Bundle
* and is used by the PersistenceUnitInfo
*
+ * @version $Rev$ $Date$
*/
public class BundleDelegatingClassLoader extends ClassLoader {
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleUtils.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleUtils.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleUtils.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/osgi/BundleUtils.java Sat Nov 5 17:17:26 2011
@@ -25,6 +25,7 @@ package org.apache.openjpa.persistence.o
* All routines MUST use reflection, so we don't have any hard-coded
* runtime depends on OSGi classes for Java SE and EE users.
*
+ * @version $Rev$ $Date$
*/
public class BundleUtils {
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidationUtils.java Sat Nov 5 17:17:26 2011
@@ -29,15 +29,17 @@ import org.apache.openjpa.validation.Val
/**
* Validation helper routines and wrappers to remove runtime dependencies
- * on the Bean Validation APIs or a implementation.
+ * on the Bean Valdiation APIs or a implementation.
*
* Note: This class should have no direct dependency on the javax.validation
* packages, which should only occur in the ValidatorImpl class.
*
+ * @version $Rev$ $Date$
*/
public class ValidationUtils {
- private static final Localizer _loc = Localizer.forPackage(ValidationUtils.class);
+ private static final Localizer _loc = Localizer.forPackage(
+ ValidationUtils.class);
/**
* Setup Validation support by determining if the javax.validation APIs
@@ -48,76 +50,84 @@ public class ValidationUtils {
* @throws If a Validator was required but could not be created.
*/
public static boolean setupValidation(OpenJPAConfiguration conf) {
- if (conf.getValidationMode().equalsIgnoreCase(String.valueOf(ValidationMode.NONE))) {
- return false;
- }
Log log = conf.getConfigurationLog();
boolean brc = false;
// only try creating a Validator for JPA2 and if not mode==NONE
-
if (conf.getSpecificationInstance().getVersion() < 2) {
if (log.isTraceEnabled()) {
- log.trace("Bean Validator not created because JPA specification version is " +
- conf.getSpecificationInstance());
+ log.trace("Not creating a ValidatorImpl because " +
+ "this app is using the JPA 1.0 Spec");
}
- return false;
}
+ else if (!(String.valueOf(ValidationMode.NONE)
+ .equalsIgnoreCase(conf.getValidationMode()))) {
// we'll use this in the exception handlers
- boolean bValRequired = String.valueOf(ValidationMode.CALLBACK)
- .equalsIgnoreCase(conf.getValidationMode());
- try {
- // see if the javax.validation spec api is available
- @SuppressWarnings("unused")
- Class<?> c = Class.forName("javax.validation.ValidationException");
- } catch (ClassNotFoundException e) {
- if (bValRequired) {
- // fatal error - ValidationMode requires a validator
- Message msg = _loc.get("vlem-creation-error");
- log.error(msg, e);
- // rethrow as a more descriptive/identifiable exception
- throw new ValidationUnavailableException(
- msg.getMessage(),
- new RuntimeException(e), true);
- } else {
- // no optional validation provider, so just trace output
+ boolean bValRequired = String.valueOf(ValidationMode.CALLBACK)
+ .equalsIgnoreCase(conf.getValidationMode());
+ try {
+ // see if the javax.validation spec api is available
if (log.isTraceEnabled()) {
- log.trace(_loc.get("vlem-creation-warn",
- "No available javax.validation APIs"));
+ log.trace("Trying to load javax.validation APIs " +
+ "based on the ValidationMode="
+ + conf.getValidationMode());
+ }
+ @SuppressWarnings("unused")
+ Class<?> c = Class.forName(
+ "javax.validation.ValidationException");
+ } catch (ClassNotFoundException e) {
+ if (bValRequired) {
+ // fatal error - ValidationMode requires a validator
+ Message msg = _loc.get("vlem-creation-error");
+ log.error(msg, e);
+ // rethrow as a more descriptive/identifiable exception
+ throw new ValidationUnavailableException(
+ msg.getMessage(),
+ new RuntimeException(e), true);
+ } else {
+ // no optional validation provider, so just trace output
+ if (log.isTraceEnabled()) {
+ log.trace(_loc.get("vlem-creation-warn",
+ "No available javax.validation APIs"));
+ }
+ return brc;
}
- return brc;
}
- }
- // we have the javax.validation APIs
- try {
- // try loading a validation provider
- ValidatorImpl validator = new ValidatorImpl(conf);
- // set the Validator into the config
- conf.setValidatorInstance(validator);
- // update the LifecycleEventManager plugin to use it
- conf.setLifecycleEventManager("validating");
- // all done, so return good rc if anyone cares
- brc = true;
- } catch (RuntimeException e) {
- if (bValRequired) {
- // fatal error - ValidationMode requires a validator
- // rethrow as a WrappedException
- Message msg = _loc.get("vlem-creation-error");
- log.error(msg, e);
- // rethrow as a more descriptive/identifiable exception
- throw new ValidationUnavailableException(
- msg.getMessage(),
- e, true);
+ // we have the javax.validation APIs
+ try {
+ // try loading a validation provider
+ ValidatorImpl validator = new ValidatorImpl(conf);
+ // set the Validator into the config
+ conf.setValidatorInstance(validator);
+ // update the LifecycleEventManager plugin to use it
+ conf.setLifecycleEventManager("validating");
+ // all done, so return good rc if anyone cares
+ brc = true;
+ } catch (RuntimeException e) {
+ if (bValRequired) {
+ // fatal error - ValidationMode requires a validator
+ // rethrow as a WrappedException
+ Message msg = _loc.get("vlem-creation-error");
+ log.error(msg, e);
+ // rethrow as a more descriptive/identifiable exception
+ throw new ValidationUnavailableException(
+ msg.getMessage(),
+ e, true);
- } else {
- // unexpected, but validation is optional,
- // so just log it as a warning
- String msg = e.getMessage();
- log.warn(_loc.get("vlem-creation-warn", msg == null ? e : msg ));
- return brc;
+ } else {
+ // unexpected, but validation is optional,
+ // so just log it as a warning
+ String msg = e.getMessage();
+ log.warn(_loc.get("vlem-creation-warn", msg == null ? e : msg ));
+ return brc;
+ }
+ }
+ } else {
+ if (log.isTraceEnabled()) {
+ log.trace("Not creating a ValidatorImpl because " +
+ "ValidationMode=" + conf.getValidationMode());
}
}
-
return brc;
}
Modified: openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties (original)
+++ openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties Sat Nov 5 17:17:26 2011
@@ -186,10 +186,9 @@ unwrap-em-invalid: EntityManager can not
unwrap-query-invalid: Query can not be unwrapped to an instance of "{0}".
invalid_entity_argument: {0} can not be invoked on "{1}". This entity is either \
detached or not persistent or null.
-dup-pu: Multiple persistence units named "{0}" were found. \
- The first persistence unit at "{1}" being used. The duplicate units are {2}
-dup-pu-unnamed: Multiple persistence units were found while looking for unnamed unit. \
- The first persistence unit at "{0}" being used. The duplicate units are {1}
+dup-pu: The persistence unit "{0}" was found multiple times in the following \
+ resources "{1}", but persistence unit names should be unique. The first \
+ persistence unit matching the provided name in "{2}" is being used.
bad-lock-level: Invalid lock mode/level. Valid values are \
"none"(0), "read"(10), "optimistic"(15), "write"(20), \
"optimistic-force-increment"(25), \
Modified: openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java (original)
+++ openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java Sat Nov 5 17:17:26 2011
@@ -123,9 +123,9 @@ public class TestPersistenceProductDeriv
ConfigurationProvider provider = ppd.load(
PersistenceProductDerivation.RSRC_DEFAULT,
- "encryption_plugin_pu");
+ "encryption_plugin_pu", loader);
provider.setInto(conf);
- EncryptionProvider ep = conf.getEncryptionProviderInstance();
+ EncryptionProvider ep = conf.getEncryptionProvider();
assertNotNull(ep);
// Cast to test impl
TestEncryptionProvider tep = (TestEncryptionProvider) ep;
@@ -146,10 +146,10 @@ public class TestPersistenceProductDeriv
ConfigurationProvider provider = ppd.load(
PersistenceProductDerivation.RSRC_DEFAULT,
- "encryption_plugin_default_pu");
+ "encryption_plugin_default_pu", loader);
provider.setInto(conf);
- assertNull(conf.getEncryptionProviderInstance());
+ assertNull(conf.getEncryptionProvider());
}
/*
@@ -158,8 +158,7 @@ public class TestPersistenceProductDeriv
*/
public void testJPA1ExcludeUnlistedClasses() throws Exception {
PersistenceProductDerivation.ConfigurationParser cp =
- new PersistenceProductDerivation.ConfigurationParser(this.getClass().getClassLoader(),
- new HashMap());
+ new PersistenceProductDerivation.ConfigurationParser(new HashMap());
List<URL> urls = getResourceURL(PersistenceProductDerivation.RSRC_DEFAULT);
assertNotNull(urls);
@@ -203,8 +202,7 @@ public class TestPersistenceProductDeriv
*/
public void testExcludeUnlistedClasses() throws Exception {
PersistenceProductDerivation.ConfigurationParser cp =
- new PersistenceProductDerivation.ConfigurationParser(this.getClass().getClassLoader(),
- new HashMap());
+ new PersistenceProductDerivation.ConfigurationParser(new HashMap());
List<URL> urls = getResourceURL("META-INF/persistence-2_0.xml");
assertNotNull(urls);
Modified: openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCBrokerFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCBrokerFactory.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCBrokerFactory.java (original)
+++ openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCBrokerFactory.java Sat Nov 5 17:17:26 2011
@@ -99,7 +99,8 @@ public class DistributedJDBCBrokerFactor
public Slice addSlice(String name, Map properties) {
Slice slice = ((DistributedJDBCConfigurationImpl)getConfiguration()).addSlice(name, properties);
- synchronizeMappings((JDBCConfiguration)slice.getConfiguration());
+ ClassLoader loader = AccessController.doPrivileged(J2DoPrivHelper.getContextClassLoaderAction());
+ synchronizeMappings(loader, (JDBCConfiguration)slice.getConfiguration());
Collection<Broker> brokers = getOpenBrokers();
for (Broker broker : brokers) {
((DistributedBroker)broker).getDistributedStoreManager().addSlice(slice);
@@ -117,10 +118,10 @@ public class DistributedJDBCBrokerFactor
return new DistributedBrokerImpl();
}
- protected void synchronizeMappings() {
+ protected void synchronizeMappings(ClassLoader loader) {
List<Slice> slices = getConfiguration().getSlices(Slice.Status.ACTIVE);
for (Slice slice : slices) {
- synchronizeMappings((JDBCConfiguration) slice.getConfiguration());
+ synchronizeMappings(loader, (JDBCConfiguration) slice.getConfiguration());
}
}
Modified: openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java (original)
+++ openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java Sat Nov 5 17:17:26 2011
@@ -79,10 +79,10 @@ public class DistributedJDBCConfiguratio
protected BooleanValue lenientPlugin;
protected StringValue masterPlugin;
protected StringListValue namesPlugin;
- public PluginValue<DistributionPolicy> distributionPolicyPlugin;
- public PluginValue<ReplicationPolicy> replicationPolicyPlugin;
- public PluginValue<QueryTargetPolicy> queryTargetPolicyPlugin;
- public PluginValue<FinderTargetPolicy> finderTargetPolicyPlugin;
+ public PluginValue distributionPolicyPlugin;
+ public PluginValue replicationPolicyPlugin;
+ public PluginValue queryTargetPolicyPlugin;
+ public PluginValue finderTargetPolicyPlugin;
public StringListValue replicatedTypesPlugin;
private ReplicatedTypeRepository _replicationRepos;
@@ -101,22 +101,22 @@ public class DistributedJDBCConfiguratio
false); // load globals
brokerPlugin.setString(DistributedBrokerImpl.class.getName());
- distributionPolicyPlugin = addPlugin(DistributionPolicy.class, PREFIX_SLICE + "DistributionPolicy", true);
+ distributionPolicyPlugin = addPlugin(PREFIX_SLICE + "DistributionPolicy", true);
distributionPolicyPlugin.setAlias("random", DistributionPolicy.Default.class.getName());
distributionPolicyPlugin.setDefault("random");
distributionPolicyPlugin.setString("random");
distributionPolicyPlugin.setDynamic(true);
- replicationPolicyPlugin = addPlugin(ReplicationPolicy.class, PREFIX_SLICE + "ReplicationPolicy", true);
+ replicationPolicyPlugin = addPlugin(PREFIX_SLICE + "ReplicationPolicy", true);
replicationPolicyPlugin.setAlias("all", ReplicationPolicy.Default.class.getName());
replicationPolicyPlugin.setDefault("all");
replicationPolicyPlugin.setString("all");
replicationPolicyPlugin.setDynamic(true);
- queryTargetPolicyPlugin = addPlugin(QueryTargetPolicy.class, PREFIX_SLICE + "QueryTargetPolicy", true);
+ queryTargetPolicyPlugin = addPlugin(PREFIX_SLICE + "QueryTargetPolicy", true);
queryTargetPolicyPlugin.setDynamic(true);
- finderTargetPolicyPlugin = addPlugin(FinderTargetPolicy.class, PREFIX_SLICE + "FinderTargetPolicy", true);
+ finderTargetPolicyPlugin = addPlugin(PREFIX_SLICE + "FinderTargetPolicy", true);
finderTargetPolicyPlugin.setDynamic(true);
replicatedTypesPlugin = new StringListValue(PREFIX_SLICE + "ReplicatedTypes");
@@ -212,14 +212,16 @@ public class DistributedJDBCConfiguratio
public DistributionPolicy getDistributionPolicyInstance() {
if (distributionPolicyPlugin.get() == null) {
- distributionPolicyPlugin.instantiate(this, true);
+ distributionPolicyPlugin.instantiate(DistributionPolicy.class,
+ this, true);
}
return (DistributionPolicy) distributionPolicyPlugin.get();
}
public String getDistributionPolicy() {
if (distributionPolicyPlugin.get() == null) {
- distributionPolicyPlugin.instantiate(this, true);
+ distributionPolicyPlugin.instantiate(DistributionPolicy.class,
+ this, true);
}
return distributionPolicyPlugin.getString();
}
@@ -234,14 +236,16 @@ public class DistributedJDBCConfiguratio
public ReplicationPolicy getReplicationPolicyInstance() {
if (replicationPolicyPlugin.get() == null) {
- replicationPolicyPlugin.instantiate(this, true);
+ replicationPolicyPlugin.instantiate(ReplicationPolicy.class,
+ this, true);
}
- return replicationPolicyPlugin.get();
+ return (ReplicationPolicy) replicationPolicyPlugin.get();
}
public String getReplicationPolicy() {
if (replicationPolicyPlugin.get() == null) {
- replicationPolicyPlugin.instantiate(this, true);
+ replicationPolicyPlugin.instantiate(ReplicationPolicy.class,
+ this, true);
}
return replicationPolicyPlugin.getString();
}
@@ -256,14 +260,16 @@ public class DistributedJDBCConfiguratio
public QueryTargetPolicy getQueryTargetPolicyInstance() {
if (queryTargetPolicyPlugin.get() == null) {
- queryTargetPolicyPlugin.instantiate(this, true);
+ queryTargetPolicyPlugin.instantiate(ReplicationPolicy.class,
+ this, true);
}
- return queryTargetPolicyPlugin.get();
+ return (QueryTargetPolicy) queryTargetPolicyPlugin.get();
}
public String getQueryTargetPolicy() {
if (queryTargetPolicyPlugin.get() == null) {
- queryTargetPolicyPlugin.instantiate(this, true);
+ queryTargetPolicyPlugin.instantiate(QueryTargetPolicy.class,
+ this, true);
}
return queryTargetPolicyPlugin.getString();
}
@@ -278,14 +284,16 @@ public class DistributedJDBCConfiguratio
public FinderTargetPolicy getFinderTargetPolicyInstance() {
if (finderTargetPolicyPlugin.get() == null) {
- finderTargetPolicyPlugin.instantiate(this, true);
+ finderTargetPolicyPlugin.instantiate(ReplicationPolicy.class,
+ this, true);
}
- return finderTargetPolicyPlugin.get();
+ return (FinderTargetPolicy) finderTargetPolicyPlugin.get();
}
public String getFinderTargetPolicy() {
if (finderTargetPolicyPlugin.get() == null) {
- finderTargetPolicyPlugin.instantiate(this, true);
+ finderTargetPolicyPlugin.instantiate(FinderTargetPolicy.class,
+ this, true);
}
return finderTargetPolicyPlugin.getString();
}
@@ -301,7 +309,8 @@ public class DistributedJDBCConfiguratio
public DistributedDataSource getConnectionFactory() {
if (virtualDataSource == null) {
virtualDataSource = createDistributedDataStore();
- DataSourceFactory.installDBDictionary(getDBDictionaryInstance(), virtualDataSource, this, false);
+ DataSourceFactory.installDBDictionary(
+ getDBDictionaryInstance(), virtualDataSource, this, false);
}
return virtualDataSource;
}
@@ -652,7 +661,7 @@ public class DistributedJDBCConfiguratio
return true;
if (_nonreplicatedTypes.contains(cls))
return false;
- ClassMetaData meta = repos.getMetaData(cls, false);
+ ClassMetaData meta = repos.getMetaData(cls, null, false);
if (meta == null) {
_nonreplicatedTypes.add(cls);
return false;
Modified: openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedStoreQuery.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedStoreQuery.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedStoreQuery.java (original)
+++ openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedStoreQuery.java Sat Nov 5 17:17:26 2011
@@ -175,7 +175,7 @@ class DistributedStoreQuery extends JDBC
result = new MergedResultObjectProvider(tmp);
}
if (hasRange) {
- result = new RangeResultObjectProvider(result,
+ result = new RangeResultObjectProvider(result,
ctx.getStartRange(), ctx.getEndRange());
}
return result;
Modified: openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/SingleEMFTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/SingleEMFTestCase.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/SingleEMFTestCase.java (original)
+++ openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/SingleEMFTestCase.java Sat Nov 5 17:17:26 2011
@@ -69,6 +69,8 @@ public abstract class SingleEMFTestCase
}
protected ClassMapping getMapping(String name) {
- return (ClassMapping) emf.getConfiguration().getMetaDataRepositoryInstance().getMetaData(name, true);
+ return (ClassMapping) emf.getConfiguration()
+ .getMetaDataRepositoryInstance().getMetaData(name,
+ getClass().getClassLoader(), true);
}
}
Modified: openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLFileHandler.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLFileHandler.java?rev=1197994&r1=1197993&r2=1197994&view=diff
==============================================================================
--- openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLFileHandler.java (original)
+++ openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLFileHandler.java Sat Nov 5 17:17:26 2011
@@ -360,7 +360,7 @@ public class XMLFileHandler {
// get the metadata for the type we're reading
String type = attrs.getValue("class");
ClassMetaData meta = _conf.getMetaDataRepositoryInstance().
- getMetaData(classForName(type), true);
+ getMetaData(classForName(type), null, true);
// construct the oid object
Object oid;
@@ -578,8 +578,11 @@ public class XMLFileHandler {
/**
* Return the class for the specified name.
*/
- private Class classForName(String name) throws Exception {
- return Class.forName(name, true, _conf.getClassLoader());
+ private Class classForName(String name)
+ throws Exception {
+ ClassLoader loader = _conf.getClassResolverInstance().
+ getClassLoader(getClass(), null);
+ return Class.forName(name, true, loader);
}
}