You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/07/17 21:48:57 UTC

svn commit: r795206 - in /maven/components/trunk/maven-core/src/main/java/org/apache/maven/project: DefaultModelBuildingListener.java DefaultProjectBuilder.java DefaultProjectBuildingHelper.java ProjectBuildingHelper.java

Author: bentmann
Date: Fri Jul 17 19:48:57 2009
New Revision: 795206

URL: http://svn.apache.org/viewvc?rev=795206&view=rev
Log:
o Fixed project realm handling to be more embedder friendly

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java?rev=795206&r1=795205&r2=795206&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java Fri Jul 17 19:48:57 2009
@@ -97,12 +97,15 @@
                 projectBuildingHelper.createProjectRealm( model, projectBuildingRequest.getLocalRepository(),
                                                           pluginRepositories );
 
-            /*
-             * Update the context class loader so that the container will search the project realm when the model
-             * builder injects the lifecycle bindings from the packaging next. The class loader is reset by the project
-             * builder when the project is fully assembled.
-             */
-            Thread.currentThread().setContextClassLoader( projectRealm );
+            if ( projectRealm != null )
+            {
+                /*
+                 * Update the context class loader such that the container will search the project realm when the model
+                 * builder injects the lifecycle bindings from the packaging in the next step. The context class loader
+                 * will be reset by the project builder when the project is fully assembled.
+                 */
+                Thread.currentThread().setContextClassLoader( projectRealm );
+            }
         }
     }
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=795206&r1=795205&r2=795206&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Fri Jul 17 19:48:57 2009
@@ -302,7 +302,23 @@
             .setRemoteRepostories( project.getRemoteArtifactRepositories() )
             .setManagedVersionMap( project.getManagedVersionMap() );
 
-        ArtifactResolutionResult result = repositorySystem.resolve( artifactRequest );
+        ArtifactResolutionResult result;
+
+        ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader();
+
+        try
+        {
+            if ( project.getClassRealm() != null )
+            {
+                Thread.currentThread().setContextClassLoader( project.getClassRealm() );
+            }
+
+            result = repositorySystem.resolve( artifactRequest );
+        }
+        finally
+        {
+            Thread.currentThread().setContextClassLoader( oldContextClassLoader );
+        }
 
         if ( result.hasExceptions() )
         {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java?rev=795206&r1=795205&r2=795206&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java Fri Jul 17 19:48:57 2009
@@ -98,7 +98,7 @@
                                           List<ArtifactRepository> remoteRepositories )
         throws ArtifactResolutionException
     {
-        ClassRealm projectRealm = container.getContainerRealm();
+        ClassRealm projectRealm = null;
 
         Build build = model.getBuild();
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java?rev=795206&r1=795205&r2=795206&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java Fri Jul 17 19:48:57 2009
@@ -55,7 +55,7 @@
      * @param model The model to create the project realm for, must not be {@code null}
      * @param localRepository The local repository to use for artifact resolution, must not be {@code null}.
      * @param remoteRepositories The remote repositories to use for artifact resolution, must not be {@code null}.
-     * @return The project realm, never {@code null}.
+     * @return The project realm or {@code null} if the project uses no extensions.
      * @throws ArtifactResolutionException If any build extension could not be resolved.
      */
     ClassRealm createProjectRealm( Model model, ArtifactRepository localRepository,