Resolving MNG-488
o Brought the metadata tags for marmalade mojos up to snuff with the java-mojo annotations
o Added @aggregator annotation ( <aggregator>true</aggregator> in marmalade) for mojos
o Added support for aggregator flag throughout plugin-descriptor, generator, and builder.
More commits to follow...
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226329 13f79535-47bb-0310-9956-ffa450edef68
o Changed MavenMetadataSource to a component, to avoid having to lookup artifactFactory and projectBuilder in order to
construct it.
o Added add(..) method to ScmBean in the release plugin to allow addition of release-pom.xml
o Changed the PrepareReleaseMojo to resolve ONLY version and parent-version for the normal pom.xml, and fully resolve all
artifacts used in the release-pom.xml, including version, parent-version, dependency closure (given by project.getArtifacts()), plugins, and reports. It will then add the release-pom.xml, and (attempt to) delete it before performing the final commit for next development version.
o Added some mapping methods to ArtifactUtils, to key by artifact.getId, and to create an Artifact.getId()-compatible string from parameters.
o Added TestProjectBuilder to remove the requirement in ProjectClasspathTest to modify the fields of the project builder directly.
o Cleaned up the AbstractReleaseMojo and PrepareReleaseMojo to avoid container lookups...they're now mojo parameters with the 'component.' prefix.
NOTE: Next step is to figure out how to use maven-scm to remove an SCM resource, to enable the prepare mojo to take the release-pom.xml back out of HEAD after the tag is complete.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@224413 13f79535-47bb-0310-9956-ffa450edef68
allow a plugin to specify the minimum Maven version (will apply for both building and its execution - this should be separated later).
If you are running an older version then it will not prompt to update when found, and will fail if it is encountered with a hardcoded version.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@220239 13f79535-47bb-0310-9956-ffa450edef68
To use the new artifact map for either the project or the current plugin from your mojo, simply use one of the following expressions:
${plugin.artifactMap}
${project.artifactMap}
The artifacts in these maps are keyed using org.apache.maven.artifact.ArtifactUtils.versionlessKey( String groupId, String artifactId ) (found in the maven-artifact project).
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@219234 13f79535-47bb-0310-9956-ffa450edef68
split artifact impl from api so that dep resolution can be used independently of wagon
only the first step in making maven-artifact more useful as a public api - more changes to be made
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191634 13f79535-47bb-0310-9956-ffa450edef68
add @execute phase|lifecycle doclet tag for java and beanshell
not sure how this would be configured for marmalade - will leave this for a once over of marmalade wrt the mojo api later
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191385 13f79535-47bb-0310-9956-ffa450edef68
This fixed a couple of bugs along the way.
One change that this has brought to bear from the document is you now must specify a goal for it to be bound to the LC
(see it0008)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191285 13f79535-47bb-0310-9956-ffa450edef68
o Adding @phase declarations for those mojos that seem to be part of the main build, just for completeness
o Added two ITs, to test that <executions/> doesn't mess up the normal operation, and to test multi-execution for a goal.
Should resolve: MNG-172.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190335 13f79535-47bb-0310-9956-ffa450edef68
move default value into configuration, rather than relying on Java. More convenient for other languages, and allows us to validate/document it. Cleaned up the plugin manager handling. More should be pushed into plexus proper.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@188647 13f79535-47bb-0310-9956-ffa450edef68
o Moved marmalade support dependencies out of maven-core, since they can be supported on demand now
o changed the ordering of the ant and assembly plugins, to show that the classloader (plugin param) bug is fixed.
o added a method in PluginDescriptor which is similar to o.a.m.model.Plugin.getId() (I think that's the method; it's the one that results in a key of 'g:a')
o moved wagon-ssh dependency into maven-core, since there is a new issue related to nested containers and wagons which are introduced as plugin dependencies. This should be solved using a mechanism similar to plugin-manager for wagon-manager impl in future anyway
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@187639 13f79535-47bb-0310-9956-ffa450edef68
o changed the semantics of when the unsetInheritanceApplied() method is called...it's now only when <inherit/> is NOT set.
o changed the default inheritByDefault attribute on MojoDescriptor to be true
o added inheritByDefault to PluginDescriptor (even though we don't have tools supporting it yet), with semantics identical to MojoDescriptor
o added generator/builder support for the inheritByDefault attribute of PluginDescriptor
o added calculation of inheritanceApplied || inheritByDefault to lifecycle executor before allowing plugins/mojos to bind.
o Everything builds, but we need some sort of IT to test the finer points.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@178836 13f79535-47bb-0310-9956-ffa450edef68
o Added annotation inheritedByDefault (looks like: @inheritedByDefault true|false) for java mojos
o Added support for inheritedByDefault to MojoDescriptor, descriptor generator and builder
o Factored the plugin combinatorial logic into ModelUtils in o.a.m.project, for later reuse in a plugin-aware model inheritance builder
o Refactored the DefaultModelDefaultsInjector to use the new ModelUtils for plugin merging (this is factored into a utility for reuse in inheritance assembly)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@178733 13f79535-47bb-0310-9956-ffa450edef68
o Added concept of ErrorDiagnoser to help interpret errors and provide user feedback
o Added PluginParameterException to provide richer information than simply PluginConfigurationException (it's derived from PluginConfigurationException)
o Added implementations of ErrorDiagnoser for artifact resolution and plugin configuration handling.
o Modified DefaultMaven's logFailure(..) method to use errorDiagnosers Map (injected via Plexus)
I approached the plugin parameter expression/name feedback in this way, as it seems like a general pattern for interpreting errors without embedding this logic deep within the app itself. Feel free to rollback if this causes issues.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@169379 13f79535-47bb-0310-9956-ffa450edef68
o changed the exception(s) throws during mojo descriptor extraction to be derivatives of InvalidPluginDescriptorException
o changed PluginConfigurationException in plugin.descriptor to InvalidPluginDescriptorException
o changed all "true".equals(something) to Boolean.valueOf(something).booleanValue()
o added validation of 'modelVersion' back to [Default]ModelValidator
o Fixed/added tests for new 'modelVersion' validation
o changed all requiresXXX in MojoDescriptor to XXXRequired, and getRequiresXXX():boolean to isXXXRequired():boolean to help maintain bean-ness for future use
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@168630 13f79535-47bb-0310-9956-ffa450edef68
o Converted all "core" plugins (including maven-core-it-plugin) to use field-level annotations
o Removed generation of parameter descriptors for ${/#component.* param specifications.
o Added @readonly for parameters that cannot be overridden by user configuration (List override was dangerous here)
o Added validation against pom-derived configuration for @readonly parameters
o Fixed @parameter alias="" support...now configuration of the mojo instance actually will work with either the real param name or the alias. Would be nice to support multiple aliases, but that might require @alias annotations...
o Added [temporary?] support for null editable attributes for parameters, to support pre-built mojos from the repo.
Annotation support should be just about ready to go...
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@165224 13f79535-47bb-0310-9956-ffa450edef68
Add the ability for a mojo to "fork" a phase execution, in a separate iteration of the lifecycle.
Add @executePhase generate-sources to idea:idea
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@164930 13f79535-47bb-0310-9956-ffa450edef68
o Added code to cache the active proxy and profile inside the Settings instance for quicker lookup.
o Added a method to initialize a new active profile for a Settings instance in the event one didn't exist.
o Started adding offline mode. So far, I've implemented:
- Warning when a mojo declares a requirement for connectivity, but we're offline.
- INFO message stating when maven is running in offline mode.
- Addition to the Profile class in o.a.m.settings package to allow specification of offline mode by declaring: <offline>true</offline>
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163969 13f79535-47bb-0310-9956-ffa450edef68