Author: epbernard
Date: 2006-03-29 11:26:46 -0500 (Wed, 29 Mar 2006)
New Revision: 9717
Added:
trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/util/ConfigurationHelper.java
Modified:
trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/Ejb3Configuration.java
trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/PersistenceXmlLoader.java
trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/ops/MergeNewTest.java
Log:
EJB-155
Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/Ejb3Configuration.java 2006-03-29 16:07:12 UTC (rev 9716)
+++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/Ejb3Configuration.java 2006-03-29 16:26:46 UTC (rev 9717)
@@ -49,6 +49,7 @@
import org.hibernate.ejb.packaging.PersistenceXmlLoader;
import org.hibernate.ejb.transaction.JoinableCMTTransactionFactory;
import org.hibernate.ejb.util.LogHelper;
+import org.hibernate.ejb.util.ConfigurationHelper;
import org.hibernate.engine.FilterDefinition;
import org.hibernate.event.EventListeners;
import org.hibernate.mapping.AuxiliaryDatabaseObject;
@@ -270,11 +271,7 @@
Properties properties = info.getProperties() != null ?
info.getProperties() :
new Properties();
- for ( Map.Entry entry : (Set<Map.Entry>) integration.entrySet() ) {
- if ( entry.getKey() instanceof String && entry.getValue() instanceof String ) {
- properties.setProperty( (String) entry.getKey(), (String) entry.getValue() );
- }
- }
+ ConfigurationHelper.overrideProperties( properties, integration );
//FIXME send the appropriate entites.
if ( "true".equalsIgnoreCase( properties.getProperty(HibernatePersistence.USE_CLASS_ENHANCER) ) ) {
@@ -319,7 +316,7 @@
private void defineTransactionType(Object overridenTxType, String persistenceUnitName) {
if (overridenTxType == null) {
if (transactionType == null) {
- transactionType = PersistenceUnitTransactionType.JTA; //this is the default value
+ transactionType = PersistenceUnitTransactionType.JTA; //this is the default value
}
}
else if (overridenTxType instanceof String) {
Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/PersistenceXmlLoader.java
===================================================================
--- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/PersistenceXmlLoader.java 2006-03-29 16:07:12 UTC (rev 9716)
+++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/PersistenceXmlLoader.java 2006-03-29 16:26:46 UTC (rev 9717)
@@ -7,7 +7,6 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import java.util.Set;
import javax.persistence.PersistenceException;
import javax.persistence.spi.PersistenceUnitTransactionType;
import javax.xml.parsers.DocumentBuilder;
@@ -17,6 +16,7 @@
import org.apache.commons.logging.LogFactory;
import org.hibernate.cfg.EJB3DTDEntityResolver;
import org.hibernate.ejb.HibernatePersistence;
+import org.hibernate.ejb.util.ConfigurationHelper;
import org.hibernate.util.StringHelper;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -98,11 +98,7 @@
metadata.setNonJtaDatasource( dataSource );
}
Properties properties = metadata.getProps();
- for ( Map.Entry entry : (Set<Map.Entry>) overrides.entrySet() ) {
- if ( entry.getKey() instanceof String && entry.getValue() instanceof String ) {
- properties.setProperty( (String) entry.getKey(), (String) entry.getValue() );
- }
- }
+ ConfigurationHelper.overrideProperties( properties, overrides );
units.add( metadata );
}
}
Added: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/util/ConfigurationHelper.java
===================================================================
--- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/util/ConfigurationHelper.java 2006-03-29 16:07:12 UTC (rev 9716)
+++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/util/ConfigurationHelper.java 2006-03-29 16:26:46 UTC (rev 9717)
@@ -0,0 +1,19 @@
+//$Id: $
+package org.hibernate.ejb.util;
+
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public abstract class ConfigurationHelper {
+ public static void overrideProperties(Properties properties, Map overrides) {
+ for ( Map.Entry entry : (Set<Map.Entry>) overrides.entrySet() ) {
+ if ( entry.getKey() instanceof String && entry.getValue() instanceof String ) {
+ properties.setProperty( (String) entry.getKey(), (String) entry.getValue() );
+ }
+ }
+ }
+}
Modified: trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/ops/MergeNewTest.java
===================================================================
--- trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/ops/MergeNewTest.java 2006-03-29 16:07:12 UTC (rev 9716)
+++ trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/ops/MergeNewTest.java 2006-03-29 16:26:46 UTC (rev 9717)
@@ -24,6 +24,31 @@
em.close();
}
+ public void testMergeAfterRemove() throws Exception {
+ Workload load = new Workload();
+ load.name = "Cleaning";
+ load.load = 10;
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ load = em.merge( load );
+ em.flush();
+ em.getTransaction().commit();
+ em.close();
+ em = factory.createEntityManager();
+ em.getTransaction().begin();
+ load = em.find(Workload.class, load.id);
+ em.remove( load );
+ em.flush();
+ em.getTransaction().commit();
+ em.close();
+ em = factory.createEntityManager();
+ em.getTransaction().begin();
+ em.merge( load );
+ em.flush();
+ em.getTransaction().commit();
+ em.close();
+ }
+
public Class[] getAnnotatedClasses() {
return new Class[] {
Workload.class
|