You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2010/09/28 15:14:08 UTC

svn commit: r1002154 - /maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java

Author: brett
Date: Tue Sep 28 13:14:08 2010
New Revision: 1002154

URL: http://svn.apache.org/viewvc?rev=1002154&view=rev
Log:
reduce time it takes to run the tests by ~30% by not leaking memory

Modified:
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java?rev=1002154&r1=1002153&r2=1002154&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java Tue Sep 28 13:14:08 2010
@@ -19,20 +19,10 @@ package org.apache.maven.shared.release.
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
@@ -57,12 +47,26 @@ import org.apache.maven.shared.release.s
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.context.DefaultContext;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.jmock.Mock;
 
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+
 /**
  * Base class for some release tests.
  *
@@ -77,6 +81,15 @@ public abstract class AbstractReleaseTes
 
     protected ReleasePhase phase;
 
+    private static final DefaultContext EMPTY_CONTEXT = new DefaultContext()
+    {
+        public Object get( Object key )
+            throws ContextException
+        {
+            return null;
+        }
+    };
+
     protected void setUp()
         throws Exception
     {
@@ -89,6 +102,16 @@ public abstract class AbstractReleaseTes
         localRepository = new DefaultArtifactRepository( "local", "file://" + localRepoPath, layout );
     }
 
+    protected void tearDown()
+        throws Exception
+    {
+        // unhook circular references to the container that would avoid memory being cleaned up
+        ( (Contextualizable) projectBuilder ).contextualize( EMPTY_CONTEXT );
+        ( (Contextualizable) lookup( WagonManager.ROLE ) ).contextualize( EMPTY_CONTEXT );
+
+        super.tearDown();
+    }
+
     private Map createManagedVersionMap( String projectId, DependencyManagement dependencyManagement,
                                          ArtifactFactory artifactFactory )
         throws ProjectBuildingException