Commit Graph

168 Commits

Author SHA1 Message Date
John Dennis Casey da3aa1090f Resolving: MNG-666
If a v3 POM is encountered (or any POM where modelVersion is != '4.0.0'), an InvalidModelException is thrown.
This exception extends ProjectBuildingException, to enable piggybacking on the same catch() clause.
When the MavenMetadataSource catches InvalidModelException, it returns a ResolutionGroup with the pomArtifact and empty collections for the pom dependency artifacts and the repository list with which to resolve the empty artifacts set.

Also, added it0059 to test builds where a dependency POM is a v3 pom (missing <modelVersion/>).


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@239981 13f79535-47bb-0310-9956-ffa450edef68
2005-08-25 03:08:10 +00:00
John Dennis Casey f437fb5dc2 Resolving: MNG-773
o Separated profile injection logic from the inheritance assembly. While they look similar superficially, the
  merge-out vs. merge-in semantics make it pretty complex to put this logic together in the same methods. It's
  easier to understand what's going on if they remain similar but separate code...

o Added it0058 to test that application of a profile from settings.xml doesn't transport module lists from POM
  to POM inside of a reactor build.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@239918 13f79535-47bb-0310-9956-ffa450edef68
2005-08-24 20:31:29 +00:00
John Dennis Casey 252b151052 Resolving: MNG-766.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@239464 13f79535-47bb-0310-9956-ffa450edef68
2005-08-23 22:11:07 +00:00
John Dennis Casey 5d0298a942 Resolving: MNG-757 according to the comments in the issue.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@239243 13f79535-47bb-0310-9956-ffa450edef68
2005-08-22 20:31:24 +00:00
John Dennis Casey 146e022327 Resolving: MNG-251
o Added transformation manager
o snapshot timestamp/buildnumber is now managed from the transformation rather than the metadata
o maven-archiver now clones the MavenProject and resolves snapshot versions for introduction into manifest and exported pom.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@239219 13f79535-47bb-0310-9956-ffa450edef68
2005-08-22 19:00:51 +00:00
Brett Leslie Porter 932caa362a PR: MNG-729
fix artifact handler instantiation when the plugin extension is declared in a project that uses that packaging itself

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@233480 13f79535-47bb-0310-9956-ffa450edef68
2005-08-19 13:15:07 +00:00
John Dennis Casey 659a1f4736 Fixing some things:
o Artifact attachment via MavenProjectHelper was using string literals of the variables I was trying to use to fill in type and classifier (dumb, I know!)

o Source plugin didn't have an @phase for the JarSourceMojo...added, then added the goal configuration in the release profile in the super-pom

o Removed the source plugin bindings for the lifecycle mappings in maven-core

o Re-added [deprecated] method MavenProjectBuilder.build( File, ArtifactRepository, List )...you should use MavenProjectBuilder.build( File, ArtifactRepository, ProfileManager ) instead.

o Added profile handling/injection for the super-pom in two places: in buildStandaloneSuperPom() and in private build(..). This enables injection of the release profile which is provided in the super-pom.

o Added integration test to verify that using -DperformRelease=true results in the sources being attached...to override this behavior, another profile keyed on -DperformRelease could turn the 'attach' param for the source plugin off.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@233245 13f79535-47bb-0310-9956-ffa450edef68
2005-08-17 19:23:45 +00:00
John Dennis Casey 9a3085813d Working on MNG-483
o Added @requiresDirectInvocation (was: @cliOnly, but this implies m2 is run from CLI...counter-intuitive for embedding)

o Added handling for new @requiresDirectInvocation (generation/parsing, MojoDescriptor support, etc.)

o Added check in DefaultLifecycleExecutor to throw a LifecycleExecutionException if a mojo specified in a lifecycle binding is marked as direct-invocation only.

o Added MavenProjectHelper/DefaultMavenProjectHelper to provide convenience methods for manipulating MavenProject instances (for example, attaching artifacts or adding resources)

