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/07/24 21:08:09 UTC
svn commit: r797609 - in /geronimo/specs/trunk/geronimo-jpa_2.0_spec: ./
src/main/java/javax/persistence/ src/main/java/javax/persistence/criteria/
src/main/java/javax/persistence/spi/
Author: dwoods
Date: Fri Jul 24 19:08:09 2009
New Revision: 797609
URL: http://svn.apache.org/viewvc?rev=797609&view=rev
Log:
GERONIMO-4410 API updates from 20090723. Patch contributed by Jeremy Bauer.
Modified:
geronimo/specs/trunk/geronimo-jpa_2.0_spec/pom.xml
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java
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/Query.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceUnitInfo.java
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/pom.xml?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/pom.xml (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/pom.xml Fri Jul 24 19:08:09 2009
@@ -34,7 +34,7 @@
<artifactId>geronimo-jpa_2.0_spec</artifactId>
<packaging>bundle</packaging>
<name>Apache Geronimo JSR-317 JPA 2.0 EARLY ACCESS Spec API</name>
- <version>1.0-EA5-SNAPSHOT</version>
+ <version>1.0-EA6-SNAPSHOT</version>
<description>Implementation of Sun JSR-317 JPA 2.0 EARLY ACCESS Spec API</description>
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java Fri Jul 24 19:08:09 2009
@@ -31,5 +31,7 @@
String getName();
Integer getPosition();
+
+ Class<T> getJavaType();
}
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=797609&r1=797608&r2=797609&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 Jul 24 19:08:09 2009
@@ -30,9 +30,11 @@
import java.util.Map;
import java.util.Set;
+import javax.persistence.spi.LoadState;
import javax.persistence.spi.PersistenceProvider;
import javax.persistence.spi.PersistenceProviderResolver;
import javax.persistence.spi.PersistenceProviderResolverHolder;
+import javax.persistence.spi.ProviderUtil;
/**
* @version $Rev$ $Date$
@@ -161,13 +163,78 @@
*/
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)
+ */
public boolean isLoaded(Object entity, String attributeName) {
- // TODO Auto-generated dummy method stub
+ boolean isLoaded = true;
+
+ // Get the list of persistence providers from the resolver
+ PersistenceProviderResolver ppr =
+ PersistenceProviderResolverHolder.getPersistenceProviderResolver();
+ List<PersistenceProvider> pps = ppr.getPersistenceProviders();
+
+ // Iterate through the list using ProviderUtil.isLoadedWithoutReference()
+ for (PersistenceProvider pp : pps) {
+ try {
+ ProviderUtil pu = pp.getProviderUtil();
+ LoadState ls = pu.isLoadedWithoutReference(entity, attributeName);
+ if (ls == LoadState.LOADED)
+ return true;
+ if (ls == LoadState.NOT_LOADED)
+ return false;
+ }
+ catch (Throwable t) {
+ // JPA 1.0 providers will not implement the getProviderUtil
+ // method. Eat the exception and try the next provider.
+ }
+ }
+ // Iterate through the list a second time using ProviderUtil.isLoadedWithReference()
+ for (PersistenceProvider pp : pps) {
+ try {
+ ProviderUtil pu = pp.getProviderUtil();
+ LoadState ls = pu.isLoadedWithoutReference(entity, attributeName);
+ if (ls == LoadState.LOADED)
+ return true;
+ if (ls == LoadState.NOT_LOADED)
+ return false;
+ }
+ catch (Throwable t) {
+ // JPA 1.0 providers will not implement the getProviderUtil
+ // method. Eat the exception and try the next provider.
+ }
+ }
+
+ // All providers returned a load state of unknown. Return true.
return true;
}
public boolean isLoaded(Object entity) {
- // TODO Auto-generated dummy method stub
+ // Get the list of persistence providers from the resolver
+ PersistenceProviderResolver ppr =
+ PersistenceProviderResolverHolder.getPersistenceProviderResolver();
+ List<PersistenceProvider> pps = ppr.getPersistenceProviders();
+
+ // Iterate through the list of providers, using ProviderUtil to
+ // determine the load state
+ for (PersistenceProvider pp : pps) {
+ try {
+ ProviderUtil pu = pp.getProviderUtil();
+ LoadState ls = pu.isLoaded(entity);
+ if (ls == LoadState.LOADED)
+ return true;
+ if (ls == LoadState.NOT_LOADED)
+ return false;
+ // Otherwise, load state is unknown. Query the next provider.
+ }
+ catch (Throwable t) {
+ // JPA 1.0 providers will not implement the getProviderUtil
+ // method. Eat the exception and try the next provider.
+ }
+ }
+
+ // All providers returned a load state of unknown. Return true.
return true;
}
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java Fri Jul 24 19:08:09 2009
@@ -57,9 +57,9 @@
<T> Query setParameter(Parameter<T> param, T value);
- Query setParameter(Parameter<Date> param, Date value, TemporalType temporalType);
+ Query setParameter(Parameter<Date> param, Date value, TemporalType temporalType);
- Query setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType);
+ Query setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType);
Query setParameter(String name, Object value);
@@ -79,6 +79,12 @@
Parameter<?> getParameter(int position);
+ <T> Parameter<T> getParameter(String name, Class<T> type);
+
+ <T> Parameter<T> getParameter(int position, Class<T> type);
+
+ boolean isBound(Parameter<?> param);
+
<T> T getParameterValue(Parameter<T> param);
Object getParameterValue(String name);
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java Fri Jul 24 19:08:09 2009
@@ -60,10 +60,6 @@
TypedQuery<X> setParameter(int position, Calendar value, TemporalType temporalType);
- <T> Parameter<T> getParameter(String name, Class<T> type);
-
- <T> Parameter<T> getParameter(int position, Class<T> type);
-
TypedQuery<X> setFlushMode(FlushModeType flushMode);
TypedQuery<X> setLockMode(LockModeType lockMode);
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java Fri Jul 24 19:08:09 2009
@@ -32,5 +32,5 @@
boolean isAscending();
- <T extends Comparable<T>> Expression<T> getExpression();
+ Expression<?> getExpression();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceUnitInfo.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceUnitInfo.java?rev=797609&r1=797608&r2=797609&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceUnitInfo.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/spi/PersistenceUnitInfo.java Fri Jul 24 19:08:09 2009
@@ -61,7 +61,7 @@
public Properties getProperties();
- public String PersistenceXMLSchemaVersion();
+ public String getPersistenceXMLSchemaVersion();
public ClassLoader getClassLoader();