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