Author: jdcasey
Date: Sun Sep 25 08:03:59 2005
New Revision: 291422
URL: http://svn.apache.org/viewcvs?rev=291422&view=rev
Log:
Adding validation of @requiresProject and @requiresOnline to
PluginManager.executeMojo(..), in order to centrally block mojos from executing
under the wrong conditions.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=291422&r1=291421&r2=291422&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Sun Sep 25 08:03:59 2005
@@ -153,6 +153,7 @@
ProfileManager globalProfileManager =
request.getGlobalProfileManager();
+ boolean foundProjects = true;
try
{
loadSettingsProfiles( globalProfileManager, request.getSettings()
);
@@ -169,6 +170,8 @@
{
MavenProject superProject =
projectBuilder.buildStandaloneSuperProject( request.getLocalRepository() );
projects.add( superProject );
+
+ foundProjects = false;
}
rm = new ReactorManager( projects );
@@ -204,6 +207,8 @@
try
{
MavenSession session = createSession( request, rm );
+
+ session.setUsingPOMsFromFilesystem( foundProjects );
try
{
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=291422&r1=291421&r2=291422&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
Sun Sep 25 08:03:59 2005
@@ -46,6 +46,8 @@
private final String executionRootDir;
+ private boolean usingPOMsFromFilesystem;
+
public MavenSession( PlexusContainer container, Settings settings,
ArtifactRepository localRepository,
EventDispatcher eventDispatcher, ReactorManager rpm,
List goals, String executionRootDir )
{
@@ -125,5 +127,15 @@
public String getExecutionRootDirectory()
{
return executionRootDir;
+ }
+
+ public void setUsingPOMsFromFilesystem( boolean usingPOMsFromFilesystem )
+ {
+ this.usingPOMsFromFilesystem = usingPOMsFromFilesystem;
+ }
+
+ public boolean isUsingPOMsFromFilesystem()
+ {
+ return usingPOMsFromFilesystem;
}
}
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=291422&r1=291421&r2=291422&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Sun Sep 25 08:03:59 2005
@@ -310,6 +310,19 @@
throws ArtifactResolutionException, PluginManagerException,
MojoExecutionException
{
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+ // NOTE: I'm putting these checks in here, since this is the central
point of access for
+ // anything that wants to execute a mojo.
+ if( mojoDescriptor.isProjectRequired() &&
!session.isUsingPOMsFromFilesystem() )
+ {
+ throw new MojoExecutionException( "Cannot execute mojo: " +
mojoDescriptor.getGoal() + ". It requires a project, but the build is not using
one." );
+ }
+
+ if ( mojoDescriptor.isOnlineRequired() &&
session.getSettings().isOffline() )
+ {
+ // TODO: Should we error out, or simply warn and skip??
+ throw new MojoExecutionException( "Mojo: " +
mojoDescriptor.getGoal() + " requires online mode for execution. Maven is
currently offline." );
+ }
if ( mojoDescriptor.isDependencyResolutionRequired() != null )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]