Hi Shane,

This looks like a pretty positive step. Is the code on your branch for MNG-3536 an implementation of this? How far along is it?

I have some questions. Bear in mind it's late on Friday, so I may just be a bit slow :)

- how many classes is the typical model assembly going to take? Given how frequently they are run - the addition of ModelProperty and ModelContainer objects in addition to the domain model classes could be quite a lot?
- how are maps handled by #collection?
- it'd be good to keep the URI we currently use for the model as a base
- what happens when you have a collection in a collection? eg project/ build/pluginManagement/plugins/plugin/dependencies/dependency/ exclusions#collection - the removal of reflection seems positive - though this is effectively done by the data source implementation of queryFor now - right? So we'd generate one of them for the domain model?
- should system property policy be "context" policy instead?
- the definition of profiles was covered quite briefly - is this the same behaviour as present? This has become possibly the most complicated part of the current builder and worth visiting in more detail. - what does "2. For (A), (C-F), : values..." mean? What is (a), (C-F) referring to? - I found the *management rules (3 and 4) to be incomplete - they only refer to merging in missing versions based on a/g id. Dependencies have additional ID components, and there are other elements in the container that need to merge. I think you can drop the "does not contain a version" part, and essentially join the most specialised *management container with the same coordinate (g:a for plugin, g:a:c:t for dependency) last - how does this interpolation relate to John's proposal? Do we need to interpolate plugin configuration only at execution time? - how does this change in the method of interpolation relate to the population of plugin configuration in the first place - given that still uses the original expression evaluator for things outside the project?
- are we disposing of the "inherited" flag for plugins?
- for the latter rules:
(7) why do we allow multiple extension versions?
(8) why delete the whole plugin container if a version differs?
(10) what are the rules for configuration under an execution / plugin? Or is this still left up to the plugin manager to merge? - how do the URIs relate to the eventual XML marshalling, particularly in the case of extending the model? - how does the versioning work? If the URIs have a different base, won't they refuse to join any elements under this approach? Or is it expected to transform v1 to v2 first, then process them all as v2?

One thing I'd be interested to see is why each bit was introduced in terms of problems we're solving.

Cheers,
Brett

On 07/06/2008, at 7:44 AM, Shane Isbell wrote:

I've created proposal for the maven-project module in 2.1:
http://docs.codehaus.org/display/MAVENUSER/Maven+Project

Thanks,
Shane

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to