You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/05 00:39:38 UTC

svn commit: r1210280 - in /openejb/trunk/openejb/container/openejb-core: pom.xml src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java

Author: rmannibucau
Date: Sun Dec  4 23:39:37 2011
New Revision: 1210280

URL: http://svn.apache.org/viewvc?rev=1210280&view=rev
Log:
managing a property to know where to dump ejb-jar and opeenjb-jar and using it for openejb-core (to avoid /tmp files)

Modified:
    openejb/trunk/openejb/container/openejb-core/pom.xml
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java

Modified: openejb/trunk/openejb/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/pom.xml?rev=1210280&r1=1210279&r2=1210280&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/pom.xml (original)
+++ openejb/trunk/openejb/container/openejb-core/pom.xml Sun Dec  4 23:39:37 2011
@@ -138,7 +138,7 @@
                   <configuration>
                       <forkMode>pertest</forkMode>
                       <testNGArtifactName>none:none</testNGArtifactName>
-                      <argLine>-Xmx256m -Djava.endorsed.dirs=${openejb.build.endorsed}
+                      <argLine>-Xmx256m -Djava.endorsed.dirs=${openejb.build.endorsed} -Dopenejb.descriptors.output.folder=./dump/
                           "-javaagent:${basedir}/target/openejb-javaagent-${project.version}.jar" -enableassertions
                       </argLine>
                       <workingDirectory>${basedir}/target</workingDirectory>

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java?rev=1210280&r1=1210279&r2=1210280&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java Sun Dec  4 23:39:37 2011
@@ -16,35 +16,35 @@
  */
 package org.apache.openejb.config;
 
+import org.apache.commons.lang.math.RandomUtils;
 import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.loader.Options;
 import org.apache.openejb.jee.Connector;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.JAXBContextFactory;
 import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.jee.jpa.EntityMappings;
+import org.apache.openejb.jee.jpa.JpaJaxbUtil;
 import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
 import org.apache.openejb.jee.oejb2.JaxbOpenejbJar2;
-import org.apache.openejb.jee.jpa.JpaJaxbUtil;
-import org.apache.openejb.jee.jpa.EntityMappings;
 import org.apache.openejb.jee.oejb3.JaxbOpenejbJar3;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.loader.Options;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
-
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.List;
 
 public class OutputGeneratedDescriptors implements DynamicDeployer {
     private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, "org.apache.openejb.util.resources");
     public static final String OUTPUT_DESCRIPTORS = "openejb.descriptors.output";
+    public static final String OUTPUT_DESCRIPTORS_FOLDER = "openejb.descriptors.output.folder";
 
     public AppModule deploy(AppModule appModule) throws OpenEJBException {
         boolean output = SystemInstance.get().getOptions().get(OUTPUT_DESCRIPTORS, false);
@@ -64,7 +64,7 @@ public class OutputGeneratedDescriptors 
 
             output = options.get(OUTPUT_DESCRIPTORS, invalid);
 
-            if (output){
+            if (output) {
                 if (ejbModule.getEjbJar() != null) {
                     writeEjbJar(ejbModule);
                 }
@@ -88,7 +88,7 @@ public class OutputGeneratedDescriptors 
     	try {
 	    	Connector connector = connectorModule.getConnector();
 	
-	        File tempFile = File.createTempFile("ra-", connectorModule.getModuleId() + ".xml");
+	        File tempFile = tempFile("ra-", connectorModule.getModuleId() + ".xml");
 	        FileOutputStream fout = new FileOutputStream(tempFile);
 	        BufferedOutputStream out = new BufferedOutputStream(fout);
 	
@@ -104,9 +104,23 @@ public class OutputGeneratedDescriptors 
     	}
 	}
 
+    private File tempFile(String start, String end) throws IOException {
+        if (System.getProperty(OUTPUT_DESCRIPTORS_FOLDER) != null) {
+            File tmp = new File(System.getProperty(OUTPUT_DESCRIPTORS_FOLDER));
+            if (!tmp.exists()) {
+                if (!tmp.mkdirs()) {
+                    throw new IOException("can't create " + tmp.getAbsolutePath());
+                }
+            }
+            return new File(tmp, start + Long.toString(RandomUtils.nextInt()) + end);
+        } else {
+            return tempFile(start, end);
+        }
+    }
+
 	private void writeGenratedCmpMappings(AppModule appModule) {
         try {
-            File tempFile = File.createTempFile("openejb-cmp-generated-orm-", ".xml");
+            File tempFile = tempFile("openejb-cmp-generated-orm-", ".xml");
             FileOutputStream fout = new FileOutputStream(tempFile);
             BufferedOutputStream out = new BufferedOutputStream(fout);
 
@@ -123,7 +137,7 @@ public class OutputGeneratedDescriptors 
     private void writeOpenejbJar(EjbModule ejbModule) {
         try {
             OpenejbJar openejbJar = ejbModule.getOpenejbJar();
-            File tempFile = File.createTempFile("openejb-jar-", ejbModule.getModuleId() + ".xml");
+            File tempFile = tempFile("openejb-jar-", ejbModule.getModuleId() + ".xml");
             FileOutputStream fout = new FileOutputStream(tempFile);
             BufferedOutputStream out = new BufferedOutputStream(fout);
             try {
@@ -143,7 +157,7 @@ public class OutputGeneratedDescriptors 
 
             if (geronimoEjbJarType == null) return;
 
-            File tempFile = File.createTempFile("geronimo-openejb-", ejbModule.getModuleId() + ".xml");
+            File tempFile = tempFile("geronimo-openejb-", ejbModule.getModuleId() + ".xml");
             FileOutputStream fout = new FileOutputStream(tempFile);
             BufferedOutputStream out = new BufferedOutputStream(fout);
             try {
@@ -160,7 +174,7 @@ public class OutputGeneratedDescriptors 
     private void writeEjbJar(EjbModule ejbModule) {
         try {
             EjbJar ejbJar = ejbModule.getEjbJar();
-            File tempFile = File.createTempFile("ejb-jar-", ejbModule.getModuleId() + ".xml");
+            File tempFile = tempFile("ejb-jar-", ejbModule.getModuleId() + ".xml");
             FileOutputStream fout = new FileOutputStream(tempFile);
             BufferedOutputStream out = new BufferedOutputStream(fout);
             try {