You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2008/04/10 22:43:29 UTC

svn commit: r646950 - in /maven/ant-tasks/trunk: ./ src/main/java/org/apache/maven/artifact/ant/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/maven/ src/test/java/org/apache/maven/artifact/ src/test/java/org/apac...

Author: hboutemy
Date: Thu Apr 10 13:43:22 2008
New Revision: 646950

URL: http://svn.apache.org/viewvc?rev=646950&view=rev
Log:
[MANTTASKS-108] switched back the Classloader of the Main Ant Thread on each task execution (merged from branch)

Added:
    maven/ant-tasks/trunk/src/test/java/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/
    maven/ant-tasks/trunk/src/test/java/org/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/
    maven/ant-tasks/trunk/src/test/java/org/apache/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/
    maven/ant-tasks/trunk/src/test/java/org/apache/maven/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/
    maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/artifact/
    maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/artifact/ant/
    maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java   (contents, props changed)
      - copied, changed from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java
    maven/ant-tasks/trunk/src/test/resources/
      - copied from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/resources/
    maven/ant-tasks/trunk/src/test/resources/test-tasks.xml   (contents, props changed)
      - copied, changed from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/resources/test-tasks.xml
Modified:
    maven/ant-tasks/trunk/sample.build.xml
    maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java

Modified: maven/ant-tasks/trunk/sample.build.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/sample.build.xml?rev=646950&r1=646949&r2=646950&view=diff
==============================================================================
--- maven/ant-tasks/trunk/sample.build.xml (original)
+++ maven/ant-tasks/trunk/sample.build.xml Thu Apr 10 13:43:22 2008
@@ -1,4 +1,4 @@
-<project name="maven-ant-tasks" default="test-all" xmlns:artifact="urn:maven-artifact-ant">
+<project name="maven-ant-tasks" default="test-all" xmlns:artifact="urn:maven-artifact-ant" xmlns:test="urn:test-tasks">
 <!--
 <project name="foo" default="foo" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
 -->
@@ -20,7 +20,18 @@
 
   -->
 
-  <target name="initTaskDefs">
+  <target name="initClassloader">
+    <path id="testclasspath" path="target/test-classes" />
+    <typedef resource="test-tasks.xml" uri="urn:test-tasks" classpathref="testclasspath"/>
+
+    <test:classloader set="classloader"/>
+  </target>
+
+  <target name="checkClassloader">
+    <test:classloader check="classloader"/>
+  </target>
+
+  <target name="initTaskDefs" depends="initClassloader">
   	<xmlproperty file="pom.xml" prefix="pom.xml" />
 
     <path id="maven-ant-tasks.classpath" path="target/maven-ant-tasks-${pom.xml.project.version}.jar" />
@@ -33,6 +44,8 @@
     <artifact:remoteRepository id="deploy.repository" url="file://localhost/${deploy.repository.url}" layout="default"/>
 
     <artifact:pom file="pom.xml" id="maven.project"/>
+
+    <test:classloader check="classloader"/>
   </target>
 
   <target name="installSshProvider" depends="initTaskDefs">
@@ -48,7 +61,7 @@
     depends="test-deploy-spaces,test-deploy,test-no-dist-mgmt,test-install-attached,test-deploy-attached"/>
 
   <target name="test-all" description="All tests"
-    depends="test-all-deps,test-all-pubs,test-install-provider">
+    depends="test-all-deps,test-all-pubs,test-install-provider,checkClassloader">
     <echo>test-scm not run, since it fails...</echo>
   </target>
 

Modified: maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java?rev=646950&r1=646949&r2=646950&view=diff
==============================================================================
--- maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java (original)
+++ maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java Thu Apr 10 13:43:22 2008
@@ -78,6 +78,8 @@
 public abstract class AbstractArtifactTask
     extends Task
 {
+    private static ClassLoader plexusClassLoader;
+
     private File userSettingsFile;
 
     private File globalSettingsFile;
@@ -652,8 +654,13 @@
     /** @noinspection RefusedBequest */
     public void execute()
     {
+        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
         try
         {
+            if ( plexusClassLoader != null )
+            {
+                Thread.currentThread().setContextClassLoader( plexusClassLoader );
+            }
             initSettings();
             doExecute();
         }
@@ -662,6 +669,11 @@
             diagnoseError( e );
 
             throw e;
+        }
+        finally
+        {
+            plexusClassLoader = Thread.currentThread().getContextClassLoader();
+            Thread.currentThread().setContextClassLoader( originalClassLoader );
         }
     }
 

Copied: maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java (from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java)
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java?p2=maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java&p1=maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java&r1=646947&r2=646950&rev=646950&view=diff
==============================================================================
    (empty)

Propchange: maven/ant-tasks/trunk/src/test/java/org/apache/maven/artifact/ant/ClassLoaderTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/ant-tasks/trunk/src/test/resources/test-tasks.xml (from r646947, maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/resources/test-tasks.xml)
URL: http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/test/resources/test-tasks.xml?p2=maven/ant-tasks/trunk/src/test/resources/test-tasks.xml&p1=maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/test/resources/test-tasks.xml&r1=646947&r2=646950&rev=646950&view=diff
==============================================================================
    (empty)

Propchange: maven/ant-tasks/trunk/src/test/resources/test-tasks.xml
------------------------------------------------------------------------------
    svn:eol-style = native