You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Jonathan Gallimore <jo...@gmail.com> on 2011/10/30 00:42:05 UTC

Re: svn commit: r1195062 - in /openejb/trunk/openejb/arquillian-tomee: arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/

You beat me to it... I was about to commit something similar to cleanup
these files. :)

Thanks!

Jon
On Oct 29, 2011 11:38 PM, <rm...@apache.org> wrote:

> Author: rmannibucau
> Date: Sat Oct 29 22:38:23 2011
> New Revision: 1195062
>
> URL: http://svn.apache.org/viewvc?rev=1195062&view=rev
> Log:
> trying to cleanup a bit arquillian stuff to avoid bad deployment and issue
> dur to not updated jar
>
> 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-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
>
>  openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.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=1195062&r1=1195061&r2=1195062&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
> Sat Oct 29 22:38:23 2011
> @@ -35,6 +35,7 @@ public class FileUtils {
>     }
>
>     private FileUtils() {
> +        // no-op
>     }
>
>     // Shutdown hook for recurssive delete on tmp directories
> @@ -59,7 +60,7 @@ public class FileUtils {
>         }
>     }
>
> -    private static void delete(File file) {
> +    public static void delete(File file) {
>         if (file.isDirectory()) {
>             for (File f : file.listFiles()) {
>                 delete(f);
>
> Modified:
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> URL:
> http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1195062&r1=1195061&r2=1195062&view=diff
>
> ==============================================================================
> ---
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> (original)
> +++
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> Sat Oct 29 22:38:23 2011
> @@ -16,16 +16,6 @@
>  */
>  package org.apache.openejb.arquillian.common;
>
> -import java.io.File;
> -import java.io.OutputStream;
> -import java.net.Socket;
> -import java.util.HashMap;
> -import java.util.Map;
> -import java.util.Properties;
> -
> -import javax.naming.Context;
> -import javax.naming.InitialContext;
> -
>  import org.apache.openejb.assembler.Deployer;
>  import
> org.jboss.arquillian.container.spi.client.container.DeployableContainer;
>  import
> org.jboss.arquillian.container.spi.client.container.DeploymentException;
> @@ -39,11 +29,23 @@ import org.jboss.shrinkwrap.api.exporter
>  import org.jboss.shrinkwrap.api.spec.WebArchive;
>  import org.jboss.shrinkwrap.descriptor.api.Descriptor;
>
> +import javax.naming.Context;
> +import javax.naming.InitialContext;
> +import java.io.File;
> +import java.io.OutputStream;
> +import java.net.Socket;
> +import java.util.HashMap;
> +import java.util.Map;
> +import java.util.Properties;
> +import java.util.logging.Logger;
> +
>  public abstract class TomEEContainer implements
> DeployableContainer<TomEEConfiguration> {
> +    protected static final Logger LOGGER =
> Logger.getLogger(TomEEContainer.class.getName());
> +
>     protected static final String LOCALHOST = "localhost";
>     protected static final String SHUTDOWN_COMMAND = "SHUTDOWN" +
> Character.toString((char) -1);
>     protected TomEEConfiguration configuration;
> -    protected Map<String, String> moduleIds = new HashMap<String,
> String>();
> +    protected Map<String, File> moduleIds = new HashMap<String, File>();
>
>     public Class<TomEEConfiguration> getConfigurationClass() {
>         return TomEEConfiguration.class;
> @@ -62,6 +64,11 @@ public abstract class TomEEContainer imp
>             out.write(SHUTDOWN_COMMAND.getBytes());
>
>             waitForShutdown(10);
> +
> +            File dir = new File(configuration.getDir());
> +            if (dir.exists()) {
> +                FileUtils.deleteOnExit(dir); // if we can avoid to delete
> it between each test it is better
> +            }
>         } catch (Exception e) {
>             throw new LifecycleException("Unable to stop TomEE", e);
>         }
> @@ -93,8 +100,15 @@ public abstract class TomEEContainer imp
>     public ProtocolMetaData deploy(Archive<?> archive) throws
> DeploymentException {
>         try {
>             String tmpDir = System.getProperty("java.io.tmpdir");
> -            File file = new File(tmpDir + File.separator +
> archive.getName());
> -            file.deleteOnExit();
> +            File file;
> +            int i = 0;
> +            do { // be sure we don't override something existing
> +                file = new File(tmpDir + File.separator + i +
> File.separator + archive.getName());
> +            } while (file.exists());
> +            if (!file.getParentFile().mkdirs()) {
> +                LOGGER.warning("can't create " + file.getParent());
> +            }
> +
>             archive.as(ZipExporter.class).exportTo(file, true);
>
>             Properties properties = new Properties();
> @@ -105,7 +119,15 @@ public abstract class TomEEContainer imp
>             Deployer deployer = (Deployer)
> context.lookup("openejb/DeployerBusinessRemote");
>             deployer.deploy(file.getAbsolutePath());
>
> -            moduleIds.put(archive.getName(), file.getAbsolutePath());
> +            moduleIds.put(archive.getName(), file);
> +
> +            final String fileName = file.getName();
> +            if (fileName.endsWith(".war")) {
> +                File extracted = new File(file.getParentFile(),
> fileName.substring(0, fileName.length() - 4));
> +                if (extracted.exists()) {
> +                    extracted.deleteOnExit();
> +                }
> +            }
>
>             HTTPContext httpContext = new HTTPContext(LOCALHOST,
> configuration.getHttpPort());
>             if (archive instanceof WebArchive) {
> @@ -131,20 +153,17 @@ public abstract class TomEEContainer imp
>         return archiveName;
>     }
>
> -    private Servlet getArquillianServlet() {
> -        Servlet servlet = new Servlet("ArquillianServletRunner", "/");
> -        return servlet;
> -    }
> -
>     public void undeploy(Archive<?> archive) throws DeploymentException {
>         try {
>             Properties properties = new Properties();
>             properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> "org.apache.openejb.client.RemoteInitialContextFactory");
>             properties.setProperty(Context.PROVIDER_URL, "http://" +
> LOCALHOST + ":" + configuration.getHttpPort() + "/openejb/ejb");
>             InitialContext context = new InitialContext(properties);
> -            String appId = moduleIds.get(archive.getName());
> +            File file = moduleIds.get(archive.getName());
>             Deployer deployer = (Deployer)
> context.lookup("openejb/DeployerBusinessRemote");
> -            deployer.undeploy(appId);
> +            deployer.undeploy(file.getAbsolutePath());
> +
> +            FileUtils.delete(file.getParentFile()); // "i" folder
>         } catch (Exception e) {
>             e.printStackTrace();
>             throw new DeploymentException("Unable to undeploy", e);
>
> Modified:
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> URL:
> http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java?rev=1195062&r1=1195061&r2=1195062&view=diff
>
> ==============================================================================
> ---
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> (original)
> +++
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> Sat Oct 29 22:38:23 2011
> @@ -185,6 +185,7 @@ public class RemoteTomEEContainer extend
>        // only stop the container if we started it
>        if (needsStart) {
>                container.stop();
> +            FileUtils.delete(new File(configuration.getDir()));
>        }
>     }
>
>
>
>

Re: svn commit: r1195062 - in /openejb/trunk/openejb/arquillian-tomee: arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/

Posted by Romain Manni-Bucau <rm...@gmail.com>.
feel free to enhance it if needed, i did it a bit quickly ;)

- Romain


2011/10/30 Jonathan Gallimore <jo...@gmail.com>

> You beat me to it... I was about to commit something similar to cleanup
> these files. :)
>
> Thanks!
>
> Jon
> On Oct 29, 2011 11:38 PM, <rm...@apache.org> wrote:
>
> > Author: rmannibucau
> > Date: Sat Oct 29 22:38:23 2011
> > New Revision: 1195062
> >
> > URL: http://svn.apache.org/viewvc?rev=1195062&view=rev
> > Log:
> > trying to cleanup a bit arquillian stuff to avoid bad deployment and
> issue
> > dur to not updated jar
> >
> > 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-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> >
> >
>  openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.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=1195062&r1=1195061&r2=1195062&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
> > Sat Oct 29 22:38:23 2011
> > @@ -35,6 +35,7 @@ public class FileUtils {
> >     }
> >
> >     private FileUtils() {
> > +        // no-op
> >     }
> >
> >     // Shutdown hook for recurssive delete on tmp directories
> > @@ -59,7 +60,7 @@ public class FileUtils {
> >         }
> >     }
> >
> > -    private static void delete(File file) {
> > +    public static void delete(File file) {
> >         if (file.isDirectory()) {
> >             for (File f : file.listFiles()) {
> >                 delete(f);
> >
> > Modified:
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> > URL:
> >
> http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1195062&r1=1195061&r2=1195062&view=diff
> >
> >
> ==============================================================================
> > ---
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> > (original)
> > +++
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
> > Sat Oct 29 22:38:23 2011
> > @@ -16,16 +16,6 @@
> >  */
> >  package org.apache.openejb.arquillian.common;
> >
> > -import java.io.File;
> > -import java.io.OutputStream;
> > -import java.net.Socket;
> > -import java.util.HashMap;
> > -import java.util.Map;
> > -import java.util.Properties;
> > -
> > -import javax.naming.Context;
> > -import javax.naming.InitialContext;
> > -
> >  import org.apache.openejb.assembler.Deployer;
> >  import
> > org.jboss.arquillian.container.spi.client.container.DeployableContainer;
> >  import
> > org.jboss.arquillian.container.spi.client.container.DeploymentException;
> > @@ -39,11 +29,23 @@ import org.jboss.shrinkwrap.api.exporter
> >  import org.jboss.shrinkwrap.api.spec.WebArchive;
> >  import org.jboss.shrinkwrap.descriptor.api.Descriptor;
> >
> > +import javax.naming.Context;
> > +import javax.naming.InitialContext;
> > +import java.io.File;
> > +import java.io.OutputStream;
> > +import java.net.Socket;
> > +import java.util.HashMap;
> > +import java.util.Map;
> > +import java.util.Properties;
> > +import java.util.logging.Logger;
> > +
> >  public abstract class TomEEContainer implements
> > DeployableContainer<TomEEConfiguration> {
> > +    protected static final Logger LOGGER =
> > Logger.getLogger(TomEEContainer.class.getName());
> > +
> >     protected static final String LOCALHOST = "localhost";
> >     protected static final String SHUTDOWN_COMMAND = "SHUTDOWN" +
> > Character.toString((char) -1);
> >     protected TomEEConfiguration configuration;
> > -    protected Map<String, String> moduleIds = new HashMap<String,
> > String>();
> > +    protected Map<String, File> moduleIds = new HashMap<String, File>();
> >
> >     public Class<TomEEConfiguration> getConfigurationClass() {
> >         return TomEEConfiguration.class;
> > @@ -62,6 +64,11 @@ public abstract class TomEEContainer imp
> >             out.write(SHUTDOWN_COMMAND.getBytes());
> >
> >             waitForShutdown(10);
> > +
> > +            File dir = new File(configuration.getDir());
> > +            if (dir.exists()) {
> > +                FileUtils.deleteOnExit(dir); // if we can avoid to
> delete
> > it between each test it is better
> > +            }
> >         } catch (Exception e) {
> >             throw new LifecycleException("Unable to stop TomEE", e);
> >         }
> > @@ -93,8 +100,15 @@ public abstract class TomEEContainer imp
> >     public ProtocolMetaData deploy(Archive<?> archive) throws
> > DeploymentException {
> >         try {
> >             String tmpDir = System.getProperty("java.io.tmpdir");
> > -            File file = new File(tmpDir + File.separator +
> > archive.getName());
> > -            file.deleteOnExit();
> > +            File file;
> > +            int i = 0;
> > +            do { // be sure we don't override something existing
> > +                file = new File(tmpDir + File.separator + i +
> > File.separator + archive.getName());
> > +            } while (file.exists());
> > +            if (!file.getParentFile().mkdirs()) {
> > +                LOGGER.warning("can't create " + file.getParent());
> > +            }
> > +
> >             archive.as(ZipExporter.class).exportTo(file, true);
> >
> >             Properties properties = new Properties();
> > @@ -105,7 +119,15 @@ public abstract class TomEEContainer imp
> >             Deployer deployer = (Deployer)
> > context.lookup("openejb/DeployerBusinessRemote");
> >             deployer.deploy(file.getAbsolutePath());
> >
> > -            moduleIds.put(archive.getName(), file.getAbsolutePath());
> > +            moduleIds.put(archive.getName(), file);
> > +
> > +            final String fileName = file.getName();
> > +            if (fileName.endsWith(".war")) {
> > +                File extracted = new File(file.getParentFile(),
> > fileName.substring(0, fileName.length() - 4));
> > +                if (extracted.exists()) {
> > +                    extracted.deleteOnExit();
> > +                }
> > +            }
> >
> >             HTTPContext httpContext = new HTTPContext(LOCALHOST,
> > configuration.getHttpPort());
> >             if (archive instanceof WebArchive) {
> > @@ -131,20 +153,17 @@ public abstract class TomEEContainer imp
> >         return archiveName;
> >     }
> >
> > -    private Servlet getArquillianServlet() {
> > -        Servlet servlet = new Servlet("ArquillianServletRunner", "/");
> > -        return servlet;
> > -    }
> > -
> >     public void undeploy(Archive<?> archive) throws DeploymentException {
> >         try {
> >             Properties properties = new Properties();
> >             properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> > "org.apache.openejb.client.RemoteInitialContextFactory");
> >             properties.setProperty(Context.PROVIDER_URL, "http://" +
> > LOCALHOST + ":" + configuration.getHttpPort() + "/openejb/ejb");
> >             InitialContext context = new InitialContext(properties);
> > -            String appId = moduleIds.get(archive.getName());
> > +            File file = moduleIds.get(archive.getName());
> >             Deployer deployer = (Deployer)
> > context.lookup("openejb/DeployerBusinessRemote");
> > -            deployer.undeploy(appId);
> > +            deployer.undeploy(file.getAbsolutePath());
> > +
> > +            FileUtils.delete(file.getParentFile()); // "i" folder
> >         } catch (Exception e) {
> >             e.printStackTrace();
> >             throw new DeploymentException("Unable to undeploy", e);
> >
> > Modified:
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> > URL:
> >
> http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java?rev=1195062&r1=1195061&r2=1195062&view=diff
> >
> >
> ==============================================================================
> > ---
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> > (original)
> > +++
> >
> openejb/trunk/openejb/arquillian-tomee/arquillian-tomee-remote/src/main/java/org/apache/openejb/arquillian/remote/RemoteTomEEContainer.java
> > Sat Oct 29 22:38:23 2011
> > @@ -185,6 +185,7 @@ public class RemoteTomEEContainer extend
> >        // only stop the container if we started it
> >        if (needsStart) {
> >                container.stop();
> > +            FileUtils.delete(new File(configuration.getDir()));
> >        }
> >     }
> >
> >
> >
> >
>