Author: jdcasey
Date: Mon Nov 12 14:02:44 2007
New Revision: 594313

URL: http://svn.apache.org/viewvc?rev=594313&view=rev
Log:
Add code to clean the build context after each embedder function that uses it.

Modified:
    
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java

Modified: 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=594313&r1=594312&r2=594313&view=diff
==============================================================================
--- 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
 (original)
+++ 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
 Mon Nov 12 14:02:44 2007
@@ -30,6 +30,7 @@
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.context.BuildContextManager;
 import org.apache.maven.embedder.execution.MavenExecutionRequestPopulator;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.DefaultMavenExecutionResult;
@@ -145,6 +146,8 @@
 
     private ArtifactHandlerManager artifactHandlerManager;
 
+    private BuildContextManager buildContextManager;
+
     private Maven maven;
 
     private MavenExecutionRequestPopulator populator;
@@ -336,6 +339,7 @@
         }
         finally
         {
+            buildContextManager.clearBuildContext();
             request.getRealmManager().clear();
         }
     }
@@ -451,6 +455,7 @@
         }
         finally
         {
+            buildContextManager.clearBuildContext();
             request.getRealmManager().clear();
         }
     }
@@ -482,7 +487,14 @@
                          ArtifactRepository localRepository )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        artifactResolver.resolve( artifact, remoteRepositories, 
localRepository );
+        try
+        {
+            artifactResolver.resolve( artifact, remoteRepositories, 
localRepository );
+        }
+        finally
+        {
+            buildContextManager.clearBuildContext();
+        }
     }
 
     public ArtifactHandler getArtifactHandler( Artifact artifact )
@@ -630,6 +642,8 @@
 
             artifactHandlerManager = (ArtifactHandlerManager) 
container.lookup( ArtifactHandlerManager.ROLE );
 
+            buildContextManager = (BuildContextManager) container.lookup( 
BuildContextManager.ROLE );
+
             // This is temporary as we can probably cache a single request and 
use it for default values and
             // simply cascade values in from requests used for individual 
executions.
             request = new DefaultMavenExecutionRequest();
@@ -688,6 +702,8 @@
     public void stop()
         throws MavenEmbedderException
     {
+        buildContextManager.clearBuildContext();
+
         container.dispose();
     }
 
@@ -815,6 +831,8 @@
         finally
         {
             loggerManager.setThresholds( oldThreshold );
+
+            buildContextManager.clearBuildContext();
             request.getRealmManager().clear();
         }
     }


Reply via email to