tree eaab2bdffd6fb127a1000d1ed8b4b41e662f4cb2
parent 08bada50f719aed5354d275dfed07e7bd2987dbf
author Jason van Zyl <jvanzyl@apache.org> 1217831975 +0000
committer Sylwester Lachiewicz <slachiewicz@apache.org> 1591962841 +0200

Historic document about Maven 2.1.x plans - squashed maven-2.1-doco branch

o starting collecting the wiki, apt, and oo3 doco that has been floating around and align it all and present a workable plan
all proposals - many of which have implementations

o first pass at cleaning out what's in confluence and integrate it into main document
o need clarify with john and brian about profile activators and file based repositories and mirrors (i think this was 2.0.x)

o first pass at elimination cruft and adding the information i have. no time now to finish. will do it tonight.

o markup the use cases for custom component loading, I think the biggest drivers here are IDE integration and Tycho currently. Loading
  a custom set of components based on the type of build that you want to perform. It's not just a packaging kicking in a bunch of
  plugins but we actually need to change the artifact resolver in this case.

o mercury rationalization and explanation of the problems and the solution

backward compatibility section

we have to know how all this is intended to work

add igors use case for project type determination in eclipse

note about geoip and distributing the load

adding log talking about plugin testing as an aid to testing 2.1 plugin execution compatibility with 2.0.x

some things to capture before going to list to ask for comments

adding 2.1 scratchpad bits not in my document

add backward compat info from wiki

comment from kenney about backward compat

link to project builder arch doc, updated todos
