Rollback changes generalizing exception ctors; this destroys traceability in the code for which combinations of exceptions are used in the system to produce an error.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@587638 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
John Dennis Casey 2007-10-23 20:07:03 +00:00
parent a44c4c99c0
commit 936b87590b
6 changed files with 182 additions and 282 deletions

View File

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

View File

@ -36,25 +36,6 @@ public class DuplicateProjectException
private final File conflictingProjectFile; private final File conflictingProjectFile;
/**
* @deprecated use {@link #DuplicateProjectException(String, File, File, String)}
*/
public DuplicateProjectException( String message )
{
this( null, null, null, message );
}
/**
* @deprecated use {@link #DuplicateProjectException(String, File, File, String)}
*/
public DuplicateProjectException( String message, Exception e )
{
super( message, e );
this.projectId = null;
this.existingProjectFile = null;
this.conflictingProjectFile = null;
}
public DuplicateProjectException( String projectId, public DuplicateProjectException( String projectId,
File existingProjectFile, File existingProjectFile,
File conflictingProjectFile, File conflictingProjectFile,

View File

@ -19,117 +19,55 @@ package org.apache.maven.project;
* under the License. * under the License.
*/ */
import java.io.File; import org.apache.maven.artifact.InvalidRepositoryException;
import java.net.URI; import org.apache.maven.project.interpolation.ModelInterpolationException;
import org.apache.maven.project.validation.ModelValidationResult; import org.apache.maven.project.validation.ModelValidationResult;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class InvalidProjectModelException public class InvalidProjectModelException
extends ProjectBuildingException extends ProjectBuildingException
{ {
private ModelValidationResult validationResult; private ModelValidationResult validationResult;
/**
*
* @param projectId
* @param message
* @param pomFile pom file
* @param cause
*/
public InvalidProjectModelException( String projectId, public InvalidProjectModelException( String projectId,
String pomLocation,
String message, String message,
File pomFile, ModelInterpolationException cause )
Throwable cause )
{
super( projectId, message, pomFile, cause );
}
/**
*
* @param projectId
* @param message
* @param pomLocation pom location
* @param cause
*/
public InvalidProjectModelException( String projectId,
String message,
URI pomLocation,
Throwable cause )
{ {
super( projectId, message, pomLocation, cause ); super( projectId, message, pomLocation, cause );
} }
/**
*
* @param projectId
* @param message
* @param pomLocation pom location
*/
public InvalidProjectModelException( String projectId, public InvalidProjectModelException( String projectId,
String pomLocation,
String message, String message,
URI pomLocation ) InvalidRepositoryException cause )
{
super( projectId, message, pomLocation, cause );
}
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
ModelValidationResult validationResult )
{ {
super( projectId, message, pomLocation ); super( projectId, message, pomLocation );
}
/**
* @deprecated use {@link #InvalidProjectModelException(String, String, File, Throwable)}
* @param projectId
* @param pomLocation absolute path of the pom file
* @param message
* @param cause
*/
public InvalidProjectModelException( String projectId,
String pomLocation,
String message,
Throwable cause )
{
super( projectId, message, new File( pomLocation ), cause );
}
/**
* @deprecated use {@link #InvalidProjectModelException(String, String, File, ModelValidationResult)}
* @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; this.validationResult = validationResult;
} }
public InvalidProjectModelException( String projectId, public InvalidProjectModelException( String projectId,
String message, String pomLocation,
File pomLocation ) String message )
{ {
super( projectId, message, pomLocation ); super( projectId, message, pomLocation );
} }
/**
* @deprecated use {@link #InvalidProjectModelException(String, String, File)}
* @param projectId
* @param pomLocation absolute path of the pom file
* @param message
*/
public InvalidProjectModelException( String projectId, public InvalidProjectModelException( String projectId,
String pomLocation, String pomLocation,
String message ) String message,
XmlPullParserException cause )
{ {
super( projectId, message, new File( pomLocation ) ); super( projectId, message, pomLocation, cause );
} }
public final ModelValidationResult getValidationResult() public final ModelValidationResult getValidationResult()

View File

@ -1,7 +1,15 @@
package org.apache.maven.project; package org.apache.maven.project;
import java.io.File; import org.apache.maven.artifact.InvalidRepositoryException;
import java.net.URI; import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.profiles.activation.ProfileActivationException;
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 * Licensed to the Apache Software Foundation (ASF) under one
@ -31,106 +39,149 @@ public class ProjectBuildingException
{ {
private final String projectId; private final String projectId;
private URI pomUri; private String pomLocation;
public ProjectBuildingException( String projectId, String message ) public ProjectBuildingException( String projectId,
String message )
{ {
this( message, projectId, (File) null ); super( message );
this.projectId = projectId;
} }
/** protected ProjectBuildingException( String projectId,
* @deprecated use {@link #ProjectBuildingException(String, String, File)} String message,
* @param projectId String pomLocation )
* @param message
* @param pomLocation absolute path of the pom file
*/
protected ProjectBuildingException( String projectId, String message, String pomLocation )
{ {
this( projectId, message, pomLocation, null ); super( message );
this.projectId = projectId;
this.pomLocation = pomLocation;
} }
/** public ProjectBuildingException( String projectId,
* @deprecated use {@link #ProjectBuildingException(String, String, File, Throwable)} String message,
* @param projectId String pomLocation,
* @param message ProfileActivationException cause )
* @param pomLocation absolute path of the pom file
* @param cause
*/
public ProjectBuildingException( String projectId, String message, String pomLocation, Throwable cause )
{
this( projectId, message, new File( pomLocation ), null );
}
/**
*
* @param projectId
* @param message
* @param pomFile pom file location
*/
public ProjectBuildingException( String projectId, String message, File pomFile )
{
this( projectId, message, pomFile, null );
}
/**
*
* @param projectId
* @param message
* @param cause
*/
public ProjectBuildingException( String projectId, String message, Throwable cause )
{
this( projectId, message, (URI) null, 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, null );
}
/**
* @param projectId
* @param message
* @param pomUri location of the pom
* @param cause
*/
public ProjectBuildingException( String projectId, String message, URI pomUri, Throwable cause )
{ {
super( message, cause ); super( message, cause );
this.projectId = projectId; this.projectId = projectId;
this.pomUri = pomUri; this.pomLocation = pomLocation;
} }
public URI getPomUri() public ProjectBuildingException( String projectId,
String message,
String pomLocation,
IOException cause )
{ {
return pomUri; super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
XmlPullParserException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
protected ProjectBuildingException( String projectId,
String message,
XmlPullParserException cause )
{
super( message, cause );
this.projectId = projectId;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
InvalidRepositoryException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
public ProjectBuildingException( String projectId,
String message,
InvalidRepositoryException cause )
{
super( message, cause );
this.projectId = projectId;
}
public ProjectBuildingException( String projectId,
String message,
ArtifactResolutionException cause )
{
super( message, cause );
this.projectId = projectId;
}
public ProjectBuildingException( String projectId,
String message,
ArtifactNotFoundException cause )
{
super( message, cause );
this.projectId = projectId;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
ArtifactResolutionException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
ArtifactNotFoundException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
InvalidVersionSpecificationException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
public ProjectBuildingException( String projectId,
String message,
String pomLocation,
InvalidDependencyVersionException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
}
protected ProjectBuildingException( String projectId,
String message,
String pomLocation,
ModelInterpolationException cause )
{
super( message, cause );
this.projectId = projectId;
this.pomLocation = pomLocation;
} }
/**
* @deprecated use {@link #getPomUri()}
*/
public String getPomLocation() public String getPomLocation()
{ {
if ( "file".equals( getPomUri().getScheme() ) ) return pomLocation;
{
return new File( getPomUri() ).getAbsolutePath();
}
return getPomUri().toString();
} }
public String getProjectId() public String getProjectId()
@ -141,6 +192,7 @@ public class ProjectBuildingException
public String getMessage() public String getMessage()
{ {
return super.getMessage() + " for project " + projectId return super.getMessage() + " for project " + projectId
+ ( ( getPomUri() == null ? "" : " at " + getPomLocation() ) ); + ( ( pomLocation == null ? "" : " at " + pomLocation ) );
} }
} }

View File

@ -34,12 +34,4 @@ public class InvalidDependencyVersionException
{ {
super( message, cause ); super( message, cause );
} }
/**
* @deprecated use {@link #InvalidDependencyVersionException(String, InvalidVersionSpecificationException)}
*/
public InvalidDependencyVersionException( String message, Exception cause )
{
super( message, cause );
}
} }

View File

@ -198,11 +198,11 @@ public class DefaultModelLineageBuilder
} }
catch ( IOException e ) catch ( IOException e )
{ {
throw new ProjectBuildingException( "unknown", "Failed to read model from: " + pomFile, pomFile, e ); throw new ProjectBuildingException( "unknown", "Failed to read model from: " + pomFile, pomFile.getAbsolutePath(), e );
} }
catch ( XmlPullParserException e ) catch ( XmlPullParserException e )
{ {
throw new ProjectBuildingException( "unknown", "Failed to parse model from: " + pomFile, pomFile, e ); throw new ProjectBuildingException( "unknown", "Failed to parse model from: " + pomFile, pomFile.getAbsolutePath(), e );
} }
finally finally
{ {
@ -251,7 +251,7 @@ public class DefaultModelLineageBuilder
catch ( InvalidRepositoryException e ) catch ( InvalidRepositoryException e )
{ {
throw new ProjectBuildingException( model.getId(), "Failed to create ArtifactRepository list for: " throw new ProjectBuildingException( model.getId(), "Failed to create ArtifactRepository list for: "
+ pomFile, pomFile, e ); + pomFile, pomFile.getAbsolutePath(), e );
} }
} }