Kept John's constructors but still use File/URL instead of String

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@587691 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Carlos Sanchez Gonzalez 2007-10-23 23:23:19 +00:00
parent 7c1b32bfc0
commit f3398365f1
3 changed files with 357 additions and 140 deletions

View File

@ -78,6 +78,8 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
@ -209,7 +211,8 @@ public class DefaultMavenProjectBuilder
Model model = findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
return buildInternal( "Artifact [" + artifact + "]", model, localRepository, remoteArtifactRepositories, null, null, false, false );
return buildInternal( artifact.getFile(), model, localRepository, remoteArtifactRepositories, null, null,
false, false );
}
private MavenProject superProject;
@ -289,7 +292,7 @@ public class DefaultMavenProjectBuilder
{
throw new ProjectBuildingException( projectId,
"Unable to build project due to an invalid dependency version: " +
e.getMessage(), projectDescriptor.getAbsolutePath(), e );
e.getMessage(), projectDescriptor, e );
}
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
@ -371,7 +374,7 @@ public class DefaultMavenProjectBuilder
catch ( InvalidVersionSpecificationException e )
{
throw new ProjectBuildingException( projectId, "Unable to parse version '" + d.getVersion() +
"' for dependency '" + d.getManagementKey() + "': " + e.getMessage(), pomFile.getAbsolutePath(), e );
"' for dependency '" + d.getManagementKey() + "': " + e.getMessage(), pomFile, e );
}
}
}
@ -397,7 +400,7 @@ public class DefaultMavenProjectBuilder
Model model = readModel( "unknown", projectDescriptor, STRICT_MODEL_PARSING );
MavenProject project = buildInternal( projectDescriptor.getAbsolutePath(),
MavenProject project = buildInternal( projectDescriptor,
model,
localRepository,
buildArtifactRepositories( getSuperModel() ),
@ -526,7 +529,7 @@ public class DefaultMavenProjectBuilder
// jvz:note
// We've got a mixture of things going in the USD and from the repository, sometimes the descriptor
// is a real file and sometimes null which makes things confusing.
private MavenProject buildInternal( String pomLocation,
private MavenProject buildInternal( File pomLocation,
Model model,
ArtifactRepository localRepository,
List parentSearchRepositories,
@ -554,7 +557,7 @@ public class DefaultMavenProjectBuilder
}
catch ( ProfileActivationException e )
{
throw new ProjectBuildingException( projectId, "Failed to activate external profiles.", projectDescriptor.getAbsolutePath(), e );
throw new ProjectBuildingException( projectId, "Failed to activate external profiles.", projectDescriptor, e );
}
explicitlyActive = externalProfileManager.getExplicitlyActivatedIds();
@ -645,11 +648,11 @@ public class DefaultMavenProjectBuilder
}
catch ( ModelInterpolationException e )
{
throw new InvalidProjectModelException( projectId, pomLocation, e.getMessage(), e );
throw new InvalidProjectModelException( projectId, e.getMessage(), pomLocation, e );
}
catch ( InvalidRepositoryException e )
{
throw new InvalidProjectModelException( projectId, pomLocation, e.getMessage(), e );
throw new InvalidProjectModelException( projectId, e.getMessage(), pomLocation, e );
}
ProjectBuildCache projectBuildCache = ProjectBuildCache.read( buildContextManager );
@ -798,7 +801,7 @@ public class DefaultMavenProjectBuilder
* the resolved source roots, etc for the parent - that occurs for the parent when it is constructed independently
* and projects are not cached or reused
*/
private MavenProject processProjectLogic( String pomLocation,
private MavenProject processProjectLogic( File pomLocation,
MavenProject project,
File pomFile,
boolean strict )
@ -882,7 +885,7 @@ public class DefaultMavenProjectBuilder
if ( validationResult.getMessageCount() > 0 )
{
throw new InvalidProjectModelException( projectId, pomLocation, "Failed to validate POM",
throw new InvalidProjectModelException( projectId, "Failed to validate POM", pomLocation,
validationResult );
}
@ -998,17 +1001,17 @@ public class DefaultMavenProjectBuilder
try
{
reader = ReaderFactory.newXmlReader( file );
return readModel( projectId, file.getAbsolutePath(), reader, strict );
return readModel( projectId, file.toURI(), reader, strict );
}
catch ( FileNotFoundException e )
{
throw new ProjectBuildingException( projectId,
"Could not find the model file '" + file.getAbsolutePath() + "'.", file.getAbsolutePath(), e );
"Could not find the model file '" + file.getAbsolutePath() + "'.", file, e );
}
catch ( IOException e )
{
throw new ProjectBuildingException( projectId, "Failed to build model from file '" +
file.getAbsolutePath() + "'.\nError: \'" + e.getLocalizedMessage() + "\'", file.getAbsolutePath(), e );
file.getAbsolutePath() + "'.\nError: \'" + e.getLocalizedMessage() + "\'", file, e );
}
finally
{
@ -1017,7 +1020,7 @@ public class DefaultMavenProjectBuilder
}
private Model readModel( String projectId,
String pomLocation,
URI pomLocation,
Reader reader,
boolean strict )
throws IOException, InvalidProjectModelException
@ -1026,7 +1029,7 @@ public class DefaultMavenProjectBuilder
if ( modelSource.indexOf( "<modelVersion>" + MAVEN_MODEL_VERSION ) < 0 )
{
throw new InvalidProjectModelException( projectId, pomLocation, "Not a v" + MAVEN_MODEL_VERSION + " POM." );
throw new InvalidProjectModelException( projectId, "Not a v" + MAVEN_MODEL_VERSION + " POM.", pomLocation );
}
StringReader sReader = new StringReader( modelSource );
@ -1037,8 +1040,8 @@ public class DefaultMavenProjectBuilder
}
catch ( XmlPullParserException e )
{
throw new InvalidProjectModelException( projectId, pomLocation,
"Parse error reading POM. Reason: " + e.getMessage(), e );
throw new InvalidProjectModelException( projectId, "Parse error reading POM. Reason: " + e.getMessage(),
pomLocation, e );
}
}
@ -1048,15 +1051,22 @@ public class DefaultMavenProjectBuilder
throws ProjectBuildingException
{
Reader reader = null;
URI uri = null;
try
{
uri = url.toURI();
reader = ReaderFactory.newXmlReader( url.openStream() );
return readModel( projectId, url.toExternalForm(), reader, strict );
return readModel( projectId, uri, reader, strict );
}
catch ( IOException e )
{
throw new ProjectBuildingException( projectId, "Failed build model from URL \'" + url.toExternalForm() +
"\'\nError: \'" + e.getLocalizedMessage() + "\'", url.toExternalForm(), e );
"\'\nError: \'" + e.getLocalizedMessage() + "\'", uri, e );
}
catch ( URISyntaxException e )
{
throw new ProjectBuildingException( projectId, "Failed build model from URL \'" + url.toExternalForm()
+ "\'\nError: \'" + e.getLocalizedMessage() + "\'", e );
}
finally
{
@ -1064,9 +1074,32 @@ public class DefaultMavenProjectBuilder
}
}
/**
* @deprecated use {@link #createPluginArtifacts(String, List, File)}
* @param projectId
* @param plugins
* @param pomLocation absolute path of pom file
* @return
* @throws ProjectBuildingException
*/
protected Set createPluginArtifacts( String projectId,
List plugins, String pomLocation )
throws ProjectBuildingException
{
return createPluginArtifacts( projectId, plugins, new File( pomLocation ) );
}
/**
*
* @param projectId
* @param plugins
* @param pomLocation pom file
* @return
* @throws ProjectBuildingException
*/
protected Set createPluginArtifacts( String projectId,
List plugins, File pomLocation )
throws ProjectBuildingException
{
Set pluginArtifacts = new HashSet();
@ -1106,10 +1139,25 @@ public class DefaultMavenProjectBuilder
return pluginArtifacts;
}
// TODO: share with createPluginArtifacts?
/**
* @deprecated use {@link #createReportArtifacts(String, List, File)}
* @param projectId
* @param reports
* @param pomLocation absolute path of pom file
* @return
* @throws ProjectBuildingException
*/
protected Set createReportArtifacts( String projectId,
List reports, String pomLocation )
throws ProjectBuildingException
{
return createReportArtifacts( projectId, reports, new File( pomLocation ) );
}
// TODO: share with createPluginArtifacts?
protected Set createReportArtifacts( String projectId,
List reports, File pomLocation )
throws ProjectBuildingException
{
Set pluginArtifacts = new HashSet();
@ -1152,10 +1200,25 @@ public class DefaultMavenProjectBuilder
return pluginArtifacts;
}
// TODO: share with createPluginArtifacts?
/**
* @deprecated use {@link #createExtensionArtifacts(String, List, File)}
* @param projectId
* @param extensions
* @param pomLocation absolute path of pom file
* @return
* @throws ProjectBuildingException
*/
protected Set createExtensionArtifacts( String projectId,
List extensions, String pomLocation )
throws ProjectBuildingException
{
return createExtensionArtifacts( projectId, extensions, new File( pomLocation ) );
}
// TODO: share with createPluginArtifacts?
protected Set createExtensionArtifacts( String projectId,
List extensions, File pomLocation )
throws ProjectBuildingException
{
Set extensionArtifacts = new HashSet();

View File

@ -19,6 +19,9 @@ package org.apache.maven.project;
* under the License.
*/
import java.io.File;
import java.net.URI;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.project.interpolation.ModelInterpolationException;
import org.apache.maven.project.validation.ModelValidationResult;
@ -29,43 +32,94 @@ public class InvalidProjectModelException
{
private ModelValidationResult validationResult;
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
/**
*
* @param projectId
* @param message
* @param pomLocation pom location
*/
public InvalidProjectModelException( String projectId, String message, URI pomLocation )
{
super( projectId, message, pomLocation );
}
public InvalidProjectModelException( String projectId, String message, File pomLocation )
{
super( projectId, message, pomLocation );
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
* @param projectId
* @param pomLocation absolute path of the pom file
* @param message
* @param validationResult
*/
public InvalidProjectModelException( String projectId, String pomLocation, String message,
ModelValidationResult validationResult )
{
this( projectId, message, new File( pomLocation ), validationResult );
}
public InvalidProjectModelException( String projectId, String message, File pomFile,
ModelValidationResult validationResult )
{
super( projectId, message, pomFile );
this.validationResult = validationResult;
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
* @param projectId
* @param pomLocation absolute path of the pom file
* @param message
*/
public InvalidProjectModelException( String projectId, String pomLocation, String message )
{
this( projectId, message, new File( pomLocation ) );
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public InvalidProjectModelException( String projectId, String pomLocation, String message,
ModelInterpolationException cause )
{
this( projectId, message, new File( pomLocation ), cause );
}
public InvalidProjectModelException( String projectId, String message, File pomLocation,
ModelInterpolationException cause )
{
super( projectId, message, pomLocation, cause );
}
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public InvalidProjectModelException( String projectId, String pomLocation, String message,
InvalidRepositoryException cause )
{
this( projectId, message, new File( pomLocation ), cause );
}
public InvalidProjectModelException( String projectId, String message, File pomLocation,
InvalidRepositoryException cause )
{
super( projectId, message, pomLocation, cause );
}
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
ModelValidationResult validationResult )
{
super( projectId, message, pomLocation );
this.validationResult = validationResult;
}
public InvalidProjectModelException( String projectId,
String pomLocation,
String message )
{
super( projectId, message, pomLocation );
}
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public InvalidProjectModelException( String projectId, String pomLocation, String message,
XmlPullParserException cause )
{
this( projectId, message, new File( pomLocation ).toURI(), cause );
}
public InvalidProjectModelException( String projectId, String message, URI pomLocation, XmlPullParserException cause )
{
super( projectId, message, pomLocation, cause );
}

View File

@ -1,5 +1,10 @@
package org.apache.maven.project;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@ -9,8 +14,6 @@ import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.interpolation.ModelInterpolationException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.IOException;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@ -39,149 +42,247 @@ public class ProjectBuildingException
{
private final String projectId;
private String pomLocation;
private URI pomUri;
public ProjectBuildingException( String projectId,
String message )
public ProjectBuildingException( String projectId, String message )
{
super( message );
this.projectId = projectId;
this( projectId, message, (URI) null );
}
protected ProjectBuildingException( String projectId,
String message,
String pomLocation )
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
* @param projectId
* @param message
* @param pomLocation absolute path of the pom file
*/
protected ProjectBuildingException( String projectId, String message, String pomLocation )
{
super( message );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) null );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
* @param projectId
* @param message
* @param pomLocation absolute path of the pom file
* @param cause
*/
private ProjectBuildingException( String projectId, String message, String pomLocation, Throwable cause )
{
this( projectId, message, new File( pomLocation ), cause );
}
/**
*
* @param projectId
* @param message
* @param pomFile pom file location
*/
public ProjectBuildingException( String projectId, String message, File pomFile )
{
this( projectId, message, pomFile, (Throwable) null );
}
/**
*
* @param projectId
* @param message
* @param cause
*/
private ProjectBuildingException( String projectId, String message, Throwable cause )
{
this( projectId, message, (URI) null, cause );
}
public ProjectBuildingException( String projectId, String message, URISyntaxException cause )
{
this( projectId, message, (Throwable) cause );
}
/**
* @param projectId
* @param message
* @param pomFile pom file location
* @param cause
*/
public ProjectBuildingException( String projectId, String message, File pomFile, Throwable cause )
{
this( projectId, message, pomFile.toURI(), cause );
}
/**
* Equivalent to new ProjectBuildingException(projectId, message, pomUri, null)
*
* @see #ProjectBuildingException(String, String, URI, Throwable)
*/
public ProjectBuildingException( String projectId, String message, URI pomUri )
{
this( projectId, message, pomUri, (Throwable) null );
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation,
ProfileActivationException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, new File( pomLocation ), cause );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
IOException cause )
public ProjectBuildingException( String projectId, String message, File pomLocation,
ProfileActivationException cause )
{
this( projectId, message, pomLocation, (Throwable) cause );
}
/**
* @param projectId
* @param message
* @param pomUri location of the pom
* @param cause
*/
private ProjectBuildingException( String projectId, String message, URI pomUri, Throwable cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this.pomUri = pomUri;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
XmlPullParserException cause )
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation, IOException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, new File( pomLocation ), cause );
}
protected ProjectBuildingException( String projectId,
String message,
XmlPullParserException cause )
public ProjectBuildingException( String projectId, String message, URI pomLocation, IOException cause )
{
super( message, cause );
this.projectId = projectId;
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
InvalidRepositoryException cause )
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation, XmlPullParserException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, new File( pomLocation ), cause );
}
public ProjectBuildingException( String projectId,
String message,
InvalidRepositoryException cause )
public ProjectBuildingException( String projectId, String message, URI pomLocation, XmlPullParserException cause )
{
super( message, cause );
this.projectId = projectId;
this( message, projectId, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
protected ProjectBuildingException( String projectId, String message, XmlPullParserException cause )
{
this( message, projectId, (URI) null, cause );
}
public ProjectBuildingException( String projectId, String message, ArtifactResolutionException cause )
{
this( projectId, message, (Throwable) cause );
}
public ProjectBuildingException( String projectId, String message, InvalidRepositoryException cause )
{
this( projectId, message, (Throwable) cause );
}
public ProjectBuildingException( String projectId, String message, ArtifactNotFoundException cause )
{
this( projectId, message, (Throwable) cause );
}
public ProjectBuildingException( String projectId, String message, File pomLocation,
ArtifactResolutionException cause )
{
super( message, cause );
this.projectId = projectId;
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
ArtifactNotFoundException cause )
{
super( message, cause );
this.projectId = projectId;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation,
ArtifactResolutionException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
public ProjectBuildingException( String projectId, String message, File pomLocation, ArtifactNotFoundException cause )
{
this( projectId, message, pomLocation, (Throwable) cause );
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation,
ArtifactNotFoundException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
public ProjectBuildingException( String projectId, String message, File pomLocation,
InvalidVersionSpecificationException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation,
InvalidVersionSpecificationException cause )
{
this( projectId, message, pomLocation, (Throwable) cause );
}
public ProjectBuildingException( String projectId, String message, File pomLocation,
InvalidDependencyVersionException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) cause );
}
protected ProjectBuildingException( String projectId,
String message,
String pomLocation,
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
public ProjectBuildingException( String projectId, String message, String pomLocation,
InvalidDependencyVersionException cause )
{
this( projectId, message, pomLocation, (Throwable) cause );
}
protected ProjectBuildingException( String projectId, String message, File pomLocation,
ModelInterpolationException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
this( projectId, message, pomLocation, (Throwable) cause );
}
/**
* @deprecated use {@link File} or {@link URI} constructors for pomLocation
*/
protected ProjectBuildingException( String projectId, String message, String pomLocation,
ModelInterpolationException cause )
{
this( projectId, message, pomLocation, (Throwable) cause );
}
public URI getPomUri()
{
return pomUri;
}
/**
* @deprecated use {@link #getPomUri()}
*/
public String getPomLocation()
{
return pomLocation;
if ( "file".equals( getPomUri().getScheme() ) )
{
return new File( getPomUri() ).getAbsolutePath();
}
return getPomUri().toString();
}
public String getProjectId()
@ -192,7 +293,6 @@ public class ProjectBuildingException
public String getMessage()
{
return super.getMessage() + " for project " + projectId
+ ( ( pomLocation == null ? "" : " at " + pomLocation ) );
+ ( ( getPomUri() == null ? "" : " at " + getPomLocation() ) );
}
}