You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2009/12/11 19:16:44 UTC
svn commit: r889738 - in
/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence:
Persistence.java spi/PersistenceProviderResolverHolder.java
Author: dwoods
Date: Fri Dec 11 18:16:43 2009
New Revision: 889738
URL: http://svn.apache.org/viewvc?rev=889738&view=rev
Log:
cleaned up some comments in both files. updated WeakHashMap usage in PersistenceProviderResolverHolder.
Modified:
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Persistence.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceProviderResolverHolder.java
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Persistence.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Persistence.java?rev=889738&r1=889737&r2=889738&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Persistence.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Persistence.java Fri Dec 11 18:16:43 2009
@@ -42,7 +42,7 @@
import javax.persistence.spi.ProviderUtil;
/**
- * Bootstrap class that is used to obtain {@link javax.persistence.EntityManagerFactory}
+ * Bootstrap class to obtain {@link javax.persistence.EntityManagerFactory}
* references.
*
* Contains Geronimo implemented code as required by the JPA spec.
@@ -51,36 +51,27 @@
*/
public class Persistence {
+ // The following variable is only here for TCK backward compatibility
+ @Deprecated
protected static final Set<PersistenceProvider> providers = new HashSet<PersistenceProvider>();
- // Changed to the hard coded PERSISTENCE_PROVIDER value to pass signature tests.
- // public static final java.lang.String PERSISTENCE_PROVIDER = PersistenceProvider.class.getName();
- public static final java.lang.String PERSISTENCE_PROVIDER = "javax.persistence.spi.PeristenceProvider";
+
+ // The following string is only here for TCK backward compatibility
+ @Deprecated
+ public static final String PERSISTENCE_PROVIDER = "javax.persistence.spi.PeristenceProvider";
+
static final String PERSISTENCE_PROVIDER_PROPERTY = "javax.persistence.provider";
+
static final String PERSISTENCE_PROVIDER_SERVICE = "META-INF/services/"
+ PersistenceProvider.class.getName();
- /**
- * Create and return an EntityManagerFactory for the named persistence unit.
- *
- * @param persistenceUnitName Name of the persistence unit
- * @return The factory for the specified persistence unit or null if none
- * are applicable.
- */
+
public static EntityManagerFactory createEntityManagerFactory(
String persistenceUnitName) {
return createEntityManagerFactory(persistenceUnitName, Collections.EMPTY_MAP);
}
/**
- * Create and return an EntityManagerFactory for the named persistence unit
- * using the given properties.
- *
- * @param persistenceUnitName Name of the persistence unit
- * @param properties Additional properties to use when creating the
- * persistence unit factory. These properties override any
- * values that have been configured elsewhere.
- * @return The factory for the specified persistence unit or null if none
- * are applicable.
+ * Geronimo implementation specific code
*/
public static EntityManagerFactory createEntityManagerFactory(
String persistenceUnitName, Map properties) {
@@ -230,6 +221,7 @@
/**
+ * Geronimo/OpenJPA private helper code for creating a PersistenceException
* @param msg String to use as the exception message
* @param failures Persistence provider exceptions to add to the exception message
* @return PersistenceException
@@ -262,20 +254,16 @@
}
}
- /*
- * @return PersistenceUtil instance
- * @since 2.0
- */
public static PersistenceUtil getPersistenceUtil() {
return new PersistenceUtilImpl();
}
- /*
+ /**
* Geronimo implementation specific code
*/
private static class PersistenceUtilImpl implements PersistenceUtil {
- /*
+ /**
* Determines the load state of the attribute of an entity
* @see javax.persistence.PersistenceUtil#isLoaded(java.lang.Object, java.lang.String)
*/
@@ -351,6 +339,9 @@
}
}
+ /**
+ * Geronimo/OpenJPA private helper code for handling class loaders
+ */
private static class PrivClassLoader implements PrivilegedAction<ClassLoader> {
private final Class<?> c;
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceProviderResolverHolder.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceProviderResolverHolder.java?rev=889738&r1=889737&r2=889738&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceProviderResolverHolder.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceProviderResolverHolder.java Fri Dec 11 18:16:43 2009
@@ -35,7 +35,6 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
-import java.util.Map;
import java.util.WeakHashMap;
import javax.persistence.PersistenceException;
@@ -83,7 +82,7 @@
PersistenceProvider.class.getName();
// cache of providers per class loader
- private static final Map<ClassLoader, List<PersistenceProvider>> providerCache =
+ private volatile WeakHashMap<ClassLoader, List<PersistenceProvider>> providerCache =
new WeakHashMap<ClassLoader, List<PersistenceProvider>>();
/*
@@ -92,17 +91,13 @@
* @see javax.persistence.spi.PersistenceProviderResolver#getPersistenceProviders()
*/
public List<PersistenceProvider> getPersistenceProviders() {
- List<PersistenceProvider> providers;
-
// get our class loader
ClassLoader cl = PrivClassLoader.get(null);
if (cl == null)
cl = PrivClassLoader.get(DefaultPersistenceProviderResolver.class);
// use any previously cached providers
- synchronized (providerCache) {
- providers = providerCache.get(cl);
- }
+ List<PersistenceProvider> providers = providerCache.get(cl);
if (providers == null) {
// need to discover and load them for this class loader
providers = new ArrayList<PersistenceProvider>();
@@ -153,9 +148,7 @@
}
// cache the discovered providers
- synchronized (providerCache) {
- providerCache.put(cl, providers);
- }
+ providerCache.put(cl, providers);
}
// caller must handle the case of no providers found
@@ -168,9 +161,7 @@
* @see javax.persistence.spi.PersistenceProviderResolver#clearCachedProviders()
*/
public void clearCachedProviders() {
- synchronized (providerCache) {
- providerCache.clear();
- }
+ providerCache.clear();
}
private static class PrivClassLoader implements PrivilegedAction<ClassLoader> {