On Aug 27, 2008, at 1:03 PM, Joe Bohn wrote:
One more question below
Joe Bohn wrote:
David,
I tried your recommendation for using the commonInstance with lots
of ${} variables. It seems to be working well - thanks! At the
moment I've added entries to map 2.1, 2.1.1, and 2.1.2 to the
current release.
I still have some questions though that I think you can help me with:
1) I didn't include "server=client". My understanding is that this
adds the entry to the client-artifact-aliases file which would not
be desirable - right?
2) What should I do about the client aliases? Would it make sense
to add specific artifact-aliases entries to the relatively few
client cars with server=client specified? My understanding is that
c-m-p will skip adding the commonInstance entries if specific
artifact-alias entries are included.
3) It would be nice if I could add some more commonInstance entries
in /plugins/client/pom.xml but I've seen comments that multiple
nested entries have issues. Do you know if that is the case?
4) There is already an artifact-alias entry for j2ee-server mapping
from a null version to the current version. Do you know why this
is needed? Can we either remove it or perhaps include it in
commonInstance so that all modules have a mapping of // to the
current version?
I guess that fixes the version so that after this plugin is installed,
c-m-p wont try to pull in later versions even if you are assembling a
server from a repo with later versions in it.
If this guess is right :-) then we probably do want this in every
plugin so putting it in the common instance would be a good idea.
thanks
david jencks
Updating c-m-p to process a new attribute might still be a good
idea because it could provide a finer degree of control. However,
so far this seems like a good enough solution for now.
Thanks,
Joe
Joe Bohn wrote:
David Jencks wrote:
Rather than have separate compatibility plugins, I've thought in
the past that each plugin could include aliases for the previous
versions it's compatible with.
So, each 2.1.3 plugin could explain how it can replace its own
2.1.2 version with e.g.
<artifact-alias server="client"
key="org.apache.geronimo.configs/client-security/2.1.2/
car">org.apache.geronimo.configs/client-security/2.1.3/car</
artifact-alias>
For the 2.1.4 version of this plugin we'd have
<artifact-alias server="client"
key="org.apache.geronimo.configs/client-security/2.1.2/
car">org.apache.geronimo.configs/client-security/2.1.4/car</
artifact-alias>
<artifact-alias server="client"
key="org.apache.geronimo.configs/client-security/2.1.3/
car">org.apache.geronimo.configs/client-security/2.1.4/car</
artifact-alias>
This kind of spreads out the compatibility plugin contents into
all the individual plugins.
We might be able to either write some c-m-p code to generate
these or put it in the c-m-p common instance with a lot of ${}
variables, maybe
<artifact-alias server="client" key="$
{groupId}/${artifactId}/2.1.2/car">${groupId}/${artifactId}/$
{version}/car</artifact-alias>
Yes, I recall your proposal and I liked it. I was originally
thinking you were proposing an entry for the immediate prior
version and so when I considered another level out (aka 2.1.4) it
seemed to breakdown. However, I guess there is no reason that we
could not include multiple entries as you noted above. I'll look
into this some more.
A variation on this idea would be to add into the pom an attribute
where we can specify compatible versions. The car-maven-plugin
could then use these attributes to generate the alias entries in
the geronimo-plugin.xml. This might allow us to specify
compatible versions in the top level pom (just one primary place
to maintain) for all plugins given that we typically will want the
same behavior for all plugins shipped with the server.
I pushed the comprehensive plugin idea because it appeared that we
were short on time for a 2.1.3 release (there is a proposed code
freeze date of this Friday) and whatever we do I think we need to
get something into 2.1.3.
Joe