Author: ppoddar
Date: Tue Jan 13 22:20:31 2009
New Revision: 734344
URL: http://svn.apache.org/viewvc?rev=734344&view=rev
Log:
OPENJPA-858: Allow configurable PostPersist callback either post flush/commit
or post persist immediately.Also refactored callback options around a
CallbackOptions configuration class.
Added:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/CallbackOptions.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/PostPersistEntity.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestPostPersistCallback.java
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataParsers.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
Added:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/CallbackOptions.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/CallbackOptions.java?rev=734344&view=auto
==============================================================================
---
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/CallbackOptions.java
(added)
+++
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/CallbackOptions.java
Tue Jan 13 22:20:31 2009
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.conf;
+
+import java.io.Serializable;
+
+/**
+ * Configurable options for callbacks.
+ *
+ * @author Pinaki Poddar
+ */
+public class CallbackOptions implements Serializable {
+ private boolean _isPostPersistCallbackImmediate = false;
+ private boolean _allowsMultipleMethodsForSameCallback = false;
+
+ /**
+ * Affirms if the post-persist callback is invoked as soon as a new
instance
+ * is managed. The default is false, implies that the post-persist callback
+ * is invoked after the instance been committed or flushed to the
datastore.
+ * Defaults to false.
+ */
+ public boolean getPostPersistCallbackImmediate() {
+ return _isPostPersistCallbackImmediate;
+ }
+
+ /**
+ * Sets if the post-persist callback is invoked as soon as a new instance
+ * is managed. The default is false, implies that the post-persist callback
+ * is invoked after the instance been committed or flushed to the
datastore.
+ */
+ public void setPostPersistCallbackImmediate(boolean flag) {
+ _isPostPersistCallbackImmediate = flag;
+ }
+
+ /**
+ * Flags if multiple methods of the same class can handle the same
+ * callback event.
+ * Defaults to false.
+ */
+ public boolean getAllowsMultipleMethodsForSameCallback() {
+ return _allowsMultipleMethodsForSameCallback;
+ }
+
+ /**
+ * Flags if multiple methods of the same class can handle the same
+ * callback event.
+ */
+ public void setAllowsMultipleMethodsForSameCallback(boolean flag) {
+ _allowsMultipleMethodsForSameCallback = flag;
+ }
+}
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
(original)
+++
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
Tue Jan 13 22:20:31 2009
@@ -1399,6 +1399,28 @@
* Backwards compatibility options.
*/
public Compatibility getCompatibilityInstance ();
+
+ /**
+ * Options for configuring callbacks as a String.
+ *
+ * @since 2.0.0
+ */
+ public String getCallbackOptions();
+
+ /**
+ * Options for configuring callbacks.
+ *
+ * @since 2.0.0
+ */
+ public CallbackOptions getCallbackOptionsInstance();
+
+ /**
+ * Options for configuring callbacks set as a comma-separated string value
+ * pair.
+ *
+ * @since 2.0.0
+ */
+ public void setCallbackOptions(String options);
/**
* Configuration settings for the query compilation cache to use.
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
(original)
+++
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
Tue Jan 13 22:20:31 2009
@@ -132,6 +132,7 @@
public ObjectValue savepointManagerPlugin;
public ObjectValue orphanedKeyPlugin;
public ObjectValue compatibilityPlugin;
+ public ObjectValue callbackPlugin;
public QueryCompilationCacheValue queryCompilationCachePlugin;
public IntValue runtimeUnenhancedClasses;
public CacheMarshallersValue cacheMarshallerPlugins;
@@ -495,6 +496,13 @@
compatibilityPlugin.setString(aliases[0]);
compatibilityPlugin.setInstantiatingGetter("getCompatibilityInstance");
+ callbackPlugin = addPlugin("Callbacks", true);
+ aliases = new String[] { "default", CallbackOptions.class.getName() };
+ callbackPlugin.setAliases(aliases);
+ callbackPlugin.setDefault(aliases[0]);
+ callbackPlugin.setString(aliases[0]);
+ callbackPlugin.setInstantiatingGetter("getCallbackOptionsInstance");
+
queryCompilationCachePlugin = new QueryCompilationCacheValue(
"QueryCompilationCache");
queryCompilationCachePlugin.setInstantiatingGetter(
@@ -1388,6 +1396,20 @@
compatibilityPlugin.instantiate(Compatibility.class, this);
return (Compatibility) compatibilityPlugin.get();
}
+
+ public String getCallbackOptions() {
+ return callbackPlugin.getString();
+ }
+
+ public void setCallbackOptions(String options) {
+ callbackPlugin.setString(options);
+ }
+
+ public CallbackOptions getCallbackOptionsInstance() {
+ if (callbackPlugin.get() == null)
+ callbackPlugin.instantiate(CallbackOptions.class, this);
+ return (CallbackOptions) callbackPlugin.get();
+ }
public String getQueryCompilationCache() {
return queryCompilationCachePlugin.getString();
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
(original)
+++
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
Tue Jan 13 22:20:31 2009
@@ -354,6 +354,10 @@
* Fire the given lifecycle event to all listeners.
*/
private boolean fireLifecycleEvent(int type) {
+ if (type == LifecycleEvent.AFTER_PERSIST
+ && _broker.getConfiguration().getCallbackOptionsInstance()
+ .getPostPersistCallbackImmediate())
+ fetchObjectId();
return _broker.fireLifecycleEvent(getManagedInstance(), null,
_meta, type);
}
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/PostPersistEntity.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/PostPersistEntity.java?rev=734344&view=auto
==============================================================================
---
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/PostPersistEntity.java
(added)
+++
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/PostPersistEntity.java
Tue Jan 13 22:20:31 2009
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.callbacks;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.PostPersist;
+
+/**
+ * A persistent entity to test that when PostPersist callback is invoked can
+ * be configured. Also the auto-generated persistent identity is assigned when
+ * PostPersist is invoked.
+ *
+ * @author Pinaki Poddar
+ *
+ */
+...@entity
+public class PostPersistEntity {
+ @Id
+ @GeneratedValue
+ private long id;
+
+ private String name;
+
+ transient int postPersistCallbackCount;
+ transient long idOnCallback;
+
+ @PostPersist
+ public void postPersist() {
+ postPersistCallbackCount++;
+ idOnCallback = ((Long)getByReflection("id")).longValue();
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ /**
+ * Gets value of the named field by reflection to ensure that the field is
+ * not loaded as a side-effect to access it.
+ * @return
+ */
+ Object getByReflection(String f) {
+ try {
+ return getClass().getDeclaredField(f).get(this);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestPostPersistCallback.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestPostPersistCallback.java?rev=734344&view=auto
==============================================================================
---
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestPostPersistCallback.java
(added)
+++
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestPostPersistCallback.java
Tue Jan 13 22:20:31 2009
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.callbacks;
+
+import javax.persistence.EntityManager;
+
+import org.apache.openjpa.persistence.test.SingleEMFTestCase;
+
+/**
+ * Tests when PostPersist is invoked can be configured.
+ *
+ * @author Pinaki Poddar
+ *
+ */
+public class TestPostPersistCallback extends SingleEMFTestCase {
+
+ public void testPostPersistCalledAfterFlush() {
+ super.setUp(CLEAR_TABLES, PostPersistEntity.class);
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ PostPersistEntity pc = new PostPersistEntity();
+
+ em.persist(pc);
+
+ // nor is postPersist() callback invoked
+ assertEquals(0, pc.postPersistCallbackCount);
+ assertEquals(0, pc.idOnCallback);
+
+ em.flush();
+
+ // postPersist() callback invoked
+ assertFalse(pc.getId() == 0);
+ assertEquals(1, pc.postPersistCallbackCount);
+ assertEquals(pc.getId(), pc.idOnCallback);
+
+ em.getTransaction().commit();
+
+ assertFalse(pc.getId() == 0);
+ assertEquals(1, pc.postPersistCallbackCount);
+ assertEquals(pc.getId(), pc.idOnCallback);
+ }
+
+ public void testPostPersistCalledAfterCommit() {
+ super.setUp(CLEAR_TABLES, PostPersistEntity.class);
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ PostPersistEntity pc = new PostPersistEntity();
+
+ em.persist(pc);
+
+ assertEquals(0, pc.postPersistCallbackCount);
+ assertEquals(0, pc.idOnCallback);
+
+ em.getTransaction().commit();
+
+ assertFalse(pc.getId() == 0);
+ assertEquals(1, pc.postPersistCallbackCount);
+ assertEquals(pc.getId(), pc.idOnCallback);
+ }
+
+ public void testPostPersistCalledAfterPersist() {
+ super.setUp(CLEAR_TABLES, PostPersistEntity.class,
+ "openjpa.Callbacks", "PostPersistCallbackImmediate=true");
+ assertTrue(emf.getConfiguration().getCallbackOptionsInstance()
+ .getPostPersistCallbackImmediate());
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ PostPersistEntity pc = new PostPersistEntity();
+
+ em.persist(pc);
+
+ assertEquals(1, pc.postPersistCallbackCount);
+ assertEquals(pc.getId(), pc.idOnCallback);
+
+ em.getTransaction().commit();
+
+ assertEquals(1, pc.postPersistCallbackCount);
+ assertEquals(pc.getId(), pc.idOnCallback);
+ }
+}
Modified:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
(original)
+++
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
Tue Jan 13 22:20:31 2009
@@ -126,8 +126,10 @@
buf.append(";");
buf.append(c.getName());
}
+ String oldValue = map.containsKey("openjpa.MetaDataFactory")
+ ? ","+map.get("openjpa.MetaDataFactory").toString() : "";
map.put("openjpa.MetaDataFactory",
- "jpa(Types=" + buf.toString() + ")");
+ "jpa(Types=" + buf.toString() + oldValue + ")");
}
OpenJPAEntityManagerFactorySPI oemf = (OpenJPAEntityManagerFactorySPI)
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
Tue Jan 13 22:20:31 2009
@@ -845,7 +845,7 @@
sup = sup.getSuperclass();
} while (sups && !Object.class.equals(sup));
- MetaDataDefaults def = repos.getMetaDataFactory().getDefaults();
+ OpenJPAConfiguration conf = repos.getConfiguration();
for (Method m : methods) {
for (Annotation anno : (Annotation[]) AccessController
.doPrivileged(J2DoPrivHelper
@@ -853,7 +853,7 @@
MetaDataTag tag = _tags.get(anno.annotationType());
if (tag == null)
continue;
- int[] events = MetaDataParsers.getEventTypes(tag);
+ int[] events = MetaDataParsers.getEventTypes(tag, conf);
if (events == null)
continue;
@@ -866,7 +866,7 @@
if (callbacks[e] == null)
callbacks[e] = new ArrayList(3);
MetaDataParsers.validateMethodsForSameCallback(cls,
- callbacks[e], m, tag, def, repos.getLog());
+ callbacks[e], m, tag, conf, repos.getLog());
if (listener) {
callbacks[e].add(new BeanLifecycleCallbacks(cls, m,
false));
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataParsers.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataParsers.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataParsers.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataParsers.java
Tue Jan 13 22:20:31 2009
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import java.util.Collection;
+import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.event.LifecycleCallbacks;
import org.apache.openjpa.event.LifecycleEvent;
import org.apache.openjpa.event.MethodLifecycleCallbacks;
@@ -42,12 +43,16 @@
/**
* Return the event type constants for the given tag, or null if none.
*/
- public static int[] getEventTypes(MetaDataTag tag) {
+ public static int[] getEventTypes(MetaDataTag tag,
+ OpenJPAConfiguration conf) {
switch (tag) {
case PRE_PERSIST:
return new int[]{ LifecycleEvent.BEFORE_PERSIST };
case POST_PERSIST:
- return new int[]{ LifecycleEvent.AFTER_PERSIST_PERFORMED };
+ boolean immediate = conf.getCallbackOptionsInstance()
+ .getPostPersistCallbackImmediate();
+ return new int[]{ immediate ? LifecycleEvent.AFTER_PERSIST
+ : LifecycleEvent.AFTER_PERSIST_PERFORMED };
case PRE_REMOVE:
return new int[]{ LifecycleEvent.BEFORE_DELETE };
case POST_REMOVE:
@@ -69,7 +74,7 @@
*/
public static void validateMethodsForSameCallback(Class cls,
Collection<LifecycleCallbacks> callbacks, Method method,
- MetaDataTag tag, MetaDataDefaults def, Log log) {
+ MetaDataTag tag, OpenJPAConfiguration conf, Log log) {
if (callbacks == null || callbacks.isEmpty())
return;
@@ -80,26 +85,14 @@
if (!exists.getDeclaringClass().equals(method.getDeclaringClass()))
continue;
- PersistenceMetaDataDefaults defaults = getPersistenceDefaults(def);
Localizer.Message msg = _loc.get("multiple-methods-on-callback",
new Object[] { method.getDeclaringClass().getName(),
method.getName(), exists.getName(), tag.toString() });
- if (defaults == null
- || defaults.getAllowsMultipleMethodsForSameCallback())
+ if (conf.getCallbackOptionsInstance()
+ .getAllowsMultipleMethodsForSameCallback())
log.warn(msg);
else
throw new UserException(msg);
}
}
-
- /**
- * Return the {...@link PersistenceMetaDataDefaults} in use, or null if not
- * using JPA defaults.
- */
- private static PersistenceMetaDataDefaults getPersistenceDefaults
- (MetaDataDefaults def) {
- if (def instanceof PersistenceMetaDataDefaults)
- return (PersistenceMetaDataDefaults) def;
- return null;
- }
}
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java?rev=734344&r1=734343&r2=734344&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
Tue Jan 13 22:20:31 2009
@@ -73,8 +73,6 @@
public class PersistenceMetaDataDefaults
extends AbstractMetaDataDefaults {
- private boolean _allowsMultipleMethodsForSameCallback = false;
-
private static final Localizer _loc = Localizer.forPackage
(PersistenceMetaDataDefaults.class);
@@ -195,22 +193,6 @@
return null;
}
- /**
- * Flags if multiple methods of the same class can handle the same
- * callback event.
- */
- public boolean getAllowsMultipleMethodsForSameCallback() {
- return _allowsMultipleMethodsForSameCallback;
- }
-
- /**
- * Flags if multiple methods of the same class can handle the same
- * callback event.
- */
- public void setAllowsMultipleMethodsForSameCallback(boolean flag) {
- _allowsMultipleMethodsForSameCallback = flag;
- }
-
/**
* Auto-configuration method for the default access type of base classes
* with ACCESS_UNKNOWN
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=734344&r1=734343&r2=734344&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
Tue Jan 13 22:20:31 2009
@@ -1717,7 +1717,7 @@
throws SAXException {
if (!isMetaDataMode())
return false;
- int[] events = MetaDataParsers.getEventTypes(callback);
+ int[] events = MetaDataParsers.getEventTypes(callback, _conf);
if (events == null)
return false;
@@ -1748,11 +1748,11 @@
if (_listener != null) {
MetaDataParsers.validateMethodsForSameCallback(_listener,
_callbacks[event], ((BeanLifecycleCallbacks) adapter).
- getCallbackMethod(), callback, def, getLog());
+ getCallbackMethod(), callback, _conf, getLog());
} else {
MetaDataParsers.validateMethodsForSameCallback(_cls,
_callbacks[event], ((MethodLifecycleCallbacks) adapter).
- getCallbackMethod(), callback, def, getLog());
+ getCallbackMethod(), callback, _conf, getLog());
}
if (_callbacks[event] == null)