Author: rmannibucau
Date: Sun Jan 6 23:16:25 2013
New Revision: 1429609
URL: http://svn.apache.org/viewvc?rev=1429609&view=rev
Log:
TOMEE-704 arquillian-tck (for tomee remote only as a first step - and wonder
about others if it is really the goal) + minor fix regarding file deletion for
arquillian
Added:
openejb/trunk/openejb/arquillian/arquillian-tck/
openejb/trunk/openejb/arquillian/arquillian-tck/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tck/src/
openejb/trunk/openejb/arquillian/arquillian-tck/src/test/
openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/
openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/arquillian.xml
- copied, changed from r1429500,
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Files.java
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
openejb/trunk/openejb/arquillian/pom.xml
Added: openejb/trunk/openejb/arquillian/arquillian-tck/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tck/pom.xml?rev=1429609&view=auto
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tck/pom.xml (added)
+++ openejb/trunk/openejb/arquillian/arquillian-tck/pom.xml Sun Jan 6 23:16:25
2013
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>arquillian</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>1.5.2-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>arquillian-tck</artifactId>
+ <name>OpenEJB :: Arquillian Adaptors Parent :: Arquillian TCK</name>
+ <packaging>jar</packaging>
+
+ <!--
+ <repositories>
+ <repository>
+ <id>arq-repo</id>
+
<url>https://repository.jboss.org/nexus/content/repositories/public/</url>
+ </repository>
+ </repositories>
+ -->
+
+ <properties>
+ <tck.classes>${project.build.directory}/test-classes</tck.classes>
+ <tck.reports>${project.build.directory}/surefire-reports/tck</tck.reports>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.arquillian.junit</groupId>
+ <artifactId>arquillian-junit-container</artifactId>
+ <version>${version.arquillian}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.descriptors</groupId>
+ <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>
+ <version>${version.shrinkwrap.descriptor}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.arquillian.tck.container</groupId>
+ <artifactId>arquillian-tck-container</artifactId>
+ <version>1.0.0.Final-SNAPSHOT</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.arquillian.testenricher</groupId>
+ <artifactId>arquillian-testenricher-cdi</artifactId>
+ <version>1.0.3.Final</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-tomee-remote</artifactId>
+ <version>1.5.2-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <testResources>
+ <testResource>
+ <directory>${project.basedir}/src/test/resources</directory>
+ <targetPath>${tck.classes}</targetPath>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>tck-unpack</id>
+ <phase>process-test-classes</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.arquillian.tck.container</groupId>
+ <artifactId>arquillian-tck-container</artifactId>
+ <version>1.0.0.Final-SNAPSHOT</version>
+ <classifier>tests</classifier>
+ <outputDirectory>${tck.classes}</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.13</version>
+ <executions>
+ <execution>
+ <id>tck-tests</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <!-- <groups>org.arquillian.tck.group.EE6</groups> -->
+ <!--
<excludedGroups>org.arquillian.tck.group.EE5</excludedGroups> -->
+ <testClassesDirectory>${tck.classes}</testClassesDirectory>
+ <reportsDirectory>${tck.reports}</reportsDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied:
openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/arquillian.xml
(from r1429500,
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/arquillian.xml?p2=openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/arquillian.xml&p1=openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml&r1=1429500&r2=1429609&rev=1429609&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tck/src/test/resources/arquillian.xml
Sun Jan 6 23:16:25 2013
@@ -16,21 +16,17 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<arquillian
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
-
- <container qualifier="tomee" default="true">
- <configuration>
- <property name="httpPort">-1</property>
- <property name="stopPort">-1</property>
- <property name="ajpPort">-1</property>
- <property name="version">${tomee.version}</property>
- <property name="dir">target/apache-tomee-remote</property>
- <property
name="appWorkingDir">target/arquillian-test-working-dir</property>
- <property name="properties">
- openejb.classloader.forced-load=org.apache.openejb
- </property>
- </configuration>
- </container>
+<arquillian
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
+ <container qualifier="tomee" default="true">
+ <configuration>
+ <property name="httpPort">-1</property>
+ <property name="stopPort">-1</property>
+ <property name="ajpPort">-1</property>
+ <property name="dir">target/apache-tomee-remote</property>
+ <property
name="appWorkingDir">target/arquillian-test-working-dir</property>
+ <property name="cleanOnStartUp">true</property>
+ </configuration>
+ </container>
</arquillian>
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Files.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Files.java?rev=1429609&r1=1429608&r2=1429609&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Files.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Files.java
Sun Jan 6 23:16:25 2013
@@ -20,11 +20,13 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.logging.Logger;
/**
* @version $Rev: 1157006 $ $Date: 2011-08-12 01:23:04 -0700 (Fri, 12 Aug
2011) $
*/
public class Files {
+ private static final Logger LOGGER =
Logger.getLogger(Files.class.getName());
public static File path(final String... parts) {
File dir = null;
@@ -76,10 +78,13 @@ public class Files {
// Shutdown hook for recursive delete on tmp directories
static final List<String> delete = new ArrayList<String>();
+ private static volatile boolean shutdown = false;
+
static {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
+ shutdown = true;
delete();
}
});
@@ -97,19 +102,25 @@ public class Files {
public static void delete(final File file) {
if (file.exists()) {
- if (file.isDirectory()) {
- final File[] files = file.listFiles();
- if (files != null) {
- for (final File f : files) {
- delete(f);
- }
- }
- }
+ tryTodelete(file);
- if (!file.delete()) {
+ if (!file.delete() && !shutdown) {
file.deleteOnExit();
+ } else if (!willBeDelete(file)) {
+ LOGGER.severe("can't delete " + file.getAbsolutePath());
+ }
+ }
+ }
+
+ private static boolean willBeDelete(final File file) {
+ File current = file;
+ while (current != null) {
+ if (delete.contains(current.getAbsolutePath())) {
+ return true;
}
+ current = current.getParentFile();
}
+ return false;
}
public static void mkdir(final File dir) {
@@ -142,4 +153,15 @@ public class Files {
throw new IllegalStateException("Not a file: " +
file.getAbsolutePath());
}
}
+
+ public static void tryTodelete(final File file) {
+ if (file.isDirectory()) {
+ final File[] files = file.listFiles();
+ if (files != null) {
+ for (final File f : files) {
+ delete(f);
+ }
+ }
+ }
+ }
}
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1429609&r1=1429608&r2=1429609&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
Sun Jan 6 23:16:25 2013
@@ -277,6 +277,7 @@ public abstract class TomEEContainer<Con
appInfo = deployer().deploy(file.getAbsolutePath());
if (appInfo != null) {
moduleIds.put(archive.getName(), new
DeployedApp(appInfo.path, file.getParentFile()));
+ Files.deleteOnExit(file); // "i" folder
} else {
LOGGER.severe("appInfo was not found for " +
file.getPath() + ", available are: " + apps());
throw new OpenEJBException("can't get appInfo");
@@ -407,7 +408,7 @@ public abstract class TomEEContainer<Con
throw new DeploymentException("Unable to undeploy " +
archive.getName(), e);
} finally {
LOGGER.info("cleaning " + deployed.file.getAbsolutePath());
- Files.delete(deployed.file); // "i" folder
+ Files.tryTodelete(deployed.file); // "i" folder
final File pathFile = new File(deployed.path);
if (!deployed.path.equals(deployed.file.getAbsolutePath()) &&
pathFile.exists()) {
Modified: openejb/trunk/openejb/arquillian/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/pom.xml?rev=1429609&r1=1429608&r2=1429609&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/pom.xml Sun Jan 6 23:16:25 2013
@@ -48,5 +48,6 @@
<module>arquillian-tomee-moviefun-example</module>
<module>arquillian-openejb-embedded-4</module>
<module>ziplock</module>
+ <module>arquillian-tck</module>
</modules>
</project>