You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2006/12/15 21:35:26 UTC
svn commit: r487652 - in
/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence:
AnnotationPersistenceMetaDataParser.java PersistenceMetaDataDefaults.java
XMLPersistenceMetaDataParser.java
Author: ppoddar
Date: Fri Dec 15 12:35:26 2006
New Revision: 487652
URL: http://svn.apache.org/viewvc?view=rev&rev=487652
Log:
A single class may not have more than one lifecycle callback method for the same lifecycle event (spec section 3.5).
The contraint applies irrespective of whether the class is a persistent bean or a listener or both.
Modified:
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?view=diff&rev=487652&r1=487651&r2=487652
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java Fri Dec 15 12:35:26 2006
@@ -815,9 +815,9 @@
int e = events[i];
if (callbacks[e] == null)
callbacks[e] = new ArrayList(3);
+ MetaDataParsers.validateMethodsForSameCallback(cls,
+ callbacks[e], m, tag, def, repos.getLog());
if (listener) {
- MetaDataParsers.validateMethodsForSameCallback(cls,
- callbacks[e], m, tag, def, repos.getLog());
callbacks[e].add(new BeanLifecycleCallbacks(cls, m,
false));
} else {
Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java?view=diff&rev=487652&r1=487651&r2=487652
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java Fri Dec 15 12:35:26 2006
@@ -61,7 +61,7 @@
public class PersistenceMetaDataDefaults
extends AbstractMetaDataDefaults {
- private boolean _allowsMultipleMethodsForSameCallback = true;
+ private boolean _allowsMultipleMethodsForSameCallback = false;
private static Localizer _loc = Localizer.forPackage
(PersistenceMetaDataDefaults.class);
Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?view=diff&rev=487652&r1=487651&r2=487652
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Fri Dec 15 12:35:26 2006
@@ -86,7 +86,8 @@
protected static final String ELEM_CASCADE_REF = "cascade-refresh";
protected static final String ELEM_PU_META = "persistence-unit-metadata";
protected static final String ELEM_PU_DEF = "persistence-unit-defaults";
- protected static final String ELEM_XML_MAP_META_COMPLETE = "xml-mapping-metadata-complete";
+ protected static final String ELEM_XML_MAP_META_COMPLETE =
+ "xml-mapping-metadata-complete";
private static final Map<String, Object> _elems =
new HashMap<String, Object>();
@@ -1582,6 +1583,11 @@
MetaDataParsers.validateMethodsForSameCallback(_listener,
_callbacks[event], ((BeanLifecycleCallbacks) adapter).
getCallbackMethod(), callback, def, getLog());
+ } else {
+ MetaDataParsers.validateMethodsForSameCallback(_cls,
+ _callbacks[event], ((MethodLifecycleCallbacks) adapter).
+ getCallbackMethod(), callback, def, getLog());
+
}
if (_callbacks[event] == null)
_callbacks[event] = new ArrayList<LifecycleCallbacks>(3);