[jboss-cvs] JBossAS SVN: r63291 - in branches/Branch_4_2/ejb3/src: resources/test/entity/META-INF and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 31 21:44:07 EDT 2007
Author: bdecoste
Date: 2007-05-31 21:44:07 -0400 (Thu, 31 May 2007)
New Revision: 63291
Modified:
branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java
branches/Branch_4_2/ejb3/src/resources/test/entity/META-INF/persistence.xml
branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/entity/unit/EntityUnitTestCase.java
Log:
[EJBTHREE-981] fix and test for replacement of persistence.xml with system properties
Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java 2007-05-31 22:08:43 UTC (rev 63290)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java 2007-06-01 01:44:07 UTC (rev 63291)
@@ -27,10 +27,13 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
import javassist.bytecode.ClassFile;
@@ -56,6 +59,7 @@
import org.jboss.ejb3.metamodel.JBossDDObjectFactory;
import org.jboss.logging.Logger;
//import org.jboss.virtual.VirtualFile;
+import org.jboss.util.StringPropertyReplacer;
import org.jboss.util.file.ArchiveBrowser;
import org.jboss.util.file.ClassFileFilter;
@@ -529,6 +533,7 @@
// scope the unitName if this is an ejb archive
// todo revert to this: List<PersistenceMetadata> persistenceMetadata = PersistenceXmlLoader.deploy(persistenceXmlUrl, new HashMap(), new EJB3DTDEntityResolver());
List<PersistenceMetadata> persistenceMetadata = PersistenceXmlLoader.deploy(persistenceXmlUrl, new HashMap(), new EJB3DTDEntityResolver(), PersistenceUnitTransactionType.JTA);
+ replaceSystemProperties(persistenceMetadata);
for (PersistenceMetadata metadata : persistenceMetadata)
{
String earShortName = deploymentScope == null ? null : deploymentScope.getShortName();
@@ -549,6 +554,63 @@
persistenceUnitDeployments.add(deployment);
}
}
+
+ protected void replaceSystemProperties(List<PersistenceMetadata> persistenceMetadata)
+ {
+ for (PersistenceMetadata metadata : persistenceMetadata)
+ {
+ List<String> classes = metadata.getClasses();
+ List<String> replacedClasses = new ArrayList(classes.size());
+ for (String clazz : classes)
+ replacedClasses.add(StringPropertyReplacer.replaceProperties(clazz));
+ metadata.setClasses(replacedClasses);
+
+ Set<String> jarFiles = metadata.getJarFiles();
+ Set<String> replacedJarFiles = new HashSet();
+ for (String jarFile : jarFiles)
+ replacedJarFiles.add(StringPropertyReplacer.replaceProperties(jarFile));
+ metadata.setJarFiles(replacedJarFiles);
+
+ List<String> mappingFiles = metadata.getMappingFiles();
+ List<String> replacedMappingFiles = new ArrayList(mappingFiles.size());
+ for (String mappingFile : mappingFiles)
+ replacedMappingFiles.add(StringPropertyReplacer.replaceProperties(mappingFile));
+ metadata.setMappingFiles(replacedMappingFiles);
+
+ List<String> packages = metadata.getPackages();
+ List<String> replacedPackages = new ArrayList(packages.size());
+ for (String pkg : packages)
+ replacedPackages.add(StringPropertyReplacer.replaceProperties(pkg));
+ metadata.setPackages(replacedPackages);
+
+ Properties props = metadata.getProps();
+ Properties replacedProps = new Properties();
+ if (props != null)
+ {
+ Iterator keys = props.keySet().iterator();
+ while (keys.hasNext())
+ {
+ Object key = keys.next();
+ String value = (String)props.get(key);
+ replacedProps.put(key, StringPropertyReplacer.replaceProperties(value));
+ }
+ metadata.setProps(replacedProps);
+ }
+
+ if (metadata.getJtaDatasource() != null)
+ metadata.setJtaDatasource(StringPropertyReplacer.replaceProperties(metadata.getJtaDatasource()));
+
+ if (metadata.getNonJtaDatasource() != null)
+ metadata.setNonJtaDatasource(StringPropertyReplacer.replaceProperties(metadata.getNonJtaDatasource()));
+
+ if (metadata.getName() != null)
+ metadata.setName(StringPropertyReplacer.replaceProperties(metadata.getName()));
+
+ if (metadata.getProvider() != null)
+ metadata.setProvider(StringPropertyReplacer.replaceProperties(metadata.getProvider()));
+
+ }
+ }
public abstract DependencyPolicy createDependencyPolicy();
Modified: branches/Branch_4_2/ejb3/src/resources/test/entity/META-INF/persistence.xml
===================================================================
--- branches/Branch_4_2/ejb3/src/resources/test/entity/META-INF/persistence.xml 2007-05-31 22:08:43 UTC (rev 63290)
+++ branches/Branch_4_2/ejb3/src/resources/test/entity/META-INF/persistence.xml 2007-06-01 01:44:07 UTC (rev 63291)
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="tempdb">
- <jta-data-source>java:/DefaultDS</jta-data-source>
+ <!--jta-data-source>java:/DefaultDS</jta-data-source-->
+ <jta-data-source>${jta-data-source}</jta-data-source>
<properties>
- <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+ <!--property name="hibernate.hbm2ddl.auto" value="create-drop"/-->
+ <property name="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}"/>
</properties>
</persistence-unit>
</persistence>
Modified: branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/entity/unit/EntityUnitTestCase.java
===================================================================
--- branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/entity/unit/EntityUnitTestCase.java 2007-05-31 22:08:43 UTC (rev 63290)
+++ branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/entity/unit/EntityUnitTestCase.java 2007-06-01 01:44:07 UTC (rev 63291)
@@ -22,6 +22,11 @@
package org.jboss.ejb3.test.entity.unit;
import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.jboss.ejb3.ClientKernelAbstraction;
+import org.jboss.ejb3.KernelAbstractionFactory;
import org.jboss.ejb3.test.entity.Address;
import org.jboss.ejb3.test.entity.Company;
import org.jboss.ejb3.test.entity.Customer;
@@ -216,6 +221,22 @@
public static Test suite() throws Exception
{
+ ClientKernelAbstraction kernel = KernelAbstractionFactory.getClientInstance();
+ ObjectName propertiesServiceON = new ObjectName("jboss:type=Service,name=SystemProperties");
+ kernel.invoke(
+ propertiesServiceON,
+ "set",
+ new Object[]{"jta-data-source","java:/DefaultDS"},
+ new String[]{"java.lang.String", "java.lang.String"}
+ );
+
+ kernel.invoke(
+ propertiesServiceON,
+ "set",
+ new Object[]{"hibernate.hbm2ddl.auto","create-drop"},
+ new String[]{"java.lang.String", "java.lang.String"}
+ );
+
return getDeploySetup(EntityUnitTestCase.class, "entity-test.jar");
}
More information about the jboss-cvs-commits
mailing list