Did you intend for this to go to the geronimo or maven list?

-sachin


On Feb 23, 2007, at 4:47 AM, Jason Dillon wrote:

Is it possible to install a Maven extension which can configure Maven's proxy handling?

I'm wondering if with little work, that it might be possible to create some kinda of plugin to Maven, which would embed a simply proxy server (kinda like DSMP) directly into Maven, and then configure Maven to use that server as a proxy.

I really need a way to control what repos our projects use, and since we use artifacts which list other repos, there is no easy way (that I know of) to limit this behavior except for configuring a proxy and putting the controls in the proxy process.

The problem with this technique is that it...

a) requires users' to configure maven to use the proxy

b) requires users to start a proxy process and/or point at a remote server, in which case you need a remote server and bandwidth to effectively use.

Both of these end up becoming blockers to actually making this a reality. But, Maven is a Plexus application, and its easy enough to write a Plexus component which implements this proxy, so why not have the one Maven process boot up the proxy, and then configure Maven to use that proxy? This seems to me the best way, short of major changes to Maven, to get real concrete control over how Maven uses remote repositories.

For the case at hand, what I really want is to, no matter what repos are configured (by the project or by dependencies of the project), only grab artifacts from one repository... and to help populate/maintain that repository, flip a switch on the proxy component to all it to pass-through to all configure urls for artifacts.

There are a few other use cases I can think of... I'd like to install a listener into the proxy component which will simply catalog all artifact requests and at the end of a build simply dump a list of all artifacts which were used. Another, is that for some automated builds, I need to keep the "cache" of artifacts separate from the set of artifacts which are actually used by a project. This isn't' really possible now, but with a proxy layer, I can easily separate cached artifacts from artifacts used in a project.

 * * *

Anyways... I really think that having this extra proxy component in the Maven process would be a massive help to solve some of the more complicated repository issues which we (Geronimo) are facing with using Maven. I think that if I could get a proxy component into the Maven bootstrap, and provide some ability for the project to configure it, that it would really help improve the quality of our builds with Maven.

I also don't think its that difficult to implement... the major issue is... how does one install such a bootstrap component into Maven? Is it possible? Or does one need to provide a separate assembly with extra libs and extra components.xml or something along those lines?

--jason

Reply via email to