You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2012/03/29 19:50:20 UTC
svn commit: r1307018 - in /openjpa/trunk:
openjpa-kernel/src/main/java/org/apache/openjpa/conf/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/valid...
Author: allee8285
Date: Thu Mar 29 17:50:19 2012
New Revision: 1307018
URL: http://svn.apache.org/viewvc?rev=1307018&view=rev
Log:
OPENJPA-2163 Simplify configuration: move SingletonLifecycleEventManager from property to Compatibility option.
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
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-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestMultiEmEntityListeners.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationMode.java
openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml
openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_conf.xml
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java?rev=1307018&r1=1307017&r2=1307018&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java Thu Mar 29 17:50:19 2012
@@ -74,7 +74,7 @@ public class Compatibility {
private boolean _useListAttributeForArrays = false;
private boolean _metaFactoriesAreStrict = false;
private boolean _resetFlushFlagForCascadePersist = true;//OPENJPA-2051
-
+ private boolean _singletonLifecycleEventManager = false;
/**
* Whether to require exact identity value types when creating object
@@ -696,4 +696,21 @@ public class Compatibility {
public void setResetFlushFlagForCascadePersist(boolean b){
_resetFlushFlagForCascadePersist = b;
}
+
+ /**
+ * Returns true if life cycle event manager is a singleton configuration.
+ */
+ public boolean isSingletonLifecycleEventManager() {
+ return _singletonLifecycleEventManager;
+ }
+
+ /**
+ * This property set whether each EntityManager has its own life cycle event manager.
+ By default, each EntityManager only fires events to the registered listeners to the entities
+ it manages. If the life cycle event manager is a singleton, events will be fired to listeners
+ registered to all instances of EntityManager in the same persistence unit.
+ */
+ public void setSingletonLifecycleEventManager(boolean singleton) {
+ _singletonLifecycleEventManager = singleton;
+ }
}
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=1307018&r1=1307017&r2=1307018&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 Thu Mar 29 17:50:19 2012
@@ -1738,16 +1738,6 @@ public interface OpenJPAConfiguration
public void setLifecycleEventManager(String eventMgr);
/**
- * Returns if lifecycle event manager is a singlton configuration.
- */
- public boolean isSingletonLifecycleEventManager();
-
- /**
- * Sets the lifecycle event manager singleton state.
- */
- public void setSingletonLifecycleEventManager(boolean singleton);
-
- /**
* Gets the validation groups for pre-persist
*
* @Since 2.0.0
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=1307018&r1=1307017&r2=1307018&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 Thu Mar 29 17:50:19 2012
@@ -167,8 +167,7 @@ public class OpenJPAConfigurationImpl
public StringValue validationMode;
public ObjectValue validationFactory;
public ObjectValue validator;
- public LEMValue lifecycleEventManager;
- public SingletonLEMValue singletonLifecycleEventManager;
+ public ObjectValue lifecycleEventManager;
public StringValue validationGroupPrePersist;
public StringValue validationGroupPreUpdate;
public StringValue validationGroupPreRemove;
@@ -574,7 +573,7 @@ public class OpenJPAConfigurationImpl
queryTimeout.setDefault("-1");
queryTimeout.setDynamic(true);
- lifecycleEventManager = addValue(new LEMValue("LifecycleEventManager", false));
+ lifecycleEventManager = addPlugin("LifecycleEventManager", true);
aliases = new String[] {
"default", LifecycleEventManager.class.getName(),
"validating", ValidatingLifecycleEventManager.class.getName(),
@@ -584,11 +583,6 @@ public class OpenJPAConfigurationImpl
lifecycleEventManager.setString(aliases[0]);
lifecycleEventManager.setInstantiatingGetter("getLifecycleEventManagerInstance");
- singletonLifecycleEventManager = (SingletonLEMValue) addValue(new SingletonLEMValue(
- "SingletonLifecycleEventManager"));
- singletonLifecycleEventManager.setDefault("false");
- singletonLifecycleEventManager.set(false);
-
dynamicEnhancementAgent = addBoolean("DynamicEnhancementAgent");
dynamicEnhancementAgent.setDefault("true");
dynamicEnhancementAgent.set(true);
@@ -1754,9 +1748,9 @@ public class OpenJPAConfigurationImpl
}
public LifecycleEventManager getLifecycleEventManagerInstance() {
- LifecycleEventManager lem = (LifecycleEventManager)
- lifecycleEventManager.get();
- if (lem == null) {
+ LifecycleEventManager lem = null;
+ if (!getCompatibilityInstance().isSingletonLifecycleEventManager() ||
+ (lem = (LifecycleEventManager)lifecycleEventManager.get()) == null) {
lem = (LifecycleEventManager)lifecycleEventManager
.instantiate(LifecycleEventManager.class, this);
}
@@ -1777,41 +1771,6 @@ public class OpenJPAConfigurationImpl
}
}
- class LEMValue extends PluginValue {
- boolean singleton;
-
- public LEMValue(String prop, boolean singleton) {
- super(prop, true);
- this.singleton = singleton;
- }
-
- public Object get() {
- return this.singleton ? super.get() : null;
- }
- }
-
- public boolean isSingletonLifecycleEventManager() {
- return singletonLifecycleEventManager.get();
- }
-
- public void setSingletonLifecycleEventManager(boolean singleton) {
- singletonLifecycleEventManager.set(singleton);
- }
-
- class SingletonLEMValue extends BooleanValue {
-
- public SingletonLEMValue(String prop) {
- super(prop);
- }
-
- public void set(boolean value) {
- super.set(value);
- if (value && !lifecycleEventManager.singleton) {
- lifecycleEventManager.singleton = true;
- }
- }
- }
-
public boolean getDynamicEnhancementAgent() {
return dynamicEnhancementAgent.get();
}
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestMultiEmEntityListeners.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestMultiEmEntityListeners.java?rev=1307018&r1=1307017&r2=1307018&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestMultiEmEntityListeners.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestMultiEmEntityListeners.java Thu Mar 29 17:50:19 2012
@@ -26,7 +26,7 @@ public class TestMultiEmEntityListeners
public void setUp() {
setUp(CLEAR_TABLES, ListenerInEntity.class, AddListenerEntity.class
-// , "openjpa.SingletonLifecycleEventManager", "true"
+// , "openjpa.Compatibility", "SingletonLifecycleEventManager=true"
);
}
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationMode.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationMode.java?rev=1307018&r1=1307017&r2=1307018&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationMode.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationMode.java Thu Mar 29 17:50:19 2012
@@ -258,7 +258,8 @@ public class TestValidationMode extends
// create our EMF
Map<String,String> prop = new HashMap<String,String>();
prop.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
-// prop.put("openjpa.SingletonLifecycleEventManager", "true");
+// prop.put("openjpa.Compatibility", "SingletonLifecycleEventManager=true");
+
OpenJPAEntityManagerFactorySPI emf = (OpenJPAEntityManagerFactorySPI)
OpenJPAPersistence.createEntityManagerFactory(
"simple",
Modified: openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml?rev=1307018&r1=1307017&r2=1307018&view=diff
==============================================================================
--- openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml (original)
+++ openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml Thu Mar 29 17:50:19 2012
@@ -426,7 +426,7 @@
<para> Regenerate the canonical metamodel classes</para>
</listitem>
<listitem>
- <para> Set the Compatibility property <literal>UseListAttributeForArrays</literal> to <literal>true</literal>in persistence.xml
+ <para> Set the Compatibility property <literal>UseListAttributeForArrays</literal> to <literal>true</literal> in persistence.xml
<programlisting> <property name="openjpa.Compatibility" value="UseListAttributeForArrays=true"/></programlisting>
</para>
</listitem>
Modified: openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_conf.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_conf.xml?rev=1307018&r1=1307017&r2=1307018&view=diff
==============================================================================
--- openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_conf.xml (original)
+++ openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_conf.xml Thu Mar 29 17:50:19 2012
@@ -3279,32 +3279,6 @@ system sequence. See <xref linkend="ref_
information.
</para>
</section>
- <section id="openjpa.SingletonLifecycleEventManager">
- <title>openjpa.SingletonLifecycleEventManager</title>
- <para>
- <emphasis role="bold">Property name: </emphasis>
- <literal>openjpa.SingletonLifecycleEventManager</literal>
- </para>
- <para>
- <emphasis role="bold">Configuration API: </emphasis>
- <ulink url="../javadoc/org/apache/openjpa/conf/OpenJPAConfiguration.html#isSingletonLifecycleEventManager()">org.apache.openjpa.conf.OpenJPAConfiguration.isSingletonLifecycleEventManager</ulink>
- </para>
- <para>
- <emphasis role="bold">Resource adaptor config property:</emphasis>
- SingletonLifecycleEventManager
- </para>
- <para>
- <emphasis role="bold">Default: </emphasis>
- <literal>false</literal>
- </para>
- <para>
- <emphasis role="bold">Description:</emphasis>
- This property controls whether each EntityManager has its own life cycle event manager.
- By default, each EntityManager only fires events to the registered listeners to the entities
- it manages. If the life cycle event manager is a singleton, events will be fired to listeners
- registered to all instances of EntityManager in the same persistence unit.
- </para>
- </section>
<section id="openjpa.Specification">
<title>
openjpa.Specification