o Removed maven-artifact dependency from maven-source-plugin, and added dependency on maven-plugin-api (should've been there)



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@233021 13f79535-47bb-0310-9956-ffa450edef68
2005-08-16 18:03:20 +00:00
John Dennis Casey fe5a91b0d6 Working on: MNG-483
Fixing profile application to separate profiles discovered in and around POM from those in settings.xml, and apply them separately in the order: 

for-each-project-in-inheritance:{POM, profiles.xml}, settings.xml

Added common interface for accumulating, explicitly activating and deactivating, and retrieving profiles to be applied to a given project. This manager interface (ProfileManager) is general enough to be applicable to both the project-level and settings-level profiles.

Added 'performRelease'-keyed profile to super-POM which will be used by the release plugin and anyone using a parallel process, and which will enable '-DupdateReleaseInfo=true' for the deploy mojo, along with enabling the source attachment for the project.

Added 'attach' parameter to JarSourceMojo to allow local POM to turn off source attachments, overriding release profile in super-pom.

Updated the release:perform mojo to use '-DperformRelease=true' for switching on the new release profile, rather than just using '-DupdateReleaseInfo=true'...



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@233013 13f79535-47bb-0310-9956-ffa450edef68
2005-08-16 16:31:02 +00:00
John Dennis Casey 88d49cb04f o Improving toString for Dependency in the 4.0.0 version codeSegment in maven.mdo
o Improving error messages for ResourceDoesNotExistException in the transformations
o Adding specificity to the dependency validation stuff, to output which dependency is offending...
o Added it1013 to show off the new dependency validation stuff.


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@232399 13f79535-47bb-0310-9956-ffa450edef68
2005-08-12 21:55:00 +00:00
John Dennis Casey 155c0a69a7 Resolving: MNG-686...Moving <directory/> specification from Build to BuildBase to allow profiles inline within the POM to change this setting.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@232336 13f79535-47bb-0310-9956-ffa450edef68
2005-08-12 17:06:38 +00:00
John Dennis Casey 86321f4163 Adding comment to discourage re-adding the status inheritance.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@232178 13f79535-47bb-0310-9956-ffa450edef68
2005-08-12 01:43:36 +00:00
John Dennis Casey 0db68a8c2e Removing inheritance of status in distributionManagement.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231555 13f79535-47bb-0310-9956-ffa450edef68
2005-08-12 01:36:55 +00:00
John Dennis Casey 3408c163dc o Removed it0048, and replaced it with a unit test for the DefaultProfileInjector.
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
2005-08-11 16:46:19 +00:00
Kenney Westerhof c897fa04c1 After r231121 the <modules/> in poms were ignored. I tracked the changes,
and it was obvious: merge code didn't merge the Modules section, and possibly
other sections aswell. Also putting all normal model build info in a profile and
then copying profile data back to the model seemed odd to me. Now only
data from profiles that actually get merged is merged.


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231470 13f79535-47bb-0310-9956-ffa450edef68
2005-08-11 14:35:20 +00:00
John Dennis Casey 013d4039fb Resolving: MNG-684
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
2005-08-10 19:21:34 +00:00
John Dennis Casey acf7e6f1f8 Correcting problem with originalModel being reset inside processProjectLogic(..) in DefaultMavenProjectBuilder
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231121 13f79535-47bb-0310-9956-ffa450edef68
2005-08-09 21:44:54 +00:00
John Dennis Casey 9b92bf860e Adding better handling for originalModel in MavenProject.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@231112 13f79535-47bb-0310-9956-ffa450edef68
2005-08-09 20:56:12 +00:00
John Dennis Casey 09ebb0f615 Resolving: MNG-163
Use MavenProject.addResource(..) and .addTestResource(..) to perform this function. I've built a BuildOverlay to insulate the interpolated, initialized Model's Build instance from runtime changes to these, in a similar fashion to addCompileSourceRoots(..), because I wanted to preserve some compat with plugins using ${project.build.resources}.


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@230920 13f79535-47bb-0310-9956-ffa450edef68
2005-08-08 23:06:48 +00:00
Kenney Westerhof 2823fe4711 Solving MNG-711:
o Added a check in MavenProject.getArtifacts() to never return null,
  but an empty Set, since there's almost no checking.

o Added requiresDependencyResolution test to SurefirePlugin.


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@230827 13f79535-47bb-0310-9956-ffa450edef68
2005-08-08 17:55:21 +00:00
Brett Leslie Porter b072910ab3 make sure plugin repositories don't get used to resolve parents and dependencies
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227164 13f79535-47bb-0310-9956-ffa450edef68
2005-08-03 05:11:16 +00:00
John Dennis Casey 094a5a4312 Working on: MNG-662
o Moved extension-artifact creation and caching to MavenProject, initialized by MavenProjectBuilder, just like plugin-artifacts is.

o Added extension-artifact and report-artifact creation (and initialization in MavenProject) to MavenProjectBuilder, for consistency with plugin-artifacts

o Removed dependency on ArtifactFactory in DefaultExtensionManager (extension artifacts are reachable from MavenProject now)

This makes the process of resolving all artifacts referenced by a project much simpler and more consistent (namely, for the release plugin)


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227147 13f79535-47bb-0310-9956-ffa450edef68
2005-08-03 02:30:21 +00:00
Brett Leslie Porter 2b4a78632c not ready for this yet
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227109 13f79535-47bb-0310-9956-ffa450edef68
2005-08-02 23:16:03 +00:00
Kenney Westerhof d396f24642 o Put all m2 core dependencies (plexus-container-default and plexus-utils)
under dependencyManagement of m2 and maven-plugins, and removed
  versions in all poms having either as a parent.
  Used version 1.0.2-SNAPSHOT for plexus-utils as that was used in maven-core
  and is not overridable.

o Bumped maven-archiver version to 2.0-beta-1-SNAPSHOT for maven-ear-plugin


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227084 13f79535-47bb-0310-9956-ffa450edef68
2005-08-02 21:34:54 +00:00
Kenney Westerhof 869525558b Fixed MNG-687:
MavenProject( MavenProject ) constructor creates an unmodifyable
	attachedArtifacts, making it impossible for plugins to attach artifacts.

	This constructor is only referenced from DefaultLifeCycleExecutor
	in forkLifeCycle, so it's a safe change.


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226989 13f79535-47bb-0310-9956-ffa450edef68
2005-08-02 12:27:20 +00:00
Brett Leslie Porter ec22f0087f missed inheritence
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226819 13f79535-47bb-0310-9956-ffa450edef68
2005-08-01 15:22:47 +00:00
Brett Leslie Porter d978e51dc6 write out the generated POM to avoid a waster URL connection next time
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226541 13f79535-47bb-0310-9956-ffa450edef68
2005-07-30 16:10:01 +00:00
Brett Leslie Porter 44abb5383a don't need to check for updates on snapshot poms - that happens anyway
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226464 13f79535-47bb-0310-9956-ffa450edef68
2005-07-30 02:18:01 +00:00
John Dennis Casey dad9ebc577 o Fixing DoxiaMojo (there was an API incompatibility there, having to do with FileUtils...not sure if there is something that didn't get deployed, or what)
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
2005-07-29 23:26:42 +00:00
John Dennis Casey a6891c4e25 Adding resolved flag to Artifact.
This is done to counter the possibility that an artifact's file is set without the artifact actually being resolved, as in the case where the artifact is a snapshot version, but no snapshot-enabled repositories exist (think plugin resolution). This also has the beneficial side-effect of providing a more intuitive method of checking whether an artifact has been resolved (rather than artifact.getFile() != null).


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226333 13f79535-47bb-0310-9956-ffa450edef68
2005-07-29 03:41:02 +00:00
Brett Leslie Porter 15fef60915 helps to pass on parameters
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225784 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 14:38:18 +00:00
Brett Leslie Porter 78770ba39f ensure it gets checked
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225782 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 14:26:41 +00:00
Brett Leslie Porter 5d82fcb8a6 PR: MNG-249
also recognise transitive projects



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225780 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 14:19:03 +00:00
Brett Leslie Porter 9a86709abd PR: MNG-249
make compile and package reactor aware



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225731 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 09:32:32 +00:00
Brett Leslie Porter 85b30cf43d PR: MNG-326
take plugins, reports and extensions into account when sorting modules for reactor build

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225717 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 06:52:04 +00:00
Brett Leslie Porter 7a90482fda ibiblio only has releases
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225715 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 06:38:25 +00:00
Brett Leslie Porter 231c6a7a1d PR: MNG-615
implement repository confidence levels. currently updates poms daily if they are not deployed or verified

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225714 13f79535-47bb-0310-9956-ffa450edef68
2005-07-28 06:35:47 +00:00
Brett Leslie Porter 3288b82caa PR: MNG-664
license should be inherited

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225534 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 15:07:47 +00:00
Brett Leslie Porter 24e9ecf4a0 PR: MNG-226
make sure to merge in extension field (eg pluginManagement)

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225530 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 14:46:54 +00:00
Brett Leslie Porter eedd050414 PR: MNG-649
add classifier to dependency. it becomes part of the dependency key along with type when not null

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225524 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 14:17:41 +00:00
Brett Leslie Porter 826413b74a PR: MNG-598
allow type handlers to be specified by plugin extensions



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225477 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 08:03:33 +00:00
Brett Leslie Porter b42c7d3c66 PR: MNG-479
child repositories have precedence over parents with the same ID

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225465 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 06:20:40 +00:00
Brett Leslie Porter 8b01ca10f7 PR: MNG-226
implement extension mechanism

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225463 13f79535-47bb-0310-9956-ffa450edef68
2005-07-27 06:14:20 +00:00
John Dennis Casey 31ac06f7e2 Working on: MNG-521
o Cleaned up output from discovery of MavenProjectBuilder instance in MavenProjectTestCase.
o Added <relativePath/> to parent in maven.mdo (default value is '../pom.xml')
o Added filesystem parent-POM search using <relativePath/>...if discovered pom doesn't match the parent specification (g🅰️v), then it's not used - the parent is resolved - and search for ancestor POMs on disk goes no further.

NOTE: Next thing is to reactor-ize the release plugin, then MNG-521 should be implemented.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225379 13f79535-47bb-0310-9956-ffa450edef68
2005-07-26 19:45:45 +00:00
John Dennis Casey 73e549b231 o Fixing resolution of LATEST in plugin-versions, when <useLatest/> is enabled in plugin-registry.xml, or when --check-plugin-latest is specified on the command line.
o Fixing core-library resolution for expression: ${plugin.artifacts} and ${plugin.artifactMap} (latter is keyed by g:a)

o Modified maven-core-it-plugin to accept something like "-DartifactToFile=org.apache.maven:maven-artifact"...it'll lookup that artifact in ${plugin.artifactMap}, and touch a file that's a mutation of the abs. path for that artifact.

o Added pomArtifact to ResolutionGroup, since the MavenMetadataSource ALWAYS creates a new Artifact for a pom...this allows us to retrieve the resolved Artifact for that pom.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225234 13f79535-47bb-0310-9956-ffa450edef68
2005-07-26 05:54:24 +00:00
Brett Leslie Porter 086463b5b4 PR: MNG-456
allow separate snapshot and release repositories
deprecate existing snapshotPolicy and checksumPolicy in favour of updatePolicy and checksumPolicy within the <releases> and <snapshots> elements in the <repository> element.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@224707 13f79535-47bb-0310-9956-ffa450edef68
2005-07-25 09:51:12 +00:00
John Dennis Casey 701ef520a3 Working on MNG-607
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
2005-07-22 22:07:28 +00:00
Brett Leslie Porter 17fa8ba4ea PR: MNG-581
Submitted by: Kris Bravo
Reviewed by:  Brett Porter
add classes directory to compile classpath as some classes are produced during generate-sources to pass to the compiler for XML beans


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@224367 13f79535-47bb-0310-9956-ffa450edef68
2005-07-22 17:00:22 +00:00
Brett Leslie Porter fd615cbeea PR: MNG-579
correct inclusion of tlds

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@224365 13f79535-47bb-0310-9956-ffa450edef68
2005-07-22 16:51:09 +00:00
Brett Leslie Porter bb79e8614d tidy up
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@220350 13f79535-47bb-0310-9956-ffa450edef68
2005-07-22 15:42:16 +00:00