o cleaning up the lifecycle executor and error reporter

git-svn-id: https://svn.apache.org/repos/asf/maven/components/branches/MNG-2766@753053 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2009-03-12 23:27:54 +00:00
parent c5565158a1
commit 24139e8256
27 changed files with 102 additions and 3415 deletions

View File

@ -20,10 +20,6 @@
<artifactId>maven-core</artifactId>
<name>Maven Core</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-lifecycle</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-reporting-api</artifactId>

View File

@ -1,7 +1,5 @@
package org.apache.maven;
import org.apache.maven.lifecycle.MojoBindingUtils;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.apache.maven.plugin.MojoFailureException;
/**
@ -18,18 +16,13 @@ public class AggregatedBuildFailureException
{
private final String executionRootDirectory;
private final MojoBinding binding;
public AggregatedBuildFailureException( String executionRootDirectory,
MojoBinding binding,
MojoFailureException cause )
{
super( "Build in root directory: " + executionRootDirectory
+ " failed during execution of aggregator mojo: "
+ MojoBindingUtils.toString( binding ), cause );
super( "Build in root directory: " + executionRootDirectory + " failed during execution of aggregator mojo.", cause );
this.executionRootDirectory = executionRootDirectory;
this.binding = binding;
}
public MojoFailureException getMojoFailureException()
@ -41,10 +34,4 @@ public String getExecutionRootDirectory()
{
return executionRootDirectory;
}
public MojoBinding getBinding()
{
return binding;
}
}

View File

@ -81,7 +81,7 @@ public class DefaultMaven
@Requirement
private Logger logger;
public List<Lifecycle> getLifecyclePhases()
public List<String> getLifecyclePhases()
{
return lifecycleExecutor.getLifecyclePhases();
}
@ -463,4 +463,24 @@ private void filterOneProjectFilePerDirectory( List files )
}
}
}
// Lifecycle phases
public List<Lifecycle> getBuildLifecyclePhases()
{
// TODO Auto-generated method stub
return null;
}
public List<Lifecycle> getCleanLifecyclePhases()
{
// TODO Auto-generated method stub
return null;
}
public List<Lifecycle> getSiteLifecyclePhases()
{
// TODO Auto-generated method stub
return null;
}
}

View File

@ -24,7 +24,6 @@
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.execution.ReactorManager;
import org.apache.maven.lifecycle.Lifecycle;
/**
* @author Jason van Zyl
@ -34,15 +33,16 @@ public interface Maven
{
static String ROLE = Maven.class.getName();
//!! CLI pollution
//jvz!! CLI pollution
String POMv4 = "pom.xml";
//!! release plugin pollution
//!!jvz release plugin pollution
String RELEASE_POMv4 = "release-pom.xml";
MavenExecutionResult execute( MavenExecutionRequest request );
ReactorManager createReactorManager( MavenExecutionRequest request, MavenExecutionResult result );
//!!jvz This should not be exposed but is as a result of the buildProjectWithDependencies
ReactorManager createReactorManager( MavenExecutionRequest request, MavenExecutionResult result );
List<Lifecycle> getLifecyclePhases();
List getLifecyclePhases();
}

View File

@ -1,7 +1,5 @@
package org.apache.maven;
import org.apache.maven.lifecycle.MojoBindingUtils;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.apache.maven.plugin.MojoFailureException;
/**
@ -19,17 +17,12 @@ public class ProjectBuildFailureException
{
private final String projectId;
private final MojoBinding binding;
public ProjectBuildFailureException( String projectId,
MojoBinding binding,
MojoFailureException cause )
public ProjectBuildFailureException( String projectId, MojoFailureException cause )
{
super( "Build for project: " + projectId + " failed during execution of mojo: "
+ MojoBindingUtils.toString( binding ), cause );
super( "Build for project: " + projectId + " failed during execution of mojo.", cause );
this.projectId = projectId;
this.binding = binding;
}
public MojoFailureException getMojoFailureException()
@ -41,10 +34,4 @@ public String getProjectId()
{
return projectId;
}
public MojoBinding getBinding()
{
return binding;
}
}

View File

@ -1,124 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.NoGoalsSpecifiedException;
import org.apache.maven.ProjectCycleException;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.LifecycleException;
import org.apache.maven.lifecycle.LifecycleLoaderException;
import org.apache.maven.lifecycle.LifecycleSpecificationException;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.InvalidPluginException;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.PluginConfigurationException;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.plugin.PluginLoaderException;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginParameterException;
import org.apache.maven.plugin.PluginVersionNotFoundException;
import org.apache.maven.plugin.PluginVersionResolutionException;
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.project.DuplicateArtifactAttachmentException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.reactor.MavenExecutionException;
import org.apache.maven.reactor.MissingModuleException;
import org.apache.maven.realm.RealmManagementException;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.logging.Logger;
import java.util.List;
public interface CoreErrorReporter
extends ProjectErrorReporter
{
void handleSuperPomBuildingError( ProjectBuildingException exception );
void reportAggregatedMojoFailureException( MavenSession session, MojoBinding binding, MojoFailureException cause );
void reportAttemptToOverrideUneditableMojoParameter( Parameter currentParameter, MojoBinding binding, MavenProject project, MavenSession session, MojoExecution exec, PathTranslator translator, Logger logger, PluginConfigurationException cause );
void reportErrorApplyingMojoConfiguration( MojoBinding binding, MavenProject project, PlexusConfiguration config, PluginConfigurationException cause );
void reportErrorConfiguringExtensionPluginRealm( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, PluginManagerException cause );
void reportErrorConfiguringExtensionPluginRealm( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, RealmManagementException cause );
void reportErrorFormulatingBuildPlan( List tasks, MavenProject project, MavenSession session, LifecycleException cause );
void reportErrorLoadingPlugin( MojoBinding binding, MavenProject project, PluginLoaderException cause );
void reportErrorManagingRealmForExtension( Artifact extensionArtifact, Artifact projectArtifact, List remoteRepos, MavenExecutionRequest request, RealmManagementException cause );
void reportErrorResolvingExtensionDirectDependencies( Artifact extensionArtifact, Artifact projectArtifact, List remoteRepos, MavenExecutionRequest request, ArtifactMetadataRetrievalException cause );
void reportErrorSearchingforCompatibleExtensionPluginVersion( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, String requiredMavenVersion, String currentMavenVersion, InvalidVersionSpecificationException cause );
void reportErrorSearchingforCompatibleExtensionPluginVersion( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, String requiredMavenVersion, String currentMavenVersion, ArtifactMetadataRetrievalException cause );
void reportExtensionPluginArtifactNotFound( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, AbstractArtifactResolutionException cause );
void reportExtensionPluginVersionNotFound( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, PluginVersionNotFoundException cause );
void reportIncompatibleMavenVersionForExtensionPlugin( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, String requiredMavenVersion, String currentMavenVersion, PluginVersionResolutionException err );
void reportInvalidDependencyVersionInExtensionPluginPOM( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, InvalidDependencyVersionException cause );
void reportInvalidMavenVersion( MavenProject project, ArtifactVersion mavenVersion, MavenExecutionException err );
void reportInvalidPluginExecutionEnvironment( MojoBinding binding, MavenProject project, PluginExecutionException cause );
void reportLifecycleLoaderErrorWhileValidatingTask( String task, MavenSession session, MavenProject rootProject, LifecycleLoaderException cause );
void reportLifecycleSpecErrorWhileValidatingTask( String task, MavenSession session, MavenProject rootProject, LifecycleSpecificationException cause );
void reportMissingRequiredMojoParameter( MojoBinding binding, MavenProject project, List invalidParameters, PluginParameterException err );
void reportMojoExecutionException( MojoBinding binding, MavenProject project, MojoExecutionException cause );
void reportMojoLookupError( MojoBinding binding, MavenProject project, ComponentLookupException cause );
void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error );
void reportProjectCycle( ProjectCycleException error );
void reportProjectDependenciesNotFound( MavenProject project, String scope, ArtifactNotFoundException cause );
void reportProjectDependenciesNotFound( MavenProject project, String scope, MultipleArtifactsNotFoundException cause );
void reportProjectDependenciesUnresolvable( MavenProject project, String scope, ArtifactResolutionException cause );
void reportProjectMojoFailureException( MavenSession session, MojoBinding binding, MojoFailureException cause );
void reportReflectionErrorWhileEvaluatingMojoParameter( Parameter currentParameter, MojoBinding binding, MavenProject project, String expression, Exception cause );
void reportUnresolvableArtifactWhileAddingExtensionPlugin( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, ArtifactResolutionException cause );
void reportUnresolvableExtensionPluginPOM( Plugin plugin, Model originModel, List remoteRepos, MavenExecutionRequest request, ArtifactMetadataRetrievalException cause );
void reportUseOfBannedMojoParameter( Parameter currentParameter, MojoBinding binding, MavenProject project, String expression, String altExpression, ExpressionEvaluationException err );
void reportMissingModulePom( MissingModuleException err );
void reportInvalidPluginForDirectInvocation( String task, MavenSession session, MavenProject project, InvalidPluginException err );
void reportDuplicateAttachmentException( MojoBinding binding, MavenProject project, DuplicateArtifactAttachmentException cause );
}

View File

@ -1,323 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.ProjectCycleException;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.LifecycleException;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.InvalidPluginException;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.PluginConfigurationException;
import org.apache.maven.plugin.PluginExecutionException;
import org.apache.maven.plugin.PluginLoaderException;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginVersionNotFoundException;
import org.apache.maven.plugin.PluginVersionResolutionException;
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.project.DuplicateArtifactAttachmentException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.realm.RealmManagementException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import java.io.File;
import java.util.Arrays;
import java.util.List;
// NOTE: The strange String[] syntax is a backward adaptation from java5 stuff, where
// I was using varargs in listOf(..). I'm not moving them to constants because I'd like
// to go back to this someday...
// TODO: Fill these out!!
public final class CoreErrorTips
{
private static final List NO_GOALS_TIPS = Arrays.asList( new String[] {
"Introduction to the Build Lifecycle", "\t(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)",
"Maven in 5 Minutes guide (http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)",
"Maven User's documentation (http://maven.apache.org/users/)",
"Maven Plugins page (http://maven.apache.org/plugins/)",
"CodeHaus Mojos Project page (http://mojo.codehaus.org/plugins.html)"
} );
private CoreErrorTips()
{
}
public static List getNoGoalsTips()
{
return NO_GOALS_TIPS;
}
public static List getMojoFailureTips( MojoBinding binding )
{
// TODO Auto-generated method stub
return null;
}
public static List getProjectCycleTips( ProjectCycleException error )
{
// TODO Auto-generated method stub
return null;
}
public static List getTaskValidationTips( String task, Exception cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getMissingPluginDescriptorTips( MojoBinding binding,
MavenProject project )
{
// TODO Auto-generated method stub
return null;
}
public static List getInvalidExecutionEnvironmentTips( MojoBinding binding,
MavenProject project,
PluginExecutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getMojoExecutionExceptionTips( MojoBinding binding,
MavenProject project,
MojoExecutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getMojoLookupErrorTips( MojoBinding binding,
MavenProject project,
ComponentLookupException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getUneditableMojoParameterTips( Parameter currentParameter,
MojoBinding binding,
MavenProject project,
PluginConfigurationException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getBannedParameterExpressionTips( Parameter currentParameter,
MojoBinding binding,
MavenProject project )
{
// TODO Auto-generated method stub
return null;
}
public static List getReflectionErrorInParameterExpressionTips( String expression,
Parameter currentParameter,
MojoBinding binding,
MavenProject project )
{
// TODO Auto-generated method stub
return null;
}
public static List getMissingRequiredParameterTips( List invalidParameters,
MojoBinding binding,
MavenProject project )
{
// TODO Auto-generated method stub
return null;
}
public static List getMojoConfigurationErrorTips( MojoBinding binding,
MavenProject project,
PlexusConfiguration config,
PluginConfigurationException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getBuildPlanningErrorTips( List tasks,
MavenProject configuringProject,
LifecycleException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorLoadingPluginTips( MojoBinding binding,
MavenProject project,
PluginLoaderException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getDependencyArtifactResolutionTips( MavenProject project,
Artifact depArtifact,
AbstractArtifactResolutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getDependencyArtifactResolutionTips( MavenProject project,
String scope,
AbstractArtifactResolutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getIncompatibleProjectMavenVersionPrereqTips( MavenProject project,
ArtifactVersion mavenVersion )
{
// TODO Auto-generated method stub
return null;
}
public static List getPomFileScanningErrorTips( File basedir,
String includes,
String excludes )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorResolvingExtensionDirectDepsTips( Artifact extensionArtifact,
Artifact projectArtifact,
ArtifactMetadataRetrievalException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorResolvingExtensionArtifactsTips( Artifact extensionArtifact,
Artifact projectArtifact,
ArtifactResolutionResult resolutionResult )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorManagingExtensionRealmTips( Artifact extensionArtifact,
Artifact projectArtifact,
RealmManagementException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorManagingExtensionPluginRealmTips( Plugin plugin,
Model originModel,
RealmManagementException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorResolvingExtensionPluginArtifactsTips( Plugin plugin,
Model originModel,
AbstractArtifactResolutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorResolvingExtensionPluginVersionTips( Plugin plugin,
Model originModel,
PluginVersionResolutionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getInvalidDependencyVersionForExtensionPluginTips( Plugin plugin,
Model originModel,
InvalidDependencyVersionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getInvalidPluginVersionRangeForExtensionPluginTips( Plugin plugin,
Model originModel,
String requiredMavenVersion,
String currentMavenVersion )
{
// TODO Auto-generated method stub
return null;
}
public static List getInvalidPluginVersionRangeForExtensionPluginTips( Plugin plugin,
Model originModel,
String requiredMavenVersion,
String currentMavenVersion,
Exception cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getUnresolvableExtensionPluginPOMTips( Plugin plugin,
Model originModel,
ArtifactMetadataRetrievalException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getExtensionPluginVersionNotFoundTips( Plugin plugin,
Model originModel,
PluginVersionNotFoundException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getErrorManagingExtensionPluginRealmTips( Plugin plugin,
Model originModel,
PluginManagerException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getMissingModuleTips( File pomFile,
File moduleFile,
String moduleName )
{
// TODO Auto-generated method stub
return null;
}
public static List getInvalidPluginForDirectInvocationTips( String task,
MavenSession session,
MavenProject project,
InvalidPluginException err )
{
// TODO Auto-generated method stub
return null;
}
public static List getDuplicateAttachmentTips( MojoBinding binding,
MavenProject project,
DuplicateArtifactAttachmentException cause )
{
// TODO Auto-generated method stub
return null;
}
}

View File

@ -1,38 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.errors.ProjectReporterManager;
public final class CoreReporterManager
{
// FIXME: This is not threadsafe!!
private static CoreErrorReporter reporter;
private CoreReporterManager()
{
}
public static CoreErrorReporter getReporter()
{
if ( reporter == null )
{
reporter = new DefaultCoreErrorReporter();
// FIXME: Is this correct? What might this isolate and make inaccessible in a running system?
ProjectReporterManager.setReporter( reporter );
}
return reporter;
}
public static void setReporter( CoreErrorReporter instance )
{
reporter = instance;
ProjectReporterManager.setReporter( instance );
}
public static void clearReporter()
{
reporter = null;
}
}

View File

@ -1,618 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.execution.DuplicateProjectException;
import org.apache.maven.project.*;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class DefaultProjectErrorReporter
implements ProjectErrorReporter
{
private static final String NEWLINE = "\n";
private Map formattedMessages;
private Map realCauses;
private Map stackTraceRecommendations;
public DefaultProjectErrorReporter( Map formattedMessageStore, Map realCauseStore, Map stackTraceRecommendationStore )
{
formattedMessages = formattedMessageStore;
realCauses = realCauseStore;
stackTraceRecommendations = stackTraceRecommendationStore;
}
public DefaultProjectErrorReporter()
{
formattedMessages = new LinkedHashMap();
realCauses = new HashMap();
stackTraceRecommendations = new HashMap();
}
/**
* @see ProjectErrorReporter#clearErrors()
*/
public void clearErrors()
{
formattedMessages.clear();
realCauses.clear();
}
public List getReportedExceptions()
{
return new ArrayList( formattedMessages.keySet() );
}
/**
*/
public Throwable findReportedException( Throwable error )
{
if ( formattedMessages.containsKey( error ) )
{
return error;
}
else if ( error.getCause() != null )
{
return findReportedException( error.getCause() );
}
return null;
}
/**
* @see ProjectErrorReporter#getFormattedMessage(java.lang.Throwable)
*/
public String getFormattedMessage( Throwable error )
{
return (String) formattedMessages.get( error );
}
/**
* @see ProjectErrorReporter#getRealCause(java.lang.Throwable)
*/
public Throwable getRealCause( Throwable error )
{
return (Throwable) realCauses.get( error );
}
public boolean isStackTraceRecommended( Throwable error )
{
Boolean rec = (Boolean) stackTraceRecommendations.get( error );
if ( rec == null )
{
return false;
}
return rec.booleanValue();
}
protected void setStackTraceRecommendation( Throwable error, boolean recommended )
{
stackTraceRecommendations.put( error, Boolean.valueOf( recommended ) );
}
protected void registerBuildError( Throwable error,
String formattedMessage,
Throwable realCause )
{
formattedMessages.put( error, formattedMessage );
realCauses.put( error, realCause );
}
protected void registerBuildError( Throwable error,
String formattedMessage )
{
formattedMessages.put( error, formattedMessage );
}
public void reportActivatorLookupError( Model model,
File pomFile,
Profile profile,
ProfileActivationContext context,
ComponentLookupException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Error retrieving profile-activator component while processing profile:" );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( profile.getId() );
writer.write( " (source: " );
writer.write( profile.getSource() );
writer.write( ")" );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Error message: " );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
addStandardInfo( model.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForActivatorLookupError( model.getId(),
pomFile,
profile,
cause ), writer );
registerBuildError( cause, writer.toString(), cause.getCause() );
}
/**
* @see ProjectErrorReporter#reportErrorLoadingExternalProfilesFromFile(org.apache.maven.model.Model, java.io.File, java.io.File, java.io.IOException)
*/
public void reportErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
IOException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Failed to load external profiles from project directory: " );
writer.write( NEWLINE );
writer.write( String.valueOf( projectDir ) );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Error message: " );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
addStandardInfo( model.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForErrorLoadingExternalProfilesFromFile( model,
pomFile,
projectDir,
cause ), writer );
registerBuildError( cause, writer.toString(), cause.getCause() );
}
/**
* @see ProjectErrorReporter#reportErrorLoadingExternalProfilesFromFile(org.apache.maven.model.Model, java.io.File, java.io.File, org.codehaus.plexus.util.xml.pull.XmlPullParserException)
*/
public void reportErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
XmlPullParserException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Failed to load external profiles from project directory: " );
writer.write( NEWLINE );
writer.write( String.valueOf( projectDir ) );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Error message: " );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Line: " );
writer.write( cause.getLineNumber() );
writer.write( NEWLINE );
writer.write( "Column: " );
writer.write( cause.getColumnNumber() );
addStandardInfo( model.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForErrorLoadingExternalProfilesFromFile( model,
pomFile,
projectDir,
cause ), writer );
registerBuildError( cause, writer.toString(), cause.getCause() );
}
public void reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( Repository repo,
Model model,
File pomFile,
InvalidRepositoryException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Invalid repository declaration: " );
writer.write( repo.getId() );
writer.write( NEWLINE );
writer.write( "(URL: " );
writer.write( repo.getUrl() );
writer.write( ")" );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Error message: " );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
addStandardInfo( model.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, model.getId(), pomFile, cause ),
writer );
registerBuildError( cause, writer.toString(), cause.getCause() );
}
private void addStandardInfo( String projectId,
File pomFile,
StringWriter writer )
{
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Project Id: " );
writer.write( projectId );
writer.write( NEWLINE );
writer.write( "From file: " );
writer.write( String.valueOf( pomFile ) );
}
private void addTips( List tips,
StringWriter writer )
{
if ( ( tips != null ) && !tips.isEmpty() )
{
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Some tips:" );
for ( Iterator it = tips.iterator(); it.hasNext(); )
{
String tip = (String) it.next();
writer.write( NEWLINE );
writer.write( "\t- " );
writer.write( tip );
}
}
}
public void reportErrorCreatingArtifactRepository( String projectId,
File pomFile,
Repository repo,
InvalidRepositoryException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "You have an invalid repository/pluginRepository declaration in your POM:" );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Repository-Id: " );
writer.write( cause.getRepositoryId() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Reason: " );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( projectId, pomFile, writer );
addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, projectId, pomFile, cause ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportErrorCreatingDeploymentArtifactRepository( MavenProject project,
File pomFile,
DeploymentRepository repo,
InvalidRepositoryException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "You have an invalid repository/snapshotRepository declaration in the <distributionManagement/> section of your POM:" );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Repository-Id: " );
writer.write( cause.getRepositoryId() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Reason: " );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( project.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, project.getId(), pomFile, cause ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportProjectValidationFailure( MavenProject project,
File pomFile,
InvalidProjectModelException error )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "The following POM validation errors were detected:" );
writer.write( NEWLINE );
for ( Iterator it = error.getValidationResult().getMessages().iterator(); it.hasNext(); )
{
String message = (String) it.next();
writer.write( NEWLINE );
writer.write( " - " );
writer.write( message );
}
writer.write( NEWLINE );
writer.write( NEWLINE );
addStandardInfo( project.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForProjectValidationFailure( project, pomFile, error.getValidationResult() ),
writer );
registerBuildError( error, writer.toString() );
}
public void reportBadManagedDependencyVersion( MavenProject project,
File pomFile,
InvalidDependencyVersionException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Your project declares a dependency with an invalid version inside its <dependencyManagement/> section." );
writer.write( NEWLINE );
writer.write( NEWLINE );
Dependency dep = cause.getDependency();
writer.write( "Dependency:" );
writer.write( NEWLINE );
writer.write( "Group-Id: " );
writer.write( dep.getGroupId() );
writer.write( NEWLINE );
writer.write( "Artifact-Id: " );
writer.write( dep.getArtifactId() );
writer.write( NEWLINE );
writer.write( "Version: " );
writer.write( dep.getVersion() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Reason: " );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( project.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForBadDependencySpec( project, pomFile, dep ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportBadDependencyVersion( MavenProject project,
File pomFile,
InvalidDependencyVersionException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Your project declares a dependency with an invalid version." );
writer.write( NEWLINE );
writer.write( NEWLINE );
Dependency dep = cause.getDependency();
writer.write( "Dependency:" );
writer.write( NEWLINE );
writer.write( "Group-Id: " );
writer.write( dep.getGroupId() );
writer.write( NEWLINE );
writer.write( "Artifact-Id: " );
writer.write( dep.getArtifactId() );
writer.write( NEWLINE );
writer.write( "Version: " );
writer.write( dep.getVersion() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Reason: " );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( project.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForBadDependencySpec( project, pomFile, dep ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportErrorParsingProjectModel( String projectId,
File pomFile,
XmlPullParserException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
if ( pomFile == null )
{
writer.write( "Error parsing built-in super POM!" );
}
else
{
writer.write( "Error parsing POM." );
}
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Line: " );
writer.write( "" + ( cause ).getLineNumber() );
writer.write( NEWLINE );
writer.write( "Column: " );
writer.write( "" + ( cause ).getColumnNumber() );
writer.write( NEWLINE );
addStandardInfo( projectId, pomFile, writer );
addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, pomFile, cause ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportErrorParsingProjectModel( String projectId,
File pomFile,
IOException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
if ( pomFile == null )
{
writer.write( "Error reading built-in super POM!" );
}
else
{
writer.write( "Error reading POM." );
}
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( projectId, pomFile, writer );
addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, pomFile, cause ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportParentPomArtifactNotFound( Parent parentRef,
ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
ArtifactNotFoundException cause )
{
reportArtifactError( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
public void reportParentPomArtifactUnresolvable( Parent parentRef,
ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
ArtifactResolutionException cause )
{
reportArtifactError( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
private void reportArtifactError( Parent parentRef,
ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
AbstractArtifactResolutionException cause )
{
StringWriter writer = new StringWriter();
writer.write( NEWLINE );
writer.write( "Failed to resolve parent-POM from repository." );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Parent POM Information: " );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Group-Id: " );
writer.write( parentRef.getGroupId() );
writer.write( NEWLINE );
writer.write( "Artifact-Id: " );
writer.write( parentRef.getArtifactId() );
writer.write( NEWLINE );
writer.write( "Version: " );
writer.write( parentRef.getVersion() );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Local Repository: " );
writer.write( config.getLocalRepository().getBasedir() );
if ( ( remoteRepos != null ) && !remoteRepos.isEmpty() )
{
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Remote Repositories: " );
for ( Iterator it = remoteRepos.iterator(); it.hasNext(); )
{
ArtifactRepository remoteRepo = (ArtifactRepository) it.next();
writer.write( NEWLINE );
writer.write( remoteRepo.getId() );
writer.write( " -> " );
writer.write( remoteRepo.getUrl() );
// TODO: Get mirrors!!
}
}
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Reason: " );
writer.write( cause.getMessage() );
writer.write( NEWLINE );
addStandardInfo( childId, childPomFile, writer );
addTips( ProjectErrorTips.getTipsForPomParsingError( childId, childPomFile, cause ),
writer );
registerBuildError( cause, writer.toString() );
}
public void reportProjectCollision( List allProjectInstances,
DuplicateProjectException err )
{
File existing = err.getExistingProjectFile();
File conflicting = err.getConflictingProjectFile();
String projectId = err.getProjectId();
StringWriter writer = new StringWriter();
writer.write( "Duplicated project detected." );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Project: " + projectId );
writer.write( NEWLINE );
writer.write( "File: " );
writer.write( String.valueOf( existing ) );
writer.write( NEWLINE );
writer.write( "File: " );
writer.write( String.valueOf( conflicting ) );
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "NOTE: Each project in a Maven build must have a unique combination of groupId and artifactId." );
addTips( ProjectErrorTips.getTipsForDuplicateProjectError( allProjectInstances, err ),
writer );
registerBuildError( err, writer.toString() );
}
}

View File

@ -1,238 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.execution.DuplicateProjectException;
import org.apache.maven.project.InvalidProjectModelException;
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.util.List;
public interface ProjectErrorReporter
{
void clearErrors();
String getFormattedMessage( Throwable error );
Throwable getRealCause( Throwable error );
List getReportedExceptions();
Throwable findReportedException( Throwable error );
boolean isStackTraceRecommended( Throwable error );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* DefaultProfileAdvisor.applyActivatedProfiles(..)
* DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
* --&gt; DefaultProfileAdvisor.applyActivatedProfiles(..) (private)
* --&gt; DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
* --&gt; DefaultProfileManager.getActiveProfiles(..)
* --&gt; DefaultProfileManager.isActive(..) (private)
* --&gt; PlexusContainer.lookupList(..)
* &lt;-- ComponentLookupException
* &lt;-- ProfileActivationException
* &lt;------ ProjectBuildingException
* </pre>
*/
void reportActivatorLookupError( Model model,
File pomFile,
Profile profile,
ProfileActivationContext context,
ComponentLookupException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* DefaultProfileAdvisor.applyActivatedProfiles(..)
* DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
* --&gt; DefaultProfileAdvisor.buildProfileManager(..) (private)
* --&gt; DefaultProfileAdvisor.loadExternalProjectProfiles(..) (private)
* --&gt; MavenProfilesBuilder.buildProfiles(..)
* &lt;-- IOException
* &lt;------ ProjectBuildingException
* </pre>
*/
void reportErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
IOException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* DefaultProfileAdvisor.applyActivatedProfiles(..)
* DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
* --&gt; DefaultProfileAdvisor.buildProfileManager(..) (private)
* --&gt; DefaultProfileAdvisor.loadExternalProjectProfiles(..) (private)
* --&gt; MavenProfilesBuilder.buildProfiles(..)
* &lt;-- XmlPullParserException
* &lt;------ ProjectBuildingException
* </pre>
*/
void reportErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
XmlPullParserException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* DefaultProfileAdvisor.applyActivatedProfiles(..)
* DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
* --&gt; DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
* --&gt; MavenTools.buildArtifactRepository(..)
* &lt;-- InvalidRepositoryException
* &lt;-- ProjectBuildingException
* </pre>
*/
void reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( Repository repo,
Model model,
File pomFile,
InvalidRepositoryException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; DefaultMavenProjectBuilder.buildFromRepository(..)
* DefaultMavenProjectBuilder.build(..)
* --&gt; DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.buildInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.processProjectLogic(..) (private)
* --&gt; DefaultMavenTools.buildDeploymentArtifactRepository(..)
* &lt;-- UnknownRepositoryLayoutException
* &lt;-------- ProjectBuildingException
* </pre>
*/
void reportErrorCreatingDeploymentArtifactRepository( MavenProject project,
File pomFile,
DeploymentRepository repo,
InvalidRepositoryException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; DefaultMavenProjectBuilder.buildFromRepository(..)
* DefaultMavenProjectBuilder.build(..)
* --&gt; DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.buildInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.processProjectLogic(..) (private)
* --&gt; DefaultMavenTools.buildArtifactRepositories(..)
* --&gt; DefaultMavenTools.buildArtifactRepository(..)
* &lt;------ UnknownRepositoryLayoutException
* &lt;---------- ProjectBuildingException
* </pre>
*/
void reportErrorCreatingArtifactRepository( String projectId,
File pomFile,
Repository repo,
InvalidRepositoryException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; DefaultMavenProjectBuilder.buildFromRepository(..)
* DefaultMavenProjectBuilder.build(..)
* --&gt; DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.buildInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.processProjectLogic(..) (private)
* --&gt; (model validator result)
* &lt;-- InvalidProjectModelException
* &lt;---------- ProjectBuildingException
* </pre>
*/
void reportProjectValidationFailure( MavenProject project,
File pomFile,
InvalidProjectModelException error );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; MavenProject.createArtifacts(..)
* --&gt; MavenMetadataSource.createArtifacts(..)
* &lt;-- InvalidDependencyVersionException
* &lt;-- ProjectBuildingException
* </pre>
*/
void reportBadDependencyVersion( MavenProject project,
File pomFile,
InvalidDependencyVersionException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; DefaultMavenProjectBuilder.buildFromRepository(..)
* --&gt; DefaultMavenProjectBuilder.findModelFromRepository(..) (private)
* DefaultMavenProjectBuilder.build(..)
* --&gt; DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.readModel(..) (private)
* --&gt; thrown XmlPullParserException
* &lt;------ InvalidProjectModelException
* </pre>
*/
void reportErrorParsingProjectModel( String projectId,
File pomFile,
XmlPullParserException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* ...
* --&gt; DefaultMavenProjectBuilder.buildFromRepository(..)
* --&gt; DefaultMavenProjectBuilder.findModelFromRepository(..) (private)
* DefaultMavenProjectBuilder.build(..)
* --&gt; DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
* --&gt; DefaultMavenProjectBuilder.readModel(..) (private)
* --&gt; thrown IOException
* &lt;------ InvalidProjectModelException
* </pre>
*/
void reportErrorParsingProjectModel( String projectId,
File pomFile,
IOException cause );
/**
* <b>Call Stack:</b>
* <br/>
* <pre>
* MavenEmbedder.execute(MavenExecutionRequest)
* MavenEmbedder.readProjectWithDependencies(MavenExecutionRequest)
* --&gt; DefaultMaven.execute(MavenExecutionRequest)
* --&gt; DefaultMaven.createReactorManager(MavenExecutionRequest, MavenExecutionResult)
* --&gt; new ReactorManager(List, String)
* --&gt; new ProjectSorter(List)
* &lt;----------------------- DuplicateProjectException
* </pre>
*/
void reportProjectCollision( List allProjectInstances,
DuplicateProjectException err );
}

View File

@ -1,126 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.apache.maven.model.RepositoryBase;
import org.apache.maven.execution.DuplicateProjectException;
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.validation.ModelValidationResult;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
// NOTE: The strange String[] syntax is a backward adaptation from java5 stuff, where
// I was using varargs in listOf(..). I'm not moving them to constants because I'd like
// to go back to this someday...
// TODO: Optimize the String[] instances in here to List constants, and remove listOf(..)
public final class ProjectErrorTips
{
private ProjectErrorTips()
{
}
public static List getTipsForActivatorLookupError( String projectId,
File pomFile,
Profile profile,
ComponentLookupException cause )
{
return listOf( new String[]{ "If this is a custom profile activator, please ensure the activator's "
+ "artifact is present in the POM's build/extensions list.",
"See http://maven.apache.org/pom.html#Extensions for more on build extensions.",
"XSD location for pom.xml: http://maven.apache.org/xsd/maven-4.0.0.xsd",
"XSD location for settings.xml: http://maven.apache.org/xsd/settings-1.0.0.xsd",
"XSD location for profiles.xml: http://maven.apache.org/xsd/profiles-1.0.0.xsd" } );
}
public static List getTipsForErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
IOException cause )
{
String profilesXmlPath = new File( projectDir, "profiles.xml" ).getAbsolutePath();
return listOf( new String[]{ "Please ensure the " + profilesXmlPath + " file exists and is readable." } );
}
public static List getTipsForErrorLoadingExternalProfilesFromFile( Model model,
File pomFile,
File projectDir,
XmlPullParserException cause )
{
return listOf( new String[]{ "XSD location: http://maven.apache.org/xsd/profiles-1.0.0.xsd" } );
}
public static List getTipsForInvalidRepositorySpec( RepositoryBase repo,
String projectId,
File pomFile,
InvalidRepositoryException cause )
{
return listOf( new String[]{ "See http://maven.apache.org/pom.html#Repositories for more on custom artifact repositories.",
"See http://maven.apache.org/pom.html#PluginRepositories for more on custom plugin repositories.",
"XSD location for pom.xml: http://maven.apache.org/xsd/maven-4.0.0.xsd",
"XSD location for settings.xml: http://maven.apache.org/xsd/settings-1.0.0.xsd",
"XSD location for profiles.xml: http://maven.apache.org/xsd/profiles-1.0.0.xsd" } );
}
private static List listOf( String[] tips )
{
List list = new ArrayList();
for ( int i = 0; i < tips.length; i++ )
{
list.add( tips[i] );
}
return list;
}
public static List getTipsForProjectValidationFailure( MavenProject project,
File pomFile,
ModelValidationResult validationResult )
{
// TODO Auto-generated method stub
return null;
}
public static List getTipsForBadDependencySpec( MavenProject project,
File pomFile,
Dependency dep )
{
// TODO Auto-generated method stub
return null;
}
public static List getTipsForBadNonDependencyArtifactSpec( MavenProject project,
File pomFile,
InvalidProjectVersionException cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getTipsForPomParsingError( String projectId,
File pomFile,
Exception cause )
{
// TODO Auto-generated method stub
return null;
}
public static List getTipsForDuplicateProjectError( List allProjectInstances,
DuplicateProjectException err )
{
// TODO Auto-generated method stub
return null;
}
}

View File

@ -1,33 +0,0 @@
package org.apache.maven.errors;
public final class ProjectReporterManager
{
// FIXME: This is not threadsafe!
private static ProjectErrorReporter reporter;
private ProjectReporterManager()
{
}
public static ProjectErrorReporter getReporter()
{
if ( reporter == null )
{
reporter = new DefaultProjectErrorReporter();
}
return reporter;
}
public static void setReporter( ProjectErrorReporter instance )
{
reporter = instance;
}
public static void clearReporter()
{
reporter = null;
}
}

View File

@ -22,7 +22,6 @@
import java.util.Properties;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.profiles.ProfileManager;
@ -609,8 +608,6 @@ public MavenExecutionRequest setRecursive( boolean recursive )
private Settings settings;
private CoreErrorReporter errorReporter;
private ProfileActivationContext profileActivationContext;
// calculated from request attributes.
@ -713,17 +710,6 @@ public MavenExecutionRequest clearAccumulatedBuildState()
return this;
}
public CoreErrorReporter getErrorReporter()
{
return errorReporter;
}
public MavenExecutionRequest setErrorReporter( CoreErrorReporter reporter )
{
errorReporter = reporter;
return this;
}
public ProfileActivationContext getProfileActivationContext()
{
return profileActivationContext;

View File

@ -26,7 +26,6 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.profiles.ProfileManager;
@ -227,8 +226,5 @@ public interface MavenExecutionRequest
MavenExecutionRequest clearAccumulatedBuildState();
MavenExecutionRequest setErrorReporter( CoreErrorReporter reporter );
CoreErrorReporter getErrorReporter();
ProjectBuilderConfiguration getProjectBuildingConfiguration();
}

View File

@ -31,8 +31,6 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
import org.apache.maven.lifecycle.mapping.LifecycleMapping;
import org.apache.maven.lifecycle.model.LifecycleBinding;
import org.apache.maven.lifecycle.model.LifecycleBindings;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
import org.apache.maven.model.ReportPlugin;
@ -69,14 +67,13 @@
* @author Jason van Zyl
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
@Component(role = LifecycleExecutor.class)
public class DefaultLifecycleExecutor
extends AbstractLogEnabled
implements LifecycleExecutor
{
//@Requirement
//private getLogger() getLogger();
@Requirement
private PluginManager pluginManager;
@ -86,25 +83,22 @@ public class DefaultLifecycleExecutor
private Map phaseToLifecycleMap;
public List<Lifecycle> getLifecyclePhases()
public List<String> getLifecyclePhases()
{
return lifecycles;
}
public static boolean isValidPhaseName( final String phaseName )
{
LifecycleBindings test = new LifecycleBindings();
for ( Iterator it = test.getBindingList().iterator(); it.hasNext(); )
for ( Lifecycle lifecycle : lifecycles )
{
LifecycleBinding binding = (LifecycleBinding) it.next();
if ( binding.getPhaseNamesInOrder().contains( phaseName ) )
if ( lifecycle.getId().equals( "default" ) )
{
return true;
return lifecycle.getPhases();
}
}
return false;
return null;
}
public static boolean isValidPhaseName( final String phaseName )
{
return true;
}
/**
@ -133,19 +127,13 @@ public TaskValidationResult isTaskValid( String task, MavenSession session, Mave
return new TaskValidationResult( task, "Cannot find mojo descriptor for: \'" + task + "\' - Treating as non-aggregator.", e );
}
catch ( LifecycleSpecificationException e )
catch ( LifecycleExecutionException e )
{
String message = "Invalid task '" + task + "': you must specify a valid lifecycle phase, or"
+ " a goal in the format plugin:goal or pluginGroupId:pluginArtifactId:pluginVersion:goal";
return new TaskValidationResult( task, message, e );
}
catch ( LifecycleLoaderException e )
{
String message = "Failed to load one or more lifecycle definitions which may contain task: '" + task + "'.";
return new TaskValidationResult( task, message, e );
}
catch ( InvalidPluginException e )
{
return new TaskValidationResult( task, e.getMessage(), e );
@ -164,19 +152,19 @@ public TaskValidationResult isTaskValid( String task, MavenSession session, Mave
* @throws PluginLoaderException
*/
private MojoDescriptor getMojoDescriptorForDirectInvocation( String task, MavenSession session, MavenProject project )
throws InvalidPluginException, LifecycleSpecificationException, LifecycleLoaderException, PluginLoaderException
{
throws InvalidPluginException, PluginLoaderException, LifecycleExecutionException
{
MojoDescriptor descriptor;
try
{
descriptor = getMojoDescriptor( task, session, project );
}
catch ( LifecycleExecutionException e )
{
throw new LifecycleSpecificationException( "Cannot find the specified goal.", e );
throw new LifecycleExecutionException( "Cannot find the specified goal.", e );
}
if ( descriptor == null )
{
throw new InvalidPluginException( "Plugin: " + descriptor.getId() + " does not contain referenced mojo: " + descriptor.getGoal() );
@ -535,7 +523,7 @@ private void executeGoals( List goals, Stack forkEntryPoints, MavenSession sessi
for ( Iterator i = goals.iterator(); i.hasNext(); )
{
MojoExecution mojoExecution = (MojoExecution) i.next();
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
if ( mojoDescriptor.getExecutePhase() != null || mojoDescriptor.getExecuteGoal() != null )
@ -1230,23 +1218,23 @@ private List processGoalChain( String task, Map phaseMap, Lifecycle lifecycle )
}
return goals;
}
MojoDescriptor getMojoDescriptor( String task, MavenSession session, MavenProject project )
throws LifecycleExecutionException
{
String goal;
Plugin plugin;
PluginDescriptor pluginDescriptor = null;
PluginDescriptor pluginDescriptor = null;
StringTokenizer tok = new StringTokenizer( task, ":" );
int numTokens = tok.countTokens();
int numTokens = tok.countTokens();
if ( numTokens == 2 )
{
String prefix = tok.nextToken();
goal = tok.nextToken();
// This is the case where someone has executed a single goal from the command line
// of the form:
//
@ -1255,9 +1243,9 @@ MojoDescriptor getMojoDescriptor( String task, MavenSession session, MavenProjec
// From the metadata stored on the server which has been created as part of a standard
// Maven plugin deployment we will find the right PluginDescriptor from the remote
// repository.
plugin = pluginManager.findPluginForPrefix( prefix, project, session );
if ( plugin == null )
{
plugin = new Plugin();
@ -1335,7 +1323,7 @@ else if ( numTokens == 3 || numTokens == 4 )
project.addPlugin( plugin );
MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
return mojoDescriptor;
}

View File

@ -32,7 +32,7 @@
*/
public interface LifecycleExecutor
{
List<Lifecycle> getLifecyclePhases();
List<String> getLifecyclePhases();
TaskValidationResult isTaskValid( String task, MavenSession session, MavenProject rootProject );

View File

@ -28,16 +28,7 @@ public TaskValidationResult( String invalidTask,
public TaskValidationResult( String invalidTask,
String message,
LifecycleSpecificationException cause )
{
this.invalidTask = invalidTask;
this.message = message;
this.cause = cause;
}
public TaskValidationResult( String invalidTask,
String message,
LifecycleLoaderException cause )
LifecycleExecutionException cause )
{
this.invalidTask = invalidTask;
this.message = message;

View File

@ -1,35 +0,0 @@
package org.apache.maven.errors;
import org.apache.maven.InvalidTaskException;
import org.apache.maven.lifecycle.TaskValidationResult;
import org.apache.maven.plugin.InvalidPluginException;
import junit.framework.TestCase;
public class DefaultCoreErrorReporterTest
extends TestCase
{
public void testReportInvalidPluginForDirectInvocation()
{
CoreErrorReporter reporter = new DefaultCoreErrorReporter();
InvalidPluginException err = new InvalidPluginException( "Test message" );
reporter.reportInvalidPluginForDirectInvocation( "test", null, null, err );
TaskValidationResult tvr = new TaskValidationResult( "test", "This is a test invalid task.", err );
InvalidTaskException exception = tvr.generateInvalidTaskException();
Throwable realCause = reporter.findReportedException( exception );
assertSame( err, realCause );
String message = reporter.getFormattedMessage( realCause );
System.out.println( message );
assertNotNull( message );
assertTrue( message.length() > 0 );
}
}

View File

@ -8,8 +8,6 @@
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
import org.apache.maven.model.Repository;
import org.apache.maven.plugin.MavenPluginCollector;
import org.apache.maven.plugin.MavenPluginDiscoverer;
@ -29,7 +27,6 @@
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom;
public class LifecycleExecutorTest
extends PlexusTestCase
@ -56,6 +53,11 @@ protected void setUp()
lifecycleExecutor = (DefaultLifecycleExecutor) lookup( LifecycleExecutor.class );
}
public void testLifecyclePhases()
{
assertNotNull( lifecycleExecutor.getLifecyclePhases() );
}
public void testMojoExecution()
throws Exception
{
@ -112,31 +114,7 @@ public void testMojoExecution()
assertEquals( "1.0", pd.getVersion() );
MojoExecution me = new MojoExecution( mojoDescriptor );
// for ( Plugin bp : project.getBuildPlugins() )
// {
// // The POM builder should have merged any configuration at the upper level of the plugin
// // element with the execution level configuration where our goal is.
//
// // We have our plugin
// if ( bp.getArtifactId().equals( pd.getArtifactId() ) )
// {
// // Search through executions
// for( PluginExecution e : bp.getExecutions() )
// {
// // Search though goals to match what's been asked for.
// for ( String g : e.getGoals() )
// {
// // This goal matches what's been asked for.
// if( g.equals( goal ) )
// {
// me.setConfiguration( (Xpp3Dom) e.getConfiguration() );
// }
// }
// }
// }
// }
// Need some xpath action in here. Make sure the mojoExecution configuration is intact
// Now the magical mojo descriptor is complete and I can execute the mojo.

View File

@ -12,8 +12,6 @@
import org.apache.maven.ProjectBuildFailureException;
import org.apache.maven.embedder.MavenEmbedderConsoleLogger;
import org.apache.maven.embedder.MavenEmbedderLogger;
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.errors.DefaultCoreErrorReporter;
import org.apache.maven.execution.ApplicationInformation;
import org.apache.maven.execution.DefaultRuntimeInformation;
import org.apache.maven.execution.MavenExecutionRequest;
@ -85,7 +83,7 @@ public static void logResult( MavenExecutionRequest request, MavenExecutionResul
{
Exception e = (Exception) i.next();
showError( e, request.isShowErrors(), request.getErrorReporter(), logger );
showError( e, request.isShowErrors(), logger );
}
line( logger );
@ -133,7 +131,7 @@ static void showError( String message, Exception e, boolean showErrors )
{
MavenEmbedderLogger logger = new MavenEmbedderConsoleLogger();
showError( message, e, showErrors, new DefaultCoreErrorReporter(), logger );
showError( message, e, showErrors, logger );
if ( !showErrors )
{
@ -141,9 +139,9 @@ static void showError( String message, Exception e, boolean showErrors )
}
}
private static void showError( Exception e, boolean show, CoreErrorReporter reporter, MavenEmbedderLogger logger )
private static void showError( Exception e, boolean show, MavenEmbedderLogger logger )
{
showError( null, e, show, reporter, logger );
showError( null, e, show, logger );
}
/**
@ -155,7 +153,7 @@ private static void showError( Exception e, boolean show, CoreErrorReporter repo
* @param logger
*/
//mkleint: public because used in netbeans integration
public static void showError( String message, Exception e, boolean showStackTraces, CoreErrorReporter reporter, MavenEmbedderLogger logger )
public static void showError( String message, Exception e, boolean showStackTraces, MavenEmbedderLogger logger )
{
StringWriter writer = new StringWriter();
@ -167,7 +165,7 @@ public static void showError( String message, Exception e, boolean showStackTrac
writer.write( NEWLINE );
}
buildErrorMessage( e, showStackTraces, reporter, writer );
buildErrorMessage( e, showStackTraces, writer );
writer.write( NEWLINE );
@ -182,34 +180,8 @@ public static void showError( String message, Exception e, boolean showStackTrac
logger.error( writer.toString() );
}
public static void buildErrorMessage( Exception e, boolean showStackTraces, CoreErrorReporter reporter, StringWriter writer )
{
if ( reporter != null )
{
Throwable reported = reporter.findReportedException( e );
if ( reported != null )
{
writer.write( reporter.getFormattedMessage( reported ) );
if ( showStackTraces )
{
writer.write( NEWLINE );
writer.write( NEWLINE );
Throwable cause = reporter.getRealCause( reported );
if ( cause != null )
{
cause.printStackTrace( new PrintWriter( writer ) );
}
}
writer.write( NEWLINE );
writer.write( NEWLINE );
return;
}
}
public static void buildErrorMessage( Exception e, boolean showStackTraces, StringWriter writer )
{
boolean handled = false;
if ( e instanceof ProjectBuildingException )

View File

@ -19,6 +19,8 @@
* under the License.
*/
import java.io.File;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.ParseException;
import org.apache.maven.embedder.Configuration;
@ -29,13 +31,10 @@
import org.apache.maven.embedder.MavenEmbedderException;
import org.apache.maven.embedder.MavenEmbedderFileLogger;
import org.apache.maven.embedder.MavenEmbedderLogger;
import org.apache.maven.errors.DefaultCoreErrorReporter;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
import org.codehaus.plexus.classworlds.ClassWorld;
import java.io.File;
/**
* @author jason van zyl
* @noinspection UseOfSystemOutOrSystemErr,ACCESS_STATIC_VIA_INSTANCE
@ -203,7 +202,6 @@ private Configuration buildEmbedderConfiguration( MavenExecutionRequest request,
}
Configuration configuration = new DefaultConfiguration()
.setErrorReporter( new DefaultCoreErrorReporter() )
.setUserSettingsFile( userSettingsFile )
.setGlobalSettingsFile( globalSettingsFile )
.setClassWorld( classWorld );

View File

@ -18,17 +18,16 @@
* under the License.
*/
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.realm.MavenRealmManager;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
import java.io.File;
import java.net.URL;
import java.util.List;
import java.util.Properties;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.realm.MavenRealmManager;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
/**
* Configuration of embedder, used when starting up.
*
@ -134,14 +133,6 @@ public interface Configuration
MavenRealmManager getRealmManager();
// ----------------------------------------------------------------------------
// Error Reporter
// ----------------------------------------------------------------------------
Configuration setErrorReporter( CoreErrorReporter errorReporter );
CoreErrorReporter getErrorReporter();
// ----------------------------------------------------------------------------
// Event Monitors
// ----------------------------------------------------------------------------

View File

@ -18,18 +18,17 @@
* under the License.
*/
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.realm.MavenRealmManager;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.realm.MavenRealmManager;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
/**
* Default implementation of Configuration intefrace.
*
@ -62,8 +61,6 @@ public class DefaultConfiguration
private MavenRealmManager realmManager;
private CoreErrorReporter errorReporter;
private List<EventMonitor> eventMonitors;
/** Creates a new instance of DefaultConfiguration */
@ -238,17 +235,6 @@ public Configuration setRealmManager( MavenRealmManager realmManager )
return this;
}
public CoreErrorReporter getErrorReporter()
{
return errorReporter;
}
public Configuration setErrorReporter( CoreErrorReporter errorReporter )
{
this.errorReporter = errorReporter;
return this;
}
public Configuration addEventMonitor( EventMonitor eventMonitor )
{
if ( eventMonitors == null )

View File

@ -23,42 +23,28 @@
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.net.URL;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.apache.maven.Maven;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.embedder.execution.MavenExecutionRequestPopulator;
import org.apache.maven.errors.CoreErrorReporter;
import org.apache.maven.errors.CoreReporterManager;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
import org.apache.maven.lifecycle.LifecycleUtils;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.monitor.event.DefaultEventDispatcher;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.plugin.InvalidPluginException;
import org.apache.maven.plugin.MavenPluginCollector;
import org.apache.maven.plugin.MavenPluginDiscoverer;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.PluginLoaderException;
import org.apache.maven.plugin.PluginManager;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginNotFoundException;
import org.apache.maven.plugin.PluginVersionNotFoundException;
import org.apache.maven.plugin.PluginVersionResolutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MavenProjectBuildingResult;
@ -81,11 +67,7 @@
import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.classworlds.realm.DuplicateRealmException;
import org.codehaus.plexus.classworlds.realm.NoSuchRealmException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.logging.LoggerManager;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
@ -314,11 +296,6 @@ protected void verifyPlugin( Plugin plugin, MavenProject project )
public MavenProject readProject( File mavenProject )
throws ProjectBuildingException, MavenExecutionException
{
CoreErrorReporter errorReporter = request.getErrorReporter();
errorReporter.clearErrors();
CoreReporterManager.setReporter( errorReporter );
return readProject( mavenProject, request );
}
@ -343,11 +320,6 @@ public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest r
{
request = populator.populateDefaults( request, configuration );
CoreErrorReporter errorReporter = request.getErrorReporter();
errorReporter.clearErrors();
CoreReporterManager.setReporter( errorReporter );
readProject( request.getPom(), request );
}
catch ( MavenEmbedderException e )
@ -374,9 +346,7 @@ public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest r
try
{
projectBuildingResult = mavenProjectBuilder.buildProjectWithDependencies(
request.getPom(),
request.getProjectBuildingConfiguration() );
projectBuildingResult = mavenProjectBuilder.buildProjectWithDependencies( request.getPom(), request.getProjectBuildingConfiguration() );
}
catch ( ProjectBuildingException e )
{
@ -409,21 +379,6 @@ public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest r
return result;
}
// ----------------------------------------------------------------------
// Lifecycle information
// ----------------------------------------------------------------------
public List getLifecyclePhases()
{
return getBuildLifecyclePhases();
}
public List getBuildLifecyclePhases()
{
return LifecycleUtils.getValidBuildPhaseNames();
}
// ----------------------------------------------------------------------
// Lifecycle
// ----------------------------------------------------------------------
@ -644,11 +599,6 @@ public MavenExecutionResult execute( MavenExecutionRequest request )
return result;
}
CoreErrorReporter errorReporter = request.getErrorReporter();
errorReporter.clearErrors();
CoreReporterManager.setReporter( errorReporter );
return maven.execute( request );
}
finally
@ -666,4 +616,9 @@ public PlexusContainer getPlexusContainer()
{
return container;
}
public List getLifecyclePhases()
{
return maven.getLifecyclePhases();
}
}

View File

@ -17,7 +17,6 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@ -30,7 +29,6 @@
import org.apache.maven.embedder.Configuration;
import org.apache.maven.embedder.MavenEmbedder;
import org.apache.maven.embedder.MavenEmbedderException;
import org.apache.maven.errors.DefaultCoreErrorReporter;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
@ -87,8 +85,6 @@ public MavenExecutionRequest populateDefaults( MavenExecutionRequest request, Co
{
eventing( request, configuration );
reporter( request, configuration );
executionProperties( request, configuration );
pom( request, configuration );
@ -108,21 +104,6 @@ public MavenExecutionRequest populateDefaults( MavenExecutionRequest request, Co
return request;
}
private void reporter( MavenExecutionRequest request, Configuration configuration )
{
if ( request.getErrorReporter() == null )
{
if ( configuration.getErrorReporter() != null )
{
request.setErrorReporter( configuration.getErrorReporter() );
}
else
{
request.setErrorReporter( new DefaultCoreErrorReporter() );
}
}
}
private void executionProperties( MavenExecutionRequest request, Configuration configuration )
{
Properties requestProperties = request.getProperties();

View File

@ -19,6 +19,17 @@
* under the License.
*/
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
@ -33,24 +44,12 @@
import org.apache.maven.settings.SettingsConfigurationException;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
import org.apache.maven.lifecycle.LifecycleSpecificationException;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
public class MavenEmbedderTest
extends TestCase
{
@ -301,7 +300,7 @@ public void testRetrievingLifecyclePhases()
throws Exception
{
List phases = maven.getLifecyclePhases();
assertEquals( "validate", (String) phases.get( 0 ) );
assertEquals( "initialize", (String) phases.get( 1 ) );