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"