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