Well, I discovered that the car plugin was still caching old bits
when car:install-modules was run. And I dug into it much deeper than
I wanted to and eventually ended up re-writing the installation of
artifacts.
It should now try a heck of a lot harder to reinstall bits that have
changed. When installing modules, we check the sha1 of the configs,
if they are the same, then we skip re-installing, but now we will
continue to process the module's deps.
Deps are now checked if they need to be reinstalled, instead of just
skipping. If the source dep's file size has changed, or the last
modified time is greater than the target, we reinstall it.
Also now we are tracking all installed artifacts so we can easily
skip ones we know that we have processed already, which speeds things
up a itty bit.
And, I have added info logging when a dependency is installed, so now
you can see what is really being installed. Debug logging with `mvn -
X` will show the bits that are skipped and when they are being
reinstalled, blah, blah. The side effect is that when a lot changes,
then a lot of info logs are spit out for each dependency.... oh well.
I did a little bit of testing and it does appear that when something
from modules/* changes (and nothing else) that only that one
dependency will get copied into the Geronimo repository.... and
similarly if just one configs/* changes, then just that one module
will be re-installed.
* * *
I think the one last thing might be that car:install-modules may need
to use the Maven2RepositoryAdapter bits which I hacked into
car:package to resolve SNAPSHOT artifacts directly using the Maven
API... but I am not sure yet... and I'd rather not hack more of this
in. But if I refactor it into less of a hack I might.
Anyways... *please* give it a whirl. I've pushed out the latest car-
maven-plugin SNAPSHOT with all these fixes.
Next I guess we should try to make the car:package skip re-packaging
unless something has really changed... but that is gonna be tricky,
as we need to check the target/** and the effective pom.xml to see if
anything has changed... ugh :-(
Then once we re-organize these modules into related groups it might
be much easier to run small builds from specific trees, and then re-
assembly to validate (ie. all activemq modules and configs all under
one geronimo-activemq/* tree).
--jason