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/04 23:39:17 UTC

svn commit: r1210265 - in /openejb/trunk/openejb: arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/ tck/cdi-tome...

Author: rmannibucau
Date: Sun Dec  4 22:39:17 2011
New Revision: 1210265

URL: http://svn.apache.org/viewvc?rev=1210265&view=rev
Log:
adding some delete hook to avoid to limit a bit what we put in /tmp

Modified:
    openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/FileUtils.java
    openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
    openejb/trunk/openejb/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ContainersImpl.java
    openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
    openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java

Modified: openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/FileUtils.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/FileUtils.java?rev=1210265&r1=1210264&r2=1210265&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/FileUtils.java (original)
+++ openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/FileUtils.java Sun Dec  4 22:39:17 2011
@@ -38,7 +38,7 @@ public class FileUtils {
         // no-op
     }
 
-    // Shutdown hook for recurssive delete on tmp directories
+    // Shutdown hook for recursive delete on tmp directories
     static final List<String> delete = new ArrayList<String>();
 
     static {
@@ -61,12 +61,14 @@ public class FileUtils {
     }
 
     public static void delete(File file) {
-        if (file.isDirectory()) {
-            for (File f : file.listFiles()) {
-                delete(f);
+        if (file.exists()) {
+            if (file.isDirectory()) {
+                for (File f : file.listFiles()) {
+                    delete(f);
+                }
             }
-        }
 
-        file.delete();
+            file.delete();
+        }
     }
 }

Modified: openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java?rev=1210265&r1=1210264&r2=1210265&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java (original)
+++ openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java Sun Dec  4 22:39:17 2011
@@ -39,6 +39,8 @@ import org.jboss.shrinkwrap.api.exporter
 import javax.enterprise.inject.spi.BeanManager;
 import javax.naming.Context;
 import java.io.File;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 public class EmbeddedTomEEContainer extends TomEEContainer {
 
@@ -48,6 +50,8 @@ public class EmbeddedTomEEContainer exte
     @Inject @ContainerScoped private InstanceProducer<Context> contextInstance;
     @Inject @DeploymentScoped private InstanceProducer<BeanManager> beanManagerInstance;
 
+    private static final Map<Archive<?>, File> ARCHIVES = new ConcurrentHashMap<Archive<?>, File>();
+
     private Container container;
 
     public EmbeddedTomEEContainer() {
@@ -113,6 +117,7 @@ public class EmbeddedTomEEContainer exte
             final File tempDir = FileUtils.createTempDir();
             final String name = archive.getName();
             final File file = new File(tempDir, name);
+            ARCHIVES.put(archive, file);
         	archive.as(ZipExporter.class).exportTo(file, true);
 
 
@@ -136,5 +141,11 @@ public class EmbeddedTomEEContainer exte
             e.printStackTrace();
             throw new DeploymentException("Unable to undeploy", e);
         }
+        File file = ARCHIVES.remove(archive);
+        File folder = new File(file.getParentFile(), file.getName().substring(0, file.getName().length() - 5));
+        if (folder.exists()) {
+            FileUtils.delete(folder);
+        }
+        FileUtils.delete(file);
     }
 }

Modified: openejb/trunk/openejb/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ContainersImpl.java?rev=1210265&r1=1210264&r2=1210265&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ContainersImpl.java (original)
+++ openejb/trunk/openejb/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ContainersImpl.java Sun Dec  4 22:39:17 2011
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.tck.cdi.tomee.embedded;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.openejb.config.ValidationException;
 import org.apache.tomee.embedded.Container;
 import org.jboss.testharness.api.DeploymentException;
@@ -27,6 +28,8 @@ import java.io.FileOutputStream;
 import java.io.Flushable;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @version $Rev$ $Date$
@@ -38,6 +41,8 @@ public class ContainersImpl implements C
     private Exception exception;
     private final Container container;
 
+    private static final Map<String, File> FILES = new ConcurrentHashMap<String, File>();
+
     public ContainersImpl() {
         System.out.println("Initialized ContainersImpl " + (++count));
         container = new Container();
@@ -52,6 +57,7 @@ public class ContainersImpl implements C
 
         File application = getFile(name);
         System.out.println(application);
+        FILES.put(name, application.getParentFile());
         writeToFile(application, archive);
 
         try {
@@ -94,7 +100,8 @@ public class ContainersImpl implements C
 
     private File getFile(String name) {
         final File dir = new File(tmpDir, Math.random() + "");
-        dir.mkdir();
+        dir.mkdirs();
+        dir.deleteOnExit();
 
         return new File(dir, name);
     }
@@ -118,6 +125,10 @@ public class ContainersImpl implements C
             e.printStackTrace();
             throw new RuntimeException(e);
         }
+
+        File file = FILES.remove(name);
+        System.out.println("deleting " + file.getAbsolutePath());
+        FileUtils.deleteDirectory(file);
     }
 
     @Override
@@ -136,6 +147,11 @@ public class ContainersImpl implements C
         } catch (Exception e) {
             throw new IOException(e);
         }
+
+        for (File f : FILES.values()) {
+            FileUtils.deleteDirectory(f);
+        }
+        FILES.clear();
     }
 
     private static final class Util {

Modified: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java?rev=1210265&r1=1210264&r2=1210265&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java (original)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java Sun Dec  4 22:39:17 2011
@@ -16,9 +16,6 @@
  */
 package org.apache.openejb.tck.impl;
 
-import javax.ejb.EJBException;
-import javax.ejb.embeddable.EJBContainer;
-import javax.validation.ValidationException;
 import org.apache.openejb.OpenEJB;
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
@@ -26,7 +23,6 @@ import org.apache.openejb.loader.SystemI
 import org.apache.openejb.tck.OpenEJBTckDeploymentRuntimeException;
 import org.apache.openejb.tck.util.ZipUtil;
 import org.apache.openejb.util.SetAccessible;
-import org.apache.webbeans.config.WebBeansContext;
 import org.jboss.testharness.api.DeploymentException;
 import org.jboss.testharness.impl.packaging.Resource;
 import org.jboss.testharness.impl.packaging.Resources;
@@ -35,6 +31,9 @@ import org.jboss.testharness.impl.packag
 import org.jboss.testharness.impl.packaging.jsr303.ValidationXml;
 import org.jboss.testharness.spi.Containers;
 
+import javax.ejb.EJBException;
+import javax.ejb.embeddable.EJBContainer;
+import javax.validation.ValidationException;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;

Modified: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java?rev=1210265&r1=1210264&r2=1210265&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java (original)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java Sun Dec  4 22:39:17 2011
@@ -126,6 +126,7 @@ public class ContainersImplTomEE impleme
     private File getFile(String name) {
         final File dir = new File(tmpDir, Math.random()+"");
         dir.mkdir();
+        dir.deleteOnExit();
 
         return new File(dir, name);
     }
@@ -157,12 +158,24 @@ public class ContainersImplTomEE impleme
             throw new RuntimeException(e);
         }
 
-        if (currentFile != null && currentFile.exists()) {
-            if (!currentFile.delete()) {
-                currentFile.deleteOnExit();
+        File toDelete;
+        if (currentFile != null && (toDelete = currentFile.getParentFile()).exists()) {
+            System.out.println("deleting " + toDelete.getAbsolutePath());
+            delete(toDelete);
+        }
+    }
+
+    private static void delete(File file) {
+        if (file.isDirectory()) {
+            for (File f : file.listFiles()) {
+                delete(f);
             }
         }
+        if (!file.delete()) {
+            file.deleteOnExit();
+        }
     }
+
     @Override
     public void setup() throws IOException {
         System.out.println("Setup called");