You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/11/27 20:55:08 UTC
svn commit: r598748 [2/2] - in /maven/components/trunk: maven-embedder/
maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/
maven-embedder/src/main/java/org/apache/maven/cli/
maven-embedder/src/test/java/org/apache/maven/cli/ maven-project/...
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java?rev=598748&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java Tue Nov 27 11:55:04 2007
@@ -0,0 +1,307 @@
+package org.apache.maven.project.error;
+
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.UnknownRepositoryLayoutException;
+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.activation.ProfileActivationContext;
+import org.apache.maven.profiles.activation.ProfileActivationException;
+import org.apache.maven.profiles.activation.ProfileActivator;
+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.apache.maven.project.interpolation.ModelInterpolationException;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+
+public interface ProjectErrorReporter
+{
+
+ String NEWLINE = "\n";
+
+ void clearErrors();
+
+ String getFormattedMessage( Throwable error );
+
+ Throwable getRealCause( Throwable error );
+
+ Throwable findReportedException( Throwable error );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ * --> DefaultProfileAdvisor.applyActivatedProfiles(..) (private)
+ * --> DefaultProfileManager.getActiveProfiles(..)
+ * --> DefaultProfileManager.isActive(..) (private)
+ * --> ProfileActivator.canDetermineActivation(..)
+ * --> ProfileActivator.isActive(..)
+ * <------ ProfileActivationException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportActivatorErrorWhileApplyingProfiles( ProfileActivator activator,
+ Model model,
+ File pomFile,
+ Profile profile,
+ ProfileActivationContext context,
+ ProfileActivationException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ * --> DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ * --> DefaultProfileManager.getActiveProfiles(..)
+ * --> DefaultProfileManager.isActive(..) (private)
+ * --> ProfileActivator.canDetermineActivation(..)
+ * --> ProfileActivator.isActive(..)
+ * <------ ProfileActivationException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportActivatorErrorWhileGettingRepositoriesFromProfiles( ProfileActivator activator,
+ String projectId,
+ File pomFile,
+ Profile profile,
+ ProfileActivationContext context,
+ ProfileActivationException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ * --> DefaultProfileAdvisor.applyActivatedProfiles(..) (private)
+ * --> DefaultProfileManager.getActiveProfiles(..)
+ * --> DefaultProfileManager.isActive(..) (private)
+ * --> PlexusContainer.lookupList(..)
+ * <-- ComponentLookupException
+ * <-- ProfileActivationException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportActivatorLookupErrorWhileApplyingProfiles( Model model,
+ File pomFile,
+ Profile profile,
+ ComponentLookupException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ * --> DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ * --> DefaultProfileManager.getActiveProfiles(..)
+ * --> DefaultProfileManager.isActive(..) (private)
+ * --> PlexusContainer.lookupList(..)
+ * <-- ComponentLookupException
+ * <-- ProfileActivationException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportActivatorLookupErrorWhileGettingRepositoriesFromProfiles( String projectId,
+ File pomFile,
+ Profile profile,
+ ComponentLookupException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ * --> DefaultProfileAdvisor.buildProfileManager(..) (private)
+ * --> DefaultProfileAdvisor.loadExternalProjectProfiles(..) (private)
+ * --> MavenProfilesBuilder.buildProfiles(..)
+ * <-- IOException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorLoadingExternalProfilesFromFile( Model model,
+ File pomFile,
+ File projectDir,
+ IOException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ * --> DefaultProfileAdvisor.buildProfileManager(..) (private)
+ * --> DefaultProfileAdvisor.loadExternalProjectProfiles(..) (private)
+ * --> MavenProfilesBuilder.buildProfiles(..)
+ * <-- XmlPullParserException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorLoadingExternalProfilesFromFile( Model model,
+ File pomFile,
+ File projectDir,
+ XmlPullParserException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * DefaultProfileAdvisor.applyActivatedProfiles(..)
+ * DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ * --> DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ * --> MavenTools.buildArtifactRepository(..)
+ * <-- InvalidRepositoryException
+ * <-- ProjectBuildingException
+ * </pre>
+ */
+ void reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( Repository repo,
+ String projectId,
+ File pomFile,
+ InvalidRepositoryException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.processProjectLogic(..) (private)
+ * --> DefaultMavenTools.buildDeploymentArtifactRepository(..)
+ * <-- UnknownRepositoryLayoutException
+ * <-------- ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorCreatingDeploymentArtifactRepository( MavenProject project,
+ File pomFile,
+ DeploymentRepository repo,
+ UnknownRepositoryLayoutException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.processProjectLogic(..) (private)
+ * --> DefaultMavenTools.buildArtifactRepositories(..)
+ * --> DefaultMavenTools.buildArtifactRepository(..)
+ * <------ UnknownRepositoryLayoutException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorCreatingArtifactRepository( MavenProject project,
+ File pomFile,
+ Repository repo,
+ UnknownRepositoryLayoutException cause,
+ boolean isPluginRepo );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.processProjectLogic(..) (private)
+ * --> ModelInterpolator.interpolate(..)
+ * <-- ModelInterpolationException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorInterpolatingModel( MavenProject project,
+ File pomFile,
+ ModelInterpolationException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.processProjectLogic(..) (private)
+ * --> DefaultMavenProjectBuilder.createPluginArtifacts(..)
+ * --> DefaultMavenProjectBuilder.createReportArtifacts(..)
+ * --> DefaultMavenProjectBuilder.createExtensionArtifacts(..)
+ * <-- InvalidProjectVersionException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportBadNonDependencyProjectArtifactVersion( MavenProject project,
+ File pomFile,
+ InvalidProjectVersionException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.processProjectLogic(..) (private)
+ * --> (model validator result)
+ * <-- InvalidProjectModelException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportProjectValidationFailure( MavenProject project,
+ File pomFile,
+ InvalidProjectModelException error );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.buildInternal(..) (private)
+ * --> DefaultMavenProjectBuilder.createManagedVersionMap(..) (private)
+ * <-- InvalidDependencyVersionException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportBadManagedDependencyVersion( MavenProject projectBeingBuilt,
+ File pomFile,
+ InvalidDependencyVersionException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> MavenProject.createArtifacts(..)
+ * --> MavenMetadataSource.createArtifacts(..)
+ * <-- InvalidDependencyVersionException
+ * <-- ProjectBuildingException
+ * </pre>
+ */
+ void reportBadDependencyVersion( MavenProject project,
+ File pomFile,
+ InvalidDependencyVersionException cause );
+
+}
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java?rev=598748&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java Tue Nov 27 11:55:04 2007
@@ -0,0 +1,157 @@
+package org.apache.maven.project.error;
+
+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.profiles.activation.ProfileActivationContext;
+import org.apache.maven.profiles.activation.ProfileActivationException;
+import org.apache.maven.profiles.activation.ProfileActivator;
+import org.apache.maven.project.InvalidProjectVersionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.interpolation.ModelInterpolationException;
+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;
+
+public final class ProjectErrorTips
+{
+
+ private ProjectErrorTips()
+ {
+ }
+
+ public static List<String> getTipsForActivatorErrorWhileApplyingProfiles( ProfileActivator activator,
+ Model model,
+ File pomFile,
+ Profile profile,
+ ProfileActivationContext context,
+ ProfileActivationException cause )
+ {
+ return listOf( "If this is a standard profile activator, see "
+ + "http://maven.apache.org/pom.html#Activation for help configuring profile activation.",
+ "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<String> getTipsForActivatorErrorWhileGettingRepositoriesFromProfiles( ProfileActivator activator,
+ String projectId,
+ File pomFile,
+ Profile profile,
+ ProfileActivationContext context,
+ ProfileActivationException cause )
+ {
+ return listOf( "If this is a standard profile activator, see "
+ + "http://maven.apache.org/pom.html#Activation for help configuring profile activation.",
+ "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<String> getTipsForActivatorLookupErrorWhileApplyingProfiles( Model model,
+ File pomFile,
+ Profile profile,
+ ComponentLookupException cause )
+ {
+ return listOf( "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<String> getTipsForActivatorLookupErrorWhileGettingRepositoriesFromProfiles( String projectId,
+ File pomFile,
+ Profile profile,
+ ComponentLookupException cause )
+ {
+ return listOf( "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<String> getTipsForErrorLoadingExternalProfilesFromFile( Model model,
+ File pomFile,
+ File projectDir,
+ IOException cause )
+ {
+ String profilesXmlPath = new File( projectDir, "profiles.xml" ).getAbsolutePath();
+
+ return listOf( "Please ensure the " + profilesXmlPath + " file exists and is readable." );
+ }
+
+ public static List<String> getTipsForErrorLoadingExternalProfilesFromFile( Model model,
+ File pomFile,
+ File projectDir,
+ XmlPullParserException cause )
+ {
+ return listOf( "XSD location: http://maven.apache.org/xsd/profiles-1.0.0.xsd" );
+ }
+
+ public static List<String> getTipsForInvalidRepositorySpec( RepositoryBase repo,
+ String projectId,
+ File pomFile,
+ InvalidRepositoryException cause )
+ {
+ return listOf( "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<String> listOf( String... tips )
+ {
+ List<String> list = new ArrayList<String>();
+
+ for ( String tip : tips )
+ {
+ list.add( tip );
+ }
+
+ return list;
+ }
+
+ public static List<String> getTipsForProjectValidationFailure( MavenProject project,
+ File pomFile,
+ ModelValidationResult validationResult )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static List<String> getTipsForBadDependencySpec( MavenProject project,
+ File pomFile,
+ Dependency dep )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static List<String> getTipsForBadNonDependencyArtifactSpec( MavenProject project,
+ File pomFile,
+ InvalidProjectVersionException cause )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static List<String> getTipsForProjectInterpolationError( MavenProject project,
+ File pomFile,
+ ModelInterpolationException cause )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"