Actually, pointing at a different local repo for the purposes of a build is
trivial. However, in the case of testing a plugin, you have to install the
plugin somewhere, then run a build that uses that plugin...this is not the
case with anything other than Maven components, which makes it an
exceptional use case. If Geronimo wants to fire off a build during their
integration tests, they will be able to specify the local repository
location without a problem, using either the embedder or the invoker.

Once we get nearer a release of the new embedder, I'd like to converge the
two, and hopefully get it down to a fork flag to determine which is used.
But the plugin-test stuff is different, and it's an exotic use case.

Also, if we're going to stop touching the local repository during a build,
when will we use it? If you were to use the repository-assembly stuff from
the assembly plugin to generate a one-time use repository containing all of
your dependencies, then I can imagine forking off a local repository for
integration testing. However, unless you're on a busy build server where you
could reasonably expect to encounter race conditions on artifact resolution
by way of the local repo, I would really hope that Maven would resolve to
the same set of artifacts over two successive builds like this.

I do think this would be a good option for many people when running
integration tests (for instance, on large Continuum deployments). But for
many users, this will be an unnecessary performance degradation.

-john

On 8/11/06, Jason van Zyl <[EMAIL PROTECTED]> wrote:


On 11 Aug 06, at 11:25 AM 11 Aug 06, John Casey wrote:

> it doesn't backup the whole local repository, only the files that
> will be
> affected by a plugin install. It should be relatively stable in
> terms of the
> backup/restore data transfer size...varying only by the number of
> repositories that were consulted for that artifact (because there
> is a set
> of metadata files for each remote repository).
>
> I'm not sure what you mean by encapsulating things needed by the
> runtime.
> What I want to avoid is introducing excessive design changes to the
> core
> just so we can enable plugin manipulation that wouldn't happen in a
> normal
> use case.
>

I think this is a normal use case. A concrete example being the
embedder pointing at a completely separate repository structure for,
say, Geronimo. They use a Maven repository for their own use and you
should be able to flip a parameter and use the encapsulated
requirements for runtime: a repository, any configuration, any
directories which hold configuration, caches, or anything of that
nature. I think touching the repository that is actually used in the
day-to-day is sort of fugly. If the plugin interacts with any
artifacts then all those are going to be affected as so if you're
doing integration tests on the Jetty plugin then you're going to pull
in a whole raft of other dependencies, you're sure you're picking all
that up and restoring it fully? I think some things with artifact
resolution are a little loosy goosy at moment and not touching the
users repository I think would be a better option.

> -john
>
> On 8/11/06, Jason van Zyl <[EMAIL PROTECTED]> wrote:
>>
>>
>> On 11 Aug 06, at 9:18 AM 11 Aug 06, John Casey wrote:
>>
>> > This should be solved by the stage/unstage mojos in the plugin-test
>> > plugin.
>> > That's its only current purpose. It will stage a new plugin
>> > artifact into
>> > the local repository, backing up what was there before, then
>> clear the
>> > pluginManager's cache of that plugin, in case it's been resolved
>> > already.
>> > Unstaging (de-staging?) will restore the backed up data, and clear
>> > the cache
>> > again.
>> >
>>
>> We should move toward encapsulating anything the runtime requires so
>> we could parameterize it on execution so that you don't have to
>> tamper with the local repository. If someone has a massive local
>> repository that could get pretty time consuming.
>>
>> > -john
>> >
>> > On 8/11/06, Kenney Westerhof <[EMAIL PROTECTED]> wrote:
>> >>
>> >>
>> >>
>> >> Vincent Massol wrote:
>> >>
>> >> > Also, Kenney do you know if the it plugin can now be used to
>> test a
>> >> plugin
>> >> > that is being built for the first time? I remember that I didn't
>> >> activate it
>> >> > on the clover plugin because it would work only if the clover
>> >> plugin was
>> >> > installed in the local repository and this came after
>> integration
>> >> testing.
>> >> > Thus you would always run it tests on the previous version of
>> >> the plugin
>> >> > (looked up from the local repo). I think I had a jira issue for
>> >> this.
>> >> I'm
>> >> > offline now but I'll try to dig it up if need be.
>> >>
>> >> The following issue [1] should provide that: it was blocking the
>> >> use of
>> >> the it plugin; once fixed, it worked fine. If the local repository
>> >> version of the plugin is used instead, then I suggest we re-
>> open the
>> >> issue.
>> >>
>> >> [1] http://jira.codehaus.org/browse/MNG-870
>> >>
>> >> -- Kenney
>> >>
>> >>
>> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>>
>> Jason van Zyl
>> [EMAIL PROTECTED]
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>

Jason van Zyl
[EMAIL PROTECTED]




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


Reply via email to