hardened checks

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1597206 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/it/reactor/resolve-extension/src/main/java/org/apache/maven/its/deptree/ResolveDependenciesLifecycleParticipant.java b/src/it/reactor/resolve-extension/src/main/java/org/apache/maven/its/deptree/ResolveDependenciesLifecycleParticipant.java
index dbd536a..52c131c 100644
--- a/src/it/reactor/resolve-extension/src/main/java/org/apache/maven/its/deptree/ResolveDependenciesLifecycleParticipant.java
+++ b/src/it/reactor/resolve-extension/src/main/java/org/apache/maven/its/deptree/ResolveDependenciesLifecycleParticipant.java
@@ -28,6 +28,7 @@
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -70,19 +71,33 @@
             File resolved = new File( basedir, "resolved-" + project.getArtifactId() + ".txt" );
             try
             {
+                log.info( "building with reactor projects" );
                 // No need to filter our search. We want to resolve all artifacts.
                 dependencyGraphBuilder.buildDependencyGraph( project, null, projects );
-
-                // proof that resolution has happened
-                resolved.createNewFile();
             }
             catch ( DependencyGraphBuilderException e )
             {
                 throw new MavenExecutionException( "Could not resolve dependencies for project: " + project, e );
             }
-            catch ( IOException e )
+
+            try
             {
-                throw new MavenExecutionException( "Could not create " + resolved, e );
+                log.info( "building without reactor projects" );
+                // resolution without reactor projects, to check that it is not possible at this point
+                dependencyGraphBuilder.buildDependencyGraph( project, null );
+            }
+            catch ( DependencyGraphBuilderException e )
+            {
+                log.info( "expected resolution failure: " + e.getMessage() );
+
+                try
+                {
+                    FileUtils.fileWrite( resolved.getAbsolutePath(), e.getMessage() );
+                }
+                catch ( IOException ioe )
+                {
+                    throw new MavenExecutionException( "Could not write " + resolved, ioe );
+                }
             }
         }
 
diff --git a/src/it/reactor/setup.bsh b/src/it/reactor/setup.bsh
index fe4ec74..b69ce1d 100644
--- a/src/it/reactor/setup.bsh
+++ b/src/it/reactor/setup.bsh
@@ -25,7 +25,19 @@
 
 while ( files.hasNext() )
 {
-  files.next().delete();
+  file = files.next();
+  System.out.println( "deleting file " + file );
+  file.delete();
+}
+
+// delete modules from local repository
+files = FileUtils.getDirectoryNames( new File( basedir, "../.." ), "local-repo/org/apache/maven/its/dependency-tree/module*", "", true ).iterator();
+
+while ( files.hasNext() )
+{
+  file = new File( files.next() );
+  System.out.println( "deleting directory " + file );
+  FileUtils.deleteDirectory( file );
 }
 
 return true;
diff --git a/src/it/reactor/verify.bsh b/src/it/reactor/verify.bsh
index 6d1ae09..17c1e47 100644
--- a/src/it/reactor/verify.bsh
+++ b/src/it/reactor/verify.bsh
@@ -34,9 +34,11 @@
     throw new Exception( "Unexpected dependency tree" );
 }
 
-if ( !new File( basedir, "resolved-module-z-deps-y.txt" ).exists() )
+String resolved = FileUtils.fileRead( new File( basedir, "resolved-module-z-deps-y.txt" ) );
+
+if ( !"Could not resolve the following dependencies: [org.apache.maven.its.dependency-tree:module-y-deps-x:jar:1.0-SNAPSHOT (compile), org.apache.maven.its.dependency-tree:module-x:jar:1.0-SNAPSHOT (compile)]".equals( resolved ) )
 {
-    throw new Exception( "resolved-module-z-deps-y.txt was not written by ResolveDependenciesLifecycleParticipant" );
+    throw new Exception( "unexpected content in resolved-module-z-deps-y.txt written by ResolveDependenciesLifecycleParticipant" );
 }
 
 return true;