o Reverted the logic of the DefaultProfileInjector to merge-and-override the model, with the profile being dominant
o Added merging for distributionManagement and modules (conditionally, based on flag) in the modelBase merge
o Refactored the override logic into a couple of methods in ModelUtils to make it easier to understand what's going on here.
o Verified that both the build and the model itself are being merged correctly during profile injection, with profile dominance, but persistence of changes to the model.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231481 13f79535-47bb-0310-9956-ffa450edef68
o Split profile injection out into its own component away from the defaults assembler
o Moved code common to the defaults assembler and the profile injector into ModelUtils
o Removed the profile-related method from ModelIntheritanceAssembler
o added it0048 to test that profile values will override POM values.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231294 13f79535-47bb-0310-9956-ffa450edef68
o Modified the PluginMappingDeployMojo in maven-plugin-plugin to always deploy the plugins.xml regardless. This may be a bit heavy, but it avoids the snag with the plugins.xml being detected in the local repository after the install phase runs...plugin mappings weren't making it to the repository during deploy.
o Added a new series of IT: it2xxx which will be tests that require more than a single maven invocation, and will be run via shell script, at least for now. This one builds and deploys a plugin, then attempts to use the plugin by referencing the prefix mapping in the (non-central) remote repository.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231058 13f79535-47bb-0310-9956-ffa450edef68
o Added --fail-fast --fail-at-end --fail-never CLI options, with appropriate summary and exclusion of dependent projects from the build when --fail-at-end is specified. Also, implemented it0046 and it1011 to test it.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227490 13f79535-47bb-0310-9956-ffa450edef68
o Adding cli-options.txt for three ITs that failed when I cleaned out the local repo
o Fixing the setFile(..) method of ActiveProjectArtifact (hopefully) for Emmanuel's continuum build problem...
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226426 13f79535-47bb-0310-9956-ffa450edef68
o Added lines in it0015 and it0020 prebuild-hooks to remove the IT plugins before executing, to avoid weird, intermittent Zip exceptions.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226330 13f79535-47bb-0310-9956-ffa450edef68
implement ability to retrieve packaging handlers (lifecycle mappings) from extension plugins. Remove plugin mapping
metadata for the same
integration tests are in place for type handlers but commented out until implemented (41)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225263 13f79535-47bb-0310-9956-ffa450edef68
o Added '-f' CLI option, to allow use of non-standard pom files, or spawning of a build from outside of the project dir.
o Added preferential processing of release-pom.xml over pom.xml if it exists (assumes that the current checkout is a release of the software)
o Moved all file discovery from MavenCli to DefaultMaven, to allow embedders to have access to this logic.
o Modified MavenExecutionRequest to add a flag for reactor-activation and the name of a non-standard pom to use, if appropriate.
o Removed getFiles() and getProjectFiles() from MavenExecutionRequest, since file discovery is now done in the DefaultMaven.
o Added integration tests to check preference of release-pom.xml in standalone and '-r' mode
o Added integration tests to check usage of '-f' option within and outside of the project directory
o Added processing for cli-options.txt to maven-core-it-verifier (Verifier.java) to allow specification of '-f' and '-r' in tests
NOTE: the release plugin still doesn't correctly remove the release-pom.xml from HEAD/trunk, since I don't have access to the SCM remove command from maven-scm. I'm waiting for Emmanuel to finish some API changes before moving to the new maven-scm version, and implementing this final step.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225226 13f79535-47bb-0310-9956-ffa450edef68
Now, in order to build a maven plugin, you need two things:
1. a repository defined in distributionManagment
2. a repository defined in <repositories/> which has the same id as the one in distributionManagement.
This is necessary, since in most cases SSH will be used in the distributionManagement definition for uploading the plugin...which means that the download of the existing plugins.xml file might not be available for users trying to run an install. SSH requires authentication information, and users (particularly those running the bootstrap) might not have this auth info.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@216013 13f79535-47bb-0310-9956-ffa450edef68
o Added check for null child pluginManagement section, and setting to parent value if null.
o Added integration test for parent->child pluginManagement inheritance and injection, to prevent regressions.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@201693 13f79535-47bb-0310-9956-ffa450edef68
o Changed getExecutionsAsMap() in Plugin (within maven.mdo) to throw an IllegalStateException if two PluginExecutions are detected with the same id. This method should always be called during inheritance assembly...
o Changed PluginExecution's id field to have a defaultValue of 'default' within maven.mdo.
NOTE: It may be necessary to double-check the id-collision within MavenProjectBuilder, in case there is no inheritance of plugins...I'll add this, and follow this commit momentarily.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191620 13f79535-47bb-0310-9956-ffa450edef68
o Adding extraction of mojo-specific configuration from the merged config for the plugin
o Warning at the DEBUG log-level for unused plugin configuration during the extraction process above
o Added integration test it0028 to test with unused plugin configuration present.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191552 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 Added support for -Dmaven.repo.local command line override of the local repo
o Propagating local repository location (either maven.repo.local, or from settings.xml) to ITs in Verifier
o Re-enabled it0023 and it0026
o Removed warning in README.txt for maven-core-it.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191163 13f79535-47bb-0310-9956-ffa450edef68
refactor artifact creation to all go through the factory, and assign the type handler from there.
Attach EJB client to the EJB artifact so that it is installed/deployed along with it.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191096 13f79535-47bb-0310-9956-ffa450edef68
Added specified stop-gap patch for issue: MNG-473 (affects settings-builder and registry-builder)
Today I've made the following progress on this so far:
- Added a new project, called maven-plugin-registry, to house the model for this new file.
- Developed/debugged/tested PluginVersionManager/DefaultPluginVersionManager to isolate the plugin-version checks/management code away from the PluginManager
- Added interactiveMode (<interactiveMode>true|false</interactiveMode> directly under the root element of settings.xml, or -B short CLI option or --batch-mode CLI option, where the CLI options turn OFF interactiveMode). This will allow things like the maven-plugins build to register new plugins (and, for now, new versions of plugins) automatically.
- Added user input handler for when interactiveMode = true, to get a yes/no on whether to use the discovered version over the installed version and/or no version at all. If there is no installed version, and the user selects 'n', then the discovered version is used FOR THAT SESSION ONLY, and won't be recorded in the registry.
- Added checks/recording rejected versions against the registry, before attempting to use the discovered version.
Pending:
- Still need to add update-policies, to determine two things:
1. how often to check for updates
2. what to do when updates are found (autoUpdate, etc.)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190854 13f79535-47bb-0310-9956-ffa450edef68
o Adding support for global (installation-level) settings.xml file which is identical to the one in ~/.m2, and which will be overridden by user-level settings. The default location for this is ${maven.home}/settings.xml.
o Adding IT to test merging of global- and user-level settings.xml files
o Moved DefaultMavenSettingsBuilder/MavenSettingsBuilder to maven-settings project, to make them more generally available (to ant, for instance)
Resolves issue: MNG-294
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190517 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
This will mean implementing -D -> sys property handling in mboot and verifier to allow passing of sys props on the command line if that is needed again
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@188655 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
Rolled back the changes to suppress usage of the cached model in MavenMetadataSource. Restored original functionality, to pre- last revision.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163848 13f79535-47bb-0310-9956-ffa450edef68
change type of maven plugins to "maven-plugin" instead of plugin.
This should allow other products to have different plugin types, if necessary.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163562 13f79535-47bb-0310-9956-ffa450edef68
o Added ArtifactRepositoryFactory stuff to construct with AuthenticationInfo if possible.
o Added UserModelBuilder stuff for componentizing UserModel construction.
-> DefaultUserModelBuilder has a configuration point 'userModelPath' which can redirect where it reads user.xml from (${user.home} is substitutable here).
o Added warning message to deployment plugin when deployment repo has no authentication info available.
o Added warning message for repos with null <id/> (auth info cannot be assigned here).
o Added a couple of debug-level messages for aid in debugging repo- and userModel-related problems.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163558 13f79535-47bb-0310-9956-ffa450edef68
o Fixed problems with plugin-plugin (had to do with refactored plugin-tools stuff)
o Added marmalade-mojo support, although without an integration test (verified it doesn't get in the way of 'normal' functionality, though)
o Added code in mboot2 to copy marmalade-mojo support libs to ${maven.home}/lib
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163405 13f79535-47bb-0310-9956-ffa450edef68
in most cases this amounts to changing
"jar:jar" -> "package"
"jar:install" -> "install"
"compiler:compile" -> "compile"
and I also disabled the tests for pre/post goals as we aren't going
to use those anymore (hopefully).
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163358 13f79535-47bb-0310-9956-ffa450edef68
o Moved ReflectionProjectValueExtractor into o.a.m.util package and renamed to ReflectionValueExtractor
o Added unit tests for interpolation
o Added integration test for interpolation
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163335 13f79535-47bb-0310-9956-ffa450edef68
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68