oops i pressed entrer too fast,

the comment is of course "adding some delete hooks to limit a bit what we
put in /tmp"

However we clearly have a problem since we create too much things in tmp
with our build.

we have to take care of it or our buildbot trigger(s) could be removed
(from infra) :(

- Romain


---------- Forwarded message ----------
From: <[email protected]>
Date: 2011/12/4
Subject: 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...
To: [email protected]


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");

Reply via email to