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 2014/09/30 23:45:02 UTC

svn commit: r1628555 - in /tomee/tomee/trunk/arquillian: arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian-tomee-remote/ arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/ arquillian-tomee-remote/s...

Author: rmannibucau
Date: Tue Sep 30 21:45:01 2014
New Revision: 1628555

URL: http://svn.apache.org/r1628555
Log:
TOMEE-1367 singleDumpByArchiveName to avoid to dump N times the same SW archive

Modified:
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/CheckServerInfoTest.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/unpack/UnpackTest.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java Tue Sep 30 21:45:01 2014
@@ -45,6 +45,7 @@ public class TomEEConfiguration implemen
     protected String properties = "";
     protected String webContextToUseWithEars;
     protected boolean keepServerXmlAsThis;
+    protected boolean singleDumpByArchiveName = false;
 
     public boolean isUnpackWars() {
         return unpackWars;
@@ -211,4 +212,12 @@ public class TomEEConfiguration implemen
     public void setKeepServerXmlAsThis(final boolean keepServerXmlAsThis) {
         this.keepServerXmlAsThis = keepServerXmlAsThis;
     }
+
+    public boolean isSingleDumpByArchiveName() {
+        return singleDumpByArchiveName;
+    }
+
+    public void setSingleDumpByArchiveName(final boolean singleDumpByArchiveName) {
+        this.singleDumpByArchiveName = singleDumpByArchiveName;
+    }
 }

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java Tue Sep 30 21:45:01 2014
@@ -254,11 +254,9 @@ public abstract class TomEEContainer<Con
             final File file = dumpFile(archive);
 
             final String fileName = file.getName();
-            if (fileName.endsWith(".war")) { // ??
-                final File extracted = new File(file.getParentFile(), fileName.substring(0, fileName.length() - 4));
-                if (extracted.exists()) {
-                    extracted.deleteOnExit();
-                }
+            if (fileName.endsWith(".war") || fileName.endsWith(".ear")) {
+                // extracted folder, TODO: openejb work dir is ignored here
+                Files.deleteOnExit(new File(file.getParentFile(), fileName.substring(0, fileName.length() - 4)));
             }
 
             final AppInfo appInfo;
@@ -330,20 +328,37 @@ public abstract class TomEEContainer<Con
         Files.deleteOnExit(new File(tmpDir));
 
         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.getParentFile().exists()); // we will delete the parent (to clean even complicated unpacking)
+        if (configuration.isSingleDumpByArchiveName()) {
+            file = new File(tmpDir + File.separator + archive.getName());
+        } else {
+            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.getParentFile().exists()); // we will delete the parent (to clean even complicated unpacking)
+        }
         if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
             LOGGER.warning("can't create " + file.getParent());
         }
 
         Files.deleteOnExit(file.getParentFile());
 
+        final Assignable finalArchive;
         if (isTestable(archive, deployment.get())) {
-            archiveWithTestInfo(archive).as(ZipExporter.class).exportTo(file, true);
+            finalArchive = archiveWithTestInfo(archive);
         } else {
-            archive.as(ZipExporter.class).exportTo(file, true);
+            finalArchive = archive;
+        }
+
+        long size = -1;
+        if (file.exists()) {
+            size = file.length();
+        }
+        finalArchive.as(ZipExporter.class).exportTo(file, true);
+        if (size > 0 && size != file.length()) {
+            LOGGER.warning("\nFile overwritten but size doesn't match: (now) "
+                    + file.length() + "/(before) " + size + " name="+ file.getName()
+                    + (configuration.isSingleDumpByArchiveName() ? " maybe set singleDumpByArchiveName to false" : "")
+                    + "\n");
         }
 
         return file;
@@ -428,13 +443,15 @@ public abstract class TomEEContainer<Con
         } catch (final Exception e) {
             throw new DeploymentException("Unable to undeploy " + archive.getName(), e);
         } finally {
-            LOGGER.info("cleaning " + deployed.file.getAbsolutePath());
-            Files.tryTodelete(deployed.file); // "i" folder
-
-            final File pathFile = new File(deployed.path);
-            if (!deployed.path.equals(deployed.file.getAbsolutePath()) && pathFile.exists()) {
-                LOGGER.info("cleaning " + pathFile);
-                Files.delete(pathFile);
+            if (deployed != null && !configuration.isSingleDumpByArchiveName()) {
+                LOGGER.info("cleaning " + deployed.file.getAbsolutePath());
+                Files.tryTodelete(deployed.file); // "i" folder
+
+                final File pathFile = new File(deployed.path);
+                if (!deployed.path.equals(deployed.file.getAbsolutePath()) && pathFile.exists()) {
+                    LOGGER.info("cleaning " + pathFile);
+                    Files.delete(pathFile);
+                }
             }
         }
     }

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Tue Sep 30 21:45:01 2014
@@ -213,6 +213,15 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.17</version>
+        <configuration>
+          <reuseForks>true</reuseForks>
+          <forkCount>1</forkCount>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 </project>

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/CheckServerInfoTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/CheckServerInfoTest.java?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/CheckServerInfoTest.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/CheckServerInfoTest.java Tue Sep 30 21:45:01 2014
@@ -32,7 +32,7 @@ import static org.junit.Assert.assertTru
 public class CheckServerInfoTest {
     @Deployment
     public static WebArchive war() {
-        return ShrinkWrap.create(WebArchive.class).addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("foo.txt"));
+        return ShrinkWrap.create(WebArchive.class, "info.war").addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("foo.txt"));
     }
 
     @Test

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/unpack/UnpackTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/unpack/UnpackTest.java?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/unpack/UnpackTest.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/unpack/UnpackTest.java Tue Sep 30 21:45:01 2014
@@ -38,7 +38,7 @@ public class UnpackTest extends Assert {
     @Deployment
     public static WebArchive createDeployment() {
         return ShrinkWrap
-                .create(WebArchive.class, "unpacktest.war")
+                .create(WebArchive.class, "test.war")
                 .addAsLibraries(JarLocation.jarLocation(Test.class))
                 .addClass(TestServlet.class)
                 .addClass(TestEjb.class)

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml?rev=1628555&r1=1628554&r2=1628555&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml Tue Sep 30 21:45:01 2014
@@ -22,6 +22,7 @@
 	
        <container qualifier="tomee" default="true">
            <configuration>
+<!--               <property name="singleDumpByArchiveName">true</property> -->
                <property name="httpPort">-1</property>
                <property name="stopPort">-1</property>
                <property name="ajpPort">-1</property>