Repository: maven
Updated Branches:
  refs/heads/master 2909b5a32 -> a5b92f2d0


cleanup: release artifact resolver resources more eagerly

Set resolver executor thread context classloader to null by
default. This allows collection of class realms that triggered
thread creation (one of plugin realms, typically).

Use Disposable#dispose to shutdown resolver executor server,
remove now redundant #finilaze() implementation.

Signed-off-by: Igor Fedorenko <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a5b92f2d
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a5b92f2d
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a5b92f2d

Branch: refs/heads/master
Commit: a5b92f2d0307fcdccedd9553d1063196eeff5994
Parents: 2909b5a
Author: Igor Fedorenko <[email protected]>
Authored: Tue Sep 2 08:14:49 2014 -0400
Committer: Igor Fedorenko <[email protected]>
Committed: Tue Sep 2 08:14:49 2014 -0400

----------------------------------------------------------------------
 .../resolver/DefaultArtifactResolver.java       | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/a5b92f2d/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
----------------------------------------------------------------------
diff --git 
a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
 
b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
index f5a2349..17ca487 100644
--- 
a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
+++ 
b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
@@ -60,6 +60,7 @@ import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.LocalRepositoryManager;
@@ -71,7 +72,7 @@ import org.eclipse.aether.resolution.ArtifactResult;
  */
 @Component( role = ArtifactResolver.class )
 public class DefaultArtifactResolver
-    implements ArtifactResolver
+    implements ArtifactResolver, Disposable
 {
     @Requirement 
     private Logger logger;
@@ -120,17 +121,6 @@ public class DefaultArtifactResolver
         }
     }
 
-    @Override
-    protected void finalize()
-        throws Throwable
-    {
-        if ( executor instanceof ExecutorService )
-        {
-            ( (ExecutorService) executor ).shutdown();
-        }
-        super.finalize();
-    }
-
     private RepositorySystemSession getSession( ArtifactRepository 
localRepository )
     {
         return LegacyLocalRepositoryManager.overlay( localRepository, 
legacySupport.getRepositorySession(), repoSystem );
@@ -571,6 +561,7 @@ public class DefaultArtifactResolver
         {
             Thread newThread = new Thread( GROUP, r, "resolver-" + 
THREAD_NUMBER.getAndIncrement() );
             newThread.setDaemon( true );
+            newThread.setContextClassLoader( null );
             return newThread;
         }
     }
@@ -640,4 +631,13 @@ public class DefaultArtifactResolver
 
     }
 
+    @Override
+    public void dispose()
+    {
+        if ( executor instanceof ExecutorService )
+        {
+            ( (ExecutorService) executor ).shutdownNow();
+        }
+    }
+
 }

Reply via email to