[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