You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/02/20 19:53:24 UTC

svn commit: r629571 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/extension/ maven-core/src/test/java/org/apache/maven/extension/ maven-embedder/src/main/java/org/apache/maven/embedde...

Author: jdcasey
Date: Wed Feb 20 10:53:09 2008
New Revision: 629571

URL: http://svn.apache.org/viewvc?rev=629571&view=rev
Log:
Ignore missing modules during extension-scanning when MavenEmbedder.readProject(..) is called. At other times, as in the case of normal builds, don't suppress missing module exceptions.

Added:
    maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/
    maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml   (with props)
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/BuildExtensionScanner.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed Feb 20 10:53:09 2008
@@ -266,7 +266,7 @@
         // instances just-in-time.
         try
         {
-            buildExtensionScanner.scanForBuildExtensions( files, request );
+            buildExtensionScanner.scanForBuildExtensions( files, request, false );
         }
         catch ( ExtensionScanningException e )
         {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/BuildExtensionScanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/BuildExtensionScanner.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/BuildExtensionScanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/BuildExtensionScanner.java Wed Feb 20 10:53:09 2008
@@ -31,11 +31,13 @@
     String ROLE = BuildExtensionScanner.class.getName();
 
     void scanForBuildExtensions( List files,
-                                 MavenExecutionRequest request )
+                                 MavenExecutionRequest request,
+                                 boolean ignoreMissingModules  )
         throws ExtensionScanningException, MissingModuleException;
 
     void scanForBuildExtensions( File pom,
-                                 MavenExecutionRequest request )
+                                 MavenExecutionRequest request,
+                                 boolean ignoreMissingModules )
         throws ExtensionScanningException, MissingModuleException;
 
 }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java Wed Feb 20 10:53:09 2008
@@ -89,38 +89,41 @@
     }
 
     public void scanForBuildExtensions( List files,
-                                        MavenExecutionRequest request )
+                                        MavenExecutionRequest request,
+                                        boolean ignoreMissingModules )
         throws ExtensionScanningException, MissingModuleException
     {
         List visited = new ArrayList();
-        
+
         List internalFiles = new ArrayList();
-        
+
         internalFiles.addAll(files);
 
         for ( Iterator it = files.iterator(); it.hasNext(); )
         {
             File pom = (File) it.next();
 
-            scanInternal( pom, request, visited, internalFiles );
+            scanInternal( pom, request, visited, internalFiles, ignoreMissingModules );
         }
     }
 
     public void scanForBuildExtensions( File pom,
-                                        MavenExecutionRequest request )
+                                        MavenExecutionRequest request,
+                                        boolean ignoreMissingModules )
         throws ExtensionScanningException, MissingModuleException
     {
         List internalFiles = new ArrayList();
-        
+
         internalFiles.add( pom );
-        
-        scanInternal( pom, request, new ArrayList(), internalFiles );
+
+        scanInternal( pom, request, new ArrayList(), internalFiles, ignoreMissingModules );
     }
 
     private void scanInternal( File pom,
                                MavenExecutionRequest request,
                                List visitedModelIds,
-                               List reactorFiles )
+                               List reactorFiles,
+                               boolean ignoreMissingModules )
         throws ExtensionScanningException, MissingModuleException
     {
 
@@ -195,7 +198,8 @@
                                                request,
                                                originalRemoteRepositories,
                                                visitedModelIds,
-                                               reactorFiles );
+                                               reactorFiles,
+                                               ignoreMissingModules );
                 }
             }
         }
@@ -251,7 +255,8 @@
                                             MavenExecutionRequest request,
                                             List originalRemoteRepositories,
                                             List visitedModelIds,
-                                            List reactorFiles )
+                                            List reactorFiles,
+                                            boolean ignoreMissingModules )
         throws ExtensionScanningException, MissingModuleException
     {
         // FIXME: This gets a little sticky, because modules can be added by profiles that require
@@ -310,12 +315,19 @@
 
                 if ( !modulePomDirectory.exists() )
                 {
-                    throw new MissingModuleException( moduleSubpath, modulePomDirectory, containingPom );
+                    if ( ignoreMissingModules )
+                    {
+                        continue;
+                    }
+                    else
+                    {
+                        throw new MissingModuleException( moduleSubpath, modulePomDirectory, containingPom );
+                    }
                 }
-                
+
                 reactorFiles.add( modulePomDirectory );
-                
-                scanInternal( modulePomDirectory, request, visitedModelIds, reactorFiles );
+
+                scanInternal( modulePomDirectory, request, visitedModelIds, reactorFiles, ignoreMissingModules );
             }
         }
     }

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java Wed Feb 20 10:53:09 2008
@@ -134,7 +134,8 @@
         new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder,
                                           modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG,
                                                                                 "test" ) ).scanForBuildExtensions( pomFile,
-                                                                                                                   request );
+                                                                                                                   request,
+                                                                                                                   false );
 
         mockManager.verifyAll();
     }
@@ -213,7 +214,8 @@
         new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder,
                                           modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG,
                                                                                 "test" ) ).scanForBuildExtensions( pomFile,
-                                                                                                                   request );
+                                                                                                                   request,
+                                                                                                                   false );
 
         mockManager.verifyAll();
     }
@@ -324,7 +326,8 @@
         new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder,
                                           modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG,
                                                                                 "test" ) ).scanForBuildExtensions( pomFile,
-                                                                                                                   request );
+                                                                                                                   request,
+                                                                                                                   false );
 
         mockManager.verifyAll();
     }

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Feb 20 10:53:09 2008
@@ -363,7 +363,7 @@
     {
         getLogger().debug( "Scanning for extensions: " + mavenProject );
 
-        extensionScanner.scanForBuildExtensions( mavenProject, request );
+        extensionScanner.scanForBuildExtensions( mavenProject, request, true );
 
         getLogger().debug( "Building MavenProject instance: " + mavenProject );
 

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=629571&r1=629570&r2=629571&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Wed Feb 20 10:53:09 2008
@@ -338,6 +338,15 @@
         assertEquals( "scm:svn:https://host/trunk/parent/modules/child1", project.getScm().getDeveloperConnection() );
     }
 
+    public void testProjectReading_SkipMissingModuleSilently()
+        throws Exception
+    {
+        File pomFile = new File( basedir,
+                                 "src/test/projects/readProject-missingModuleIgnored/pom.xml" );
+
+        maven.readProject( pomFile );
+    }
+
     /*
     public void testProjectReadingWithDistributionStatus()
         throws Exception

Added: maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml?rev=629571&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml Wed Feb 20 10:53:09 2008
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>missing.module</groupId>
+  <artifactId>parent</artifactId>
+  <version>1</version>
+  <packaging>pom</packaging>
+  
+  <modules>
+    <module>child1</module>
+  </modules>
+
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/components/trunk/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